blob: a3d0063950d0e74a9249da6e07b90f962b8556f5 [file] [log] [blame]
Darin Petkovbec79a22011-08-01 14:47:17 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SHILL_MODEM_CDMA_PROXY_INTERFACE_
6#define SHILL_MODEM_CDMA_PROXY_INTERFACE_
7
Darin Petkovc408e692011-08-17 13:47:15 -07008#include <string>
9
Darin Petkovbec79a22011-08-01 14:47:17 -070010#include <base/basictypes.h>
11
Darin Petkovef34f182011-08-26 14:14:40 -070012#include "shill/dbus_properties.h"
13
Darin Petkovbec79a22011-08-01 14:47:17 -070014namespace shill {
15
16// These are the methods that a ModemManager.Modem.CDMA proxy must support. The
17// interface is provided so that it can be mocked in tests.
18class ModemCDMAProxyInterface {
19 public:
20 virtual ~ModemCDMAProxyInterface() {}
21
Darin Petkovc408e692011-08-17 13:47:15 -070022 virtual uint32 Activate(const std::string &carrier) = 0;
Darin Petkovbec79a22011-08-01 14:47:17 -070023 virtual void GetRegistrationState(uint32 *cdma_1x_state,
24 uint32 *evdo_state) = 0;
Darin Petkovd9661952011-08-03 16:25:42 -070025 virtual uint32 GetSignalQuality() = 0;
Darin Petkov975b5e72011-08-30 11:48:08 -070026
27 // Properties.
28 virtual const std::string MEID() = 0;
Darin Petkovd9661952011-08-03 16:25:42 -070029};
30
31// ModemManager.Modem.CDMA signal listener to be associated with the proxy.
32class ModemCDMAProxyListener {
33 public:
34 virtual ~ModemCDMAProxyListener() {}
35
Darin Petkovb27e5442011-08-16 14:36:45 -070036 virtual void OnCDMAActivationStateChanged(
37 uint32 activation_state,
38 uint32 activation_error,
39 const DBusPropertiesMap &status_changes) = 0;
Darin Petkovd9661952011-08-03 16:25:42 -070040 virtual void OnCDMARegistrationStateChanged(uint32 state_1x,
41 uint32 state_evdo) = 0;
42 virtual void OnCDMASignalQualityChanged(uint32 strength) = 0;
Darin Petkovbec79a22011-08-01 14:47:17 -070043};
44
45} // namespace shill
46
47#endif // SHILL_MODEM_CDMA_PROXY_INTERFACE_