1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2012 The Android Open Source Project
3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License");
5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License.
6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at
7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//      http://www.apache.org/licenses/LICENSE-2.0
9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software
11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS,
12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and
14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License.
15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
1674f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
17c54afe521739065a5d77e7c049acdb5e603f0592Ben Chan#ifndef SHILL_CELLULAR_MM1_SIM_PROXY_INTERFACE_H_
18c54afe521739065a5d77e7c049acdb5e603f0592Ben Chan#define SHILL_CELLULAR_MM1_SIM_PROXY_INTERFACE_H_
1974f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
2074f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow#include <string>
2174f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
2274f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow#include "shill/callbacks.h"
2374f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
2474f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgownamespace shill {
2574f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
2674f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgowclass Error;
2774f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
2874f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgownamespace mm1 {
2974f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
3074f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow// These are the methods that a org.freedesktop.ModemManager1.Sim
3174f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow// proxy must support. The interface is provided so that it can be
3274f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow// mocked in tests. All calls are made asynchronously. Call completion
3374f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow// is signalled via the callbacks passed to the methods.
3474f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgowclass SimProxyInterface {
3574f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow public:
3674f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow  virtual ~SimProxyInterface() {}
3774f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
38f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart  virtual void SendPin(const std::string& pin,
39f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                       Error* error,
40f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                       const ResultCallback& callback,
4174f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow                       int timeout) = 0;
42f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart  virtual void SendPuk(const std::string& puk,
43f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                       const std::string& pin,
44f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                       Error* error,
45f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                       const ResultCallback& callback,
4674f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow                       int timeout) = 0;
47f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart  virtual void EnablePin(const std::string& pin,
4874f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow                         const bool enabled,
49f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                         Error* error,
50f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                         const ResultCallback& callback,
5174f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow                         int timeout) = 0;
52f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart  virtual void ChangePin(const std::string& old_pin,
53f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                         const std::string& new_pin,
54f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                         Error* error,
55f58b28e08efb9e3beccb993bc27dd68e0025a7daPaul Stewart                         const ResultCallback& callback,
5674f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow                         int timeout) = 0;
5774f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow};
5874f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
5974f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow}  // namespace mm1
6074f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow}  // namespace shill
6174f5ef2e5fe3fc78e52f3ddf6584b450aa4c7cb4Jason Glasgow
62c54afe521739065a5d77e7c049acdb5e603f0592Ben Chan#endif  // SHILL_CELLULAR_MM1_SIM_PROXY_INTERFACE_H_
63