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