| // Copyright 2017 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef MODEMFWD_MODEM_H_ |
| #define MODEMFWD_MODEM_H_ |
| |
| #include <memory> |
| #include <string> |
| |
| #include "shill/dbus-proxies.h" |
| |
| namespace modemfwd { |
| |
| class Modem { |
| public: |
| virtual ~Modem() = default; |
| |
| // Get this modem's device ID. |
| virtual std::string GetDeviceId() const = 0; |
| |
| // Get a unique identifier for this modem, such as an IMEI. |
| virtual std::string GetEquipmentId() const = 0; |
| |
| // Get an ID for the carrier this modem is currently operating with, |
| // or the empty string if there is none. Note that the ID is not |
| // necessarily a readable name or e.g. MCC/MNC pair. |
| virtual std::string GetCarrierId() const = 0; |
| |
| virtual std::string GetMainFirmwareVersion() const = 0; |
| }; |
| |
| std::unique_ptr<Modem> CreateModem( |
| std::unique_ptr<org::chromium::flimflam::DeviceProxy> device); |
| |
| } // namespace modemfwd |
| |
| #endif // MODEMFWD_MODEM_H_ |