blob: 944403afc3b1b7cb17ff31b6ee7a0fc9f2d7d62b [file] [log] [blame]
Eric Shienbrood5de44ab2011-12-05 10:46:27 -05001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Darin Petkov975b5e72011-08-30 11:48:08 -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_CARD_PROXY_
6#define SHILL_MODEM_GSM_CARD_PROXY_
7
Hristo Stefanoved2c28c2011-11-29 15:37:30 -08008#include <string>
9
Darin Petkov975b5e72011-08-30 11:48:08 -070010#include <base/basictypes.h>
11
12#include "shill/dbus_bindings/modem-gsm-card.h"
13#include "shill/modem_gsm_card_proxy_interface.h"
14
15namespace shill {
16
17class ModemGSMCardProxy : public ModemGSMCardProxyInterface {
18 public:
19 // Constructs a ModemManager.Modem.Gsm.Card DBus object proxy at |path| owned
Darin Petkov580c7af2011-10-24 12:32:50 +020020 // by |service|. Callbacks will be dispatched to |delegate|.
21 ModemGSMCardProxy(ModemGSMCardProxyDelegate *delegate,
Darin Petkov975b5e72011-08-30 11:48:08 -070022 DBus::Connection *connection,
23 const std::string &path,
24 const std::string &service);
25 virtual ~ModemGSMCardProxy();
26
27 // Inherited from ModemGSMCardProxyInterface.
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050028 virtual void GetIMEI(AsyncCallHandler *call_handler, int timeout);
29 virtual void GetIMSI(AsyncCallHandler *call_handler, int timeout);
30 virtual void GetSPN(AsyncCallHandler *call_handler, int timeout);
31 virtual void GetMSISDN(AsyncCallHandler *call_handler, int timeout);
32 virtual void EnablePIN(const std::string &pin, bool enabled,
33 AsyncCallHandler *call_handler, int timeout);
34 virtual void SendPIN(const std::string &pin,
35 AsyncCallHandler *call_handler, int timeout);
36 virtual void SendPUK(const std::string &puk, const std::string &pin,
37 AsyncCallHandler *call_handler, int timeout);
Darin Petkove42e1012011-08-31 12:35:04 -070038 virtual void ChangePIN(const std::string &old_pin,
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050039 const std::string &new_pin,
40 AsyncCallHandler *call_handler, int timeout);
Darin Petkov63138a92012-02-06 14:09:15 +010041 virtual uint32 EnabledFacilityLocks();
Darin Petkov975b5e72011-08-30 11:48:08 -070042
43 private:
44 class Proxy
45 : public org::freedesktop::ModemManager::Modem::Gsm::Card_proxy,
46 public DBus::ObjectProxy {
47 public:
Darin Petkov580c7af2011-10-24 12:32:50 +020048 Proxy(ModemGSMCardProxyDelegate *delegate,
Darin Petkov975b5e72011-08-30 11:48:08 -070049 DBus::Connection *connection,
50 const std::string &path,
51 const std::string &service);
52 virtual ~Proxy();
53
54 private:
55 // Signal callbacks inherited from ModemManager::Modem::Gsm::Card_proxy.
Eric Shienbrood5de44ab2011-12-05 10:46:27 -050056 // [None]
57
58 // Method callbacks inherited from ModemManager::Modem::Gsm::Card_proxy.
59 virtual void GetImeiCallback(const std::string &imei,
60 const DBus::Error &dberror, void *data);
61 virtual void GetImsiCallback(const std::string &imsi,
62 const DBus::Error &dberror, void *data);
63 virtual void GetSpnCallback(const std::string &spn,
64 const DBus::Error &dberror, void *data);
65 virtual void GetMsIsdnCallback(const std::string &misisdn,
66 const DBus::Error &dberror, void *data);
67 virtual void EnablePinCallback(const DBus::Error &dberror, void *data);
68 virtual void SendPinCallback(const DBus::Error &dberror, void *data);
69 virtual void SendPukCallback(const DBus::Error &dberror, void *data);
70 virtual void ChangePinCallback(const DBus::Error &dberror, void *data);
Darin Petkov975b5e72011-08-30 11:48:08 -070071
Darin Petkov580c7af2011-10-24 12:32:50 +020072 ModemGSMCardProxyDelegate *delegate_;
Darin Petkov975b5e72011-08-30 11:48:08 -070073
74 DISALLOW_COPY_AND_ASSIGN(Proxy);
75 };
76
77 Proxy proxy_;
78
79 DISALLOW_COPY_AND_ASSIGN(ModemGSMCardProxy);
80};
81
82} // namespace shill
83
84#endif // SHILL_MODEM_GSM_CARD_PROXY_