blob: c12717a07cbc8d946c0e644d5999c59b42b66be0 [file] [log] [blame]
Jason Glasgowee1081c2012-03-06 15:14:53 -05001// Copyright (c) 2012 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_MM1_MODEM_PROXY_INTERFACE_
6#define SHILL_MM1_MODEM_PROXY_INTERFACE_
7
8#include <string>
9
10#include <base/basictypes.h>
11
12#include "shill/dbus_properties.h"
13
14namespace shill {
15class AsyncCallHandler;
16class Error;
17
18namespace mm1 {
19
20// These are the methods that a org.freedesktop.ModemManager1.Modem
21// proxy must support. The interface is provided so that it can be
22// mocked in tests. All calls are made asynchronously. Call
23// completion is signalled through the corresponding 'OnXXXCallback'
24// method in the ProxyDelegate interface.
25class ModemProxyInterface {
26 public:
27 virtual ~ModemProxyInterface() {}
28
29 virtual void Enable(const bool &enable,
30 AsyncCallHandler *call_handler,
31 int timeout) = 0;
32 virtual void ListBearers(AsyncCallHandler *call_handler,
33 int timeout) = 0;
34 virtual void CreateBearer(
35 const DBusPropertiesMap &properties,
36 AsyncCallHandler *call_handler,
37 int timeout) = 0;
38 virtual void DeleteBearer(const ::DBus::Path &bearer,
39 AsyncCallHandler *call_handler,
40 int timeout) = 0;
41 virtual void Reset(AsyncCallHandler *call_handler, int timeout) = 0;
42 virtual void FactoryReset(const std::string &code,
43 AsyncCallHandler *call_handler,
44 int timeout) = 0;
45 virtual void SetAllowedModes(const uint32_t &modes,
46 const uint32_t &preferred,
47 AsyncCallHandler *call_handler,
48 int timeout) = 0;
49 virtual void SetBands(const std::vector< uint32_t > &bands,
50 AsyncCallHandler *call_handler,
51 int timeout) = 0;
52 virtual void Command(const std::string &cmd,
53 const uint32_t &user_timeout,
54 AsyncCallHandler *call_handler,
55 int timeout) = 0;
56
57 // Properties.
58 virtual const ::DBus::Path Sim() = 0;
59 virtual uint32_t ModemCapabilities() = 0;
60 virtual uint32_t CurrentCapabilities() = 0;
61 virtual uint32_t MaxBearers() = 0;
62 virtual uint32_t MaxActiveBearers() = 0;
63 virtual const std::string Manufacturer() = 0;
64 virtual const std::string Model() = 0;
65 virtual const std::string Revision() = 0;
66 virtual const std::string DeviceIdentifier() = 0;
67 virtual const std::string Device() = 0;
68 virtual const std::string Driver() = 0;
69 virtual const std::string Plugin() = 0;
70 virtual const std::string EquipmentIdentifier() = 0;
71 virtual uint32_t UnlockRequired() = 0;
72 virtual const std::map< uint32_t, uint32_t > UnlockRetries() = 0;
73 virtual uint32_t State() = 0;
74 virtual uint32_t AccessTechnologies() = 0;
75 virtual const ::DBus::Struct< uint32_t, bool > SignalQuality() = 0;
76 virtual uint32_t SupportedModes() = 0;
77 virtual uint32_t AllowedModes() = 0;
78 virtual uint32_t PreferredMode() = 0;
79 virtual const std::vector< uint32_t > SupportedBands() = 0;
80 virtual const std::vector< uint32_t > Bands() = 0;
81};
82
83
84// ModemManager1.Modem signal delegate to be associated with the proxy.
85class ModemProxyDelegate {
86 public:
87 virtual ~ModemProxyDelegate() {}
88
89 // handle signals
90 virtual void OnStateChanged(const uint32_t &old,
91 const uint32_t &_new,
92 const uint32_t &reason) = 0;
93
94 // Handle async callbacks
95 virtual void OnEnableCallback(const Error &error,
96 AsyncCallHandler *call_handler) = 0;
97 virtual void OnListBearersCallback(
98 const std::vector< ::DBus::Path > &bearers,
99 const Error &error,
100 AsyncCallHandler *call_handler) = 0;
101 virtual void OnCreateBearerCallback(const ::DBus::Path &bearer,
102 const Error &error,
103 AsyncCallHandler *call_handler) = 0;
104 virtual void OnDeleteBearerCallback(const Error &error,
105 AsyncCallHandler *call_handler) = 0;
106 virtual void OnResetCallback(const Error &error,
107 AsyncCallHandler *call_handler) = 0;
108 virtual void OnFactoryResetCallback(const Error &error,
109 AsyncCallHandler *call_handler) = 0;
110 virtual void OnSetAllowedModesCallback(const Error &error,
111 AsyncCallHandler *call_handler) = 0;
112 virtual void OnSetBandsCallback(const Error &error,
113 AsyncCallHandler *call_handler) = 0;
114 virtual void OnCommandCallback(const std::string &response,
115 const Error &error,
116 AsyncCallHandler *call_handler) = 0;
117};
118
119} // namespace mm1
120} // namespace shill
121
122#endif // SHILL_MM1_MODEM_PROXY_INTERFACE_