blob: 4b0dc5011a9b13f4f8201bcf0a6b14e4e5f5318e [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|
Darin Petkov580c7af2011-10-24 12:32:50 +020018 // owned by |service|. Caught signals will be dispatched to |delegate|.
19 ModemGSMNetworkProxy(ModemGSMNetworkProxyDelegate *delegate,
Darin Petkova1e0a1c2011-08-25 15:08:33 -070020 DBus::Connection *connection,
21 const std::string &path,
22 const std::string &service);
23 virtual ~ModemGSMNetworkProxy();
24
25 // Inherited from ModemGSMNetworkProxyInterface.
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050026 virtual void GetRegistrationInfo(AsyncCallHandler *call_handler, int timeout);
Darin Petkov22b72bf2011-08-29 14:01:20 -070027 virtual uint32 GetSignalQuality();
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050028 virtual void Register(const std::string &network_id,
29 AsyncCallHandler *call_handler, int timeout);
30 virtual void Scan(AsyncCallHandler *call_handler, int timeout);
Darin Petkov9bac6fe2011-08-26 12:49:05 -070031 virtual uint32 AccessTechnology();
Darin Petkova1e0a1c2011-08-25 15:08:33 -070032
33 private:
34 class Proxy
35 : public org::freedesktop::ModemManager::Modem::Gsm::Network_proxy,
36 public DBus::ObjectProxy {
37 public:
Darin Petkov580c7af2011-10-24 12:32:50 +020038 Proxy(ModemGSMNetworkProxyDelegate *delegate,
Darin Petkova1e0a1c2011-08-25 15:08:33 -070039 DBus::Connection *connection,
40 const std::string &path,
41 const std::string &service);
42 virtual ~Proxy();
43
44 private:
45 // Signal callbacks inherited from ModemManager::Modem::Gsm::Network_proxy.
46 virtual void SignalQuality(const uint32 &quality);
47 virtual void RegistrationInfo(const uint32_t &status,
48 const std::string &operator_code,
49 const std::string &operator_name);
50 virtual void NetworkMode(const uint32_t &mode);
51
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050052 // Method callbacks inherited from ModemManager::Modem::Gsm::Network_proxy.
53 virtual void RegisterCallback(const DBus::Error &dberror, void *data);
54 virtual void GetRegistrationInfoCallback(const GSMRegistrationInfo &info,
55 const DBus::Error &dberror,
56 void *data);
57 virtual void ScanCallback(const GSMScanResults &results,
58 const DBus::Error &dberror, void *data);
59
Darin Petkov580c7af2011-10-24 12:32:50 +020060 ModemGSMNetworkProxyDelegate *delegate_;
Darin Petkova1e0a1c2011-08-25 15:08:33 -070061
62 DISALLOW_COPY_AND_ASSIGN(Proxy);
63 };
64
65 Proxy proxy_;
66
67 DISALLOW_COPY_AND_ASSIGN(ModemGSMNetworkProxy);
68};
69
70} // namespace shill
71
72#endif // SHILL_MODEM_GSM_NETWORK_PROXY_