cellular_capability_cdma.h revision 608ec29525f553d51f0a92e84176e3d4b45930a9
1// Copyright (c) 2012 The Chromium OS Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef SHILL_CELLULAR_CELLULAR_CAPABILITY_CDMA_H_ 6#define SHILL_CELLULAR_CELLULAR_CAPABILITY_CDMA_H_ 7 8#include <memory> 9#include <string> 10#include <vector> 11 12#include <base/memory/weak_ptr.h> 13#include <chromeos/dbus/service_constants.h> 14#include <gtest/gtest_prod.h> // for FRIEND_TEST 15 16#include "shill/cellular/cellular_capability.h" 17#include "shill/cellular/cellular_capability_classic.h" 18#include "shill/cellular/cellular_service.h" 19#include "shill/cellular/modem_cdma_proxy_interface.h" 20 21namespace shill { 22 23class ModemInfo; 24 25class CellularCapabilityCDMA : public CellularCapabilityClassic { 26 public: 27 CellularCapabilityCDMA(Cellular* cellular, 28 ControlInterface* control_interface, 29 ModemInfo* modem_info); 30 ~CellularCapabilityCDMA() override; 31 32 // Inherited from CellularCapability. 33 std::string GetTypeString() const override; 34 void StartModem(Error* error, 35 const ResultCallback& callback) override; 36 bool AreProxiesInitialized() const override; 37 void Activate(const std::string& carrier, 38 Error* error, 39 const ResultCallback& callback) override; 40 bool IsActivating() const override; 41 bool IsRegistered() const override; 42 void SetUnregistered(bool searching) override; 43 void OnServiceCreated() override; 44 std::string GetNetworkTechnologyString() const override; 45 std::string GetRoamingStateString() const override; 46 bool AllowRoaming() override; 47 void GetSignalQuality() override; 48 void SetupConnectProperties(DBusPropertiesMap* properties) override; 49 void DisconnectCleanup() override; 50 51 // Inherited from CellularCapabilityClassic. 52 void GetRegistrationState() override; 53 void GetProperties(const ResultCallback& callback) override; 54 55 virtual void GetMEID(const ResultCallback& callback); 56 57 uint32_t activation_state() const { return activation_state_; } 58 uint32_t registration_state_evdo() const { return registration_state_evdo_; } 59 uint32_t registration_state_1x() const { return registration_state_1x_; } 60 61 protected: 62 // Inherited from CellularCapabilityClassic. 63 void InitProxies() override; 64 void ReleaseProxies() override; 65 void UpdateStatus(const DBusPropertiesMap& properties) override; 66 67 private: 68 friend class CellularCapabilityCDMATest; 69 friend class CellularTest; 70 FRIEND_TEST(CellularCapabilityCDMATest, Activate); 71 FRIEND_TEST(CellularCapabilityCDMATest, ActivateError); 72 FRIEND_TEST(CellularCapabilityCDMATest, GetActivationStateString); 73 FRIEND_TEST(CellularCapabilityCDMATest, GetActivationErrorString); 74 FRIEND_TEST(CellularServiceTest, IsAutoConnectable); 75 FRIEND_TEST(CellularTest, CreateService); 76 77 static const char kPhoneNumber[]; 78 79 void HandleNewActivationState(uint32_t error); 80 81 static std::string GetActivationStateString(uint32_t state); 82 static std::string GetActivationErrorString(uint32_t error); 83 84 // Signal callbacks from the Modem.CDMA interface 85 void OnActivationStateChangedSignal( 86 uint32_t activation_state, 87 uint32_t activation_error, 88 const DBusPropertiesMap& status_changes); 89 void OnRegistrationStateChangedSignal( 90 uint32_t state_1x, uint32_t state_evdo); 91 void OnSignalQualitySignal(uint32_t strength); 92 93 // Method reply callbacks from the Modem.CDMA interface 94 void OnActivateReply(const ResultCallback& callback, 95 uint32_t status, const Error& error); 96 97 void OnGetRegistrationStateReply(uint32_t state_1x, uint32_t state_evdo, 98 const Error& error); 99 void OnGetSignalQualityReply(uint32_t strength, const Error& error); 100 101 std::unique_ptr<ModemCDMAProxyInterface> proxy_; 102 base::WeakPtrFactory<CellularCapabilityCDMA> weak_ptr_factory_; 103 104 // Helper method to extract the online portal information from properties. 105 void UpdateOnlinePortal(const DBusPropertiesMap& properties); 106 void UpdateServiceOLP() override; 107 108 bool activation_starting_; 109 ResultCallback pending_activation_callback_; 110 std::string pending_activation_carrier_; 111 uint32_t activation_state_; 112 uint32_t registration_state_evdo_; 113 uint32_t registration_state_1x_; 114 std::string usage_url_; 115 116 DISALLOW_COPY_AND_ASSIGN(CellularCapabilityCDMA); 117}; 118 119} // namespace shill 120 121#endif // SHILL_CELLULAR_CELLULAR_CAPABILITY_CDMA_H_ 122