1//
2// Copyright (C) 2011 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_MODEM_CDMA_PROXY_INTERFACE_H_
18#define SHILL_CELLULAR_MODEM_CDMA_PROXY_INTERFACE_H_
19
20#include <string>
21
22#include "shill/callbacks.h"
23
24namespace shill {
25
26class Error;
27
28typedef base::Callback<void(uint32_t)> SignalQualitySignalCallback;
29typedef base::Callback<void(uint32_t, uint32_t)>
30    RegistrationStateSignalCallback;
31
32typedef base::Callback<void(uint32_t, const Error&)> ActivationResultCallback;
33typedef base::Callback<void(uint32_t, const Error&)> SignalQualityCallback;
34typedef base::Callback<void(uint32_t, uint32_t,
35                            const Error&)> RegistrationStateCallback;
36
37// These are the methods that a ModemManager.Modem.CDMA proxy must support.
38// The interface is provided so that it can be mocked in tests.
39// All calls are made asynchronously. Call completion is signalled via
40// the callbacks passed to the methods.
41class ModemCDMAProxyInterface {
42 public:
43  virtual ~ModemCDMAProxyInterface() {}
44
45  virtual void Activate(const std::string& carrier, Error* error,
46                        const ActivationResultCallback& callback,
47                        int timeout) = 0;
48  virtual void GetRegistrationState(Error* error,
49                                    const RegistrationStateCallback& callback,
50                                    int timeout) = 0;
51  virtual void GetSignalQuality(Error* error,
52                                const SignalQualityCallback& callback,
53                                int timeout) = 0;
54
55  // Properties.
56  virtual const std::string MEID() = 0;
57
58  virtual void set_activation_state_callback(
59      const ActivationStateSignalCallback& callback) = 0;
60  virtual void set_signal_quality_callback(
61      const SignalQualitySignalCallback& callback) = 0;
62  virtual void set_registration_state_callback(
63      const RegistrationStateSignalCallback& callback) = 0;
64};
65
66}  // namespace shill
67
68#endif  // SHILL_CELLULAR_MODEM_CDMA_PROXY_INTERFACE_H_
69