1 //
2 // Copyright (C) 2012 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 #ifndef SHILL_CELLULAR_MM1_MODEM_SIMPLE_PROXY_INTERFACE_H_
18 #define SHILL_CELLULAR_MM1_MODEM_SIMPLE_PROXY_INTERFACE_H_
19 
20 #include <string>
21 
22 #include "shill/callbacks.h"
23 #include "shill/key_value_store.h"
24 
25 namespace shill {
26 class Error;
27 
28 namespace mm1 {
29 
30 // These are the methods that a
31 // org.freedesktop.ModemManager1.Modem.Simple proxy must support.  The
32 // interface is provided so that it can be mocked in tests.  All calls
33 // are made asynchronously. Call completion is signalled via the callbacks
34 // passed to the methods.
35 class ModemSimpleProxyInterface {
36  public:
~ModemSimpleProxyInterface()37   virtual ~ModemSimpleProxyInterface() {}
38 
39   virtual void Connect(const KeyValueStore& properties,
40                        Error* error,
41                        const RpcIdentifierCallback& callback,
42                        int timeout) = 0;
43   virtual void Disconnect(const std::string& bearer,
44                           Error* error,
45                           const ResultCallback& callback,
46                           int timeout) = 0;
47   virtual void GetStatus(Error* error,
48                          const KeyValueStoreCallback& callback,
49                          int timeout) = 0;
50 };
51 
52 }  // namespace mm1
53 }  // namespace shill
54 
55 #endif  // SHILL_CELLULAR_MM1_MODEM_SIMPLE_PROXY_INTERFACE_H_
56