1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2015 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// 16f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 17f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#ifndef SHILL_DBUS_CHROMEOS_MODEM_GOBI_PROXY_H_ 18f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#define SHILL_DBUS_CHROMEOS_MODEM_GOBI_PROXY_H_ 19f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 20f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include <string> 21f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 22f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include <base/macros.h> 23f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 24f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "cellular/dbus-proxies.h" 25f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/cellular/modem_gobi_proxy_interface.h" 26f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 27f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiunamespace shill { 28f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 29f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu// A proxy to (old) ModemManager.Modem.Gobi. 30f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiuclass ChromeosModemGobiProxy : public ModemGobiProxyInterface { 31f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu public: 32f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu // Constructs a ModemManager.Modem.Gobi DBus object proxy at |path| owned by 33f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu // |service|. 34f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu ChromeosModemGobiProxy(const scoped_refptr<dbus::Bus>& bus, 35f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu const std::string& path, 36f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu const std::string& service); 37f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu ~ChromeosModemGobiProxy() override; 38f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 39f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu // Inherited from ModemGobiProxyInterface. 40f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu void SetCarrier(const std::string& carrier, 41f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu Error* error, 42f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu const ResultCallback& callback, 43f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu int timeout) override; 44f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 45f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu private: 46f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu // Callbacks for SetCarrier async call. 47f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu void OnSetCarrierSuccess(const ResultCallback& callback); 48f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu void OnSetCarrierFailure(const ResultCallback& callback, 4903e6719bae1e0903d94853b896673a033196bcf5Alex Vakulenko brillo::Error* dbus_error); 50f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 51f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu std::unique_ptr<org::chromium::ModemManager::Modem::GobiProxy> proxy_; 52f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 53f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu base::WeakPtrFactory<ChromeosModemGobiProxy> weak_factory_{this}; 54f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu DISALLOW_COPY_AND_ASSIGN(ChromeosModemGobiProxy); 55f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu}; 56f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 57f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu} // namespace shill 58f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu 59f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#endif // SHILL_DBUS_CHROMEOS_MODEM_GOBI_PROXY_H_ 60