blob: f714585baf35a121db90474f7243d186f8a5d547 [file] [log] [blame]
Eric Shienbrood5de44ab2011-12-05 10:46:27 -05001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Darin Petkova1e0a1c2011-08-25 15:08:33 -07002// 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_GSM_NETWORK_PROXY_
6#define SHILL_MODEM_GSM_NETWORK_PROXY_
7
Hristo Stefanoved2c28c2011-11-29 15:37:30 -08008#include <string>
9
Darin Petkova1e0a1c2011-08-25 15:08:33 -070010#include "shill/dbus_bindings/modem-gsm-network.h"
11#include "shill/modem_gsm_network_proxy_interface.h"
12
13namespace shill {
14
15class ModemGSMNetworkProxy : public ModemGSMNetworkProxyInterface {
16 public:
17 // Constructs a ModemManager.Modem.Gsm.Network DBus object proxy at |path|
Eric Shienbrood9a245532012-03-07 14:20:39 -050018 // owned by |service|.
19 ModemGSMNetworkProxy(DBus::Connection *connection,
Darin Petkova1e0a1c2011-08-25 15:08:33 -070020 const std::string &path,
21 const std::string &service);
22 virtual ~ModemGSMNetworkProxy();
23
24 // Inherited from ModemGSMNetworkProxyInterface.
Eric Shienbrood9a245532012-03-07 14:20:39 -050025 virtual void GetRegistrationInfo(Error *error,
26 const RegistrationInfoCallback &callback,
27 int timeout);
28 virtual void GetSignalQuality(Error *error,
29 const SignalQualityCallback &callback,
30 int timeout);
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050031 virtual void Register(const std::string &network_id,
Eric Shienbrood9a245532012-03-07 14:20:39 -050032 Error *error, const ResultCallback &callback,
33 int timeout);
34 virtual void Scan(Error *error, const ScanResultsCallback &callback,
35 int timeout);
Darin Petkov9bac6fe2011-08-26 12:49:05 -070036 virtual uint32 AccessTechnology();
Darin Petkova1e0a1c2011-08-25 15:08:33 -070037
Eric Shienbrood9a245532012-03-07 14:20:39 -050038 virtual void set_signal_quality_callback(
39 const SignalQualitySignalCallback &callback);
40 virtual void set_network_mode_callback(
41 const NetworkModeSignalCallback &callback);
42 virtual void set_registration_info_callback(
43 const RegistrationInfoSignalCallback &callback);
44
Darin Petkova1e0a1c2011-08-25 15:08:33 -070045 private:
46 class Proxy
47 : public org::freedesktop::ModemManager::Modem::Gsm::Network_proxy,
48 public DBus::ObjectProxy {
49 public:
Eric Shienbrood9a245532012-03-07 14:20:39 -050050 Proxy(DBus::Connection *connection,
Darin Petkova1e0a1c2011-08-25 15:08:33 -070051 const std::string &path,
52 const std::string &service);
53 virtual ~Proxy();
54
Eric Shienbrood9a245532012-03-07 14:20:39 -050055 virtual void set_signal_quality_callback(
56 const SignalQualitySignalCallback &callback);
57 virtual void set_network_mode_callback(
58 const NetworkModeSignalCallback &callback);
59 virtual void set_registration_info_callback(
60 const RegistrationInfoSignalCallback &callback);
61
Darin Petkova1e0a1c2011-08-25 15:08:33 -070062 private:
63 // Signal callbacks inherited from ModemManager::Modem::Gsm::Network_proxy.
64 virtual void SignalQuality(const uint32 &quality);
65 virtual void RegistrationInfo(const uint32_t &status,
66 const std::string &operator_code,
67 const std::string &operator_name);
68 virtual void NetworkMode(const uint32_t &mode);
69
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050070 // Method callbacks inherited from ModemManager::Modem::Gsm::Network_proxy.
71 virtual void RegisterCallback(const DBus::Error &dberror, void *data);
72 virtual void GetRegistrationInfoCallback(const GSMRegistrationInfo &info,
73 const DBus::Error &dberror,
74 void *data);
Eric Shienbrood9a245532012-03-07 14:20:39 -050075 virtual void GetSignalQualityCallback(const uint32 &quality,
76 const DBus::Error &dberror,
77 void *data);
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050078 virtual void ScanCallback(const GSMScanResults &results,
79 const DBus::Error &dberror, void *data);
80
Eric Shienbrood9a245532012-03-07 14:20:39 -050081 SignalQualitySignalCallback signal_quality_callback_;
82 RegistrationInfoSignalCallback registration_info_callback_;
83 NetworkModeSignalCallback network_mode_callback_;
Darin Petkova1e0a1c2011-08-25 15:08:33 -070084
85 DISALLOW_COPY_AND_ASSIGN(Proxy);
86 };
87
88 Proxy proxy_;
89
90 DISALLOW_COPY_AND_ASSIGN(ModemGSMNetworkProxy);
91};
92
93} // namespace shill
94
95#endif // SHILL_MODEM_GSM_NETWORK_PROXY_