Move NetworkState inside Network interface BUG: 24267885 Change-Id: I32ebd2d81d2e48be4f59001b192f0450277d840d Reviewed-on: https://weave-review.googlesource.com/1174 Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/examples/ubuntu/network_manager.cc b/libweave/examples/ubuntu/network_manager.cc index 4f94ef2..33da720 100644 --- a/libweave/examples/ubuntu/network_manager.cc +++ b/libweave/examples/ubuntu/network_manager.cc
@@ -21,8 +21,6 @@ namespace { -using provider::NetworkState; - int ForkCmd(const std::string& path, const std::vector<std::string>& args) { int pid = fork(); if (pid != 0) @@ -129,27 +127,27 @@ } void NetworkImpl::UpdateNetworkState() { - network_state_ = NetworkState::kOffline; + network_state_ = Network::State::kOffline; if (force_bootstrapping_) return; if (std::system("ping talk.google.com -c 1") == 0) - network_state_ = NetworkState::kConnected; + network_state_ = State::kConnected; else if (std::system("nmcli dev")) - network_state_ = NetworkState::kFailure; + network_state_ = State::kFailure; else if (std::system("nmcli dev | grep connecting") == 0) - network_state_ = NetworkState::kConnecting; + network_state_ = State::kConnecting; task_runner_->PostDelayedTask(FROM_HERE, base::Bind(&NetworkImpl::UpdateNetworkState, weak_ptr_factory_.GetWeakPtr()), base::TimeDelta::FromSeconds(10)); - bool online = GetConnectionState() == NetworkState::kConnected; + bool online = GetConnectionState() == State::kConnected; for (const auto& cb : callbacks_) cb.Run(); } -NetworkState NetworkImpl::GetConnectionState() const { +provider::Network::State NetworkImpl::GetConnectionState() const { return network_state_; } @@ -157,7 +155,7 @@ if (hostapd_started_) return; - network_state_ = NetworkState::kOffline; + network_state_ = State::kOffline; // Release wlan0 interface. CHECK_EQ(0, std::system("nmcli nm wifi off"));
diff --git a/libweave/examples/ubuntu/network_manager.h b/libweave/examples/ubuntu/network_manager.h index 4df2a07..b8e589d 100644 --- a/libweave/examples/ubuntu/network_manager.h +++ b/libweave/examples/ubuntu/network_manager.h
@@ -32,7 +32,7 @@ // Network implementation. void AddConnectionChangedCallback( const ConnectionChangedCallback& callback) override; - provider::NetworkState GetConnectionState() const override; + State GetConnectionState() const override; void OpenSslSocket(const std::string& host, uint16_t port, const OpenSslSocketSuccessCallback& success_callback, @@ -61,7 +61,7 @@ bool hostapd_started_{false}; provider::TaskRunner* task_runner_{nullptr}; std::vector<ConnectionChangedCallback> callbacks_; - provider::NetworkState network_state_{provider::NetworkState::kOffline}; + provider::Network::State network_state_{provider::Network::State::kOffline}; base::WeakPtrFactory<NetworkImpl> weak_ptr_factory_{this}; };
diff --git a/libweave/include/weave/provider/network.h b/libweave/include/weave/provider/network.h index bba60f0..8e22166 100644 --- a/libweave/include/weave/provider/network.h +++ b/libweave/include/weave/provider/network.h
@@ -14,17 +14,17 @@ namespace weave { namespace provider { -enum class NetworkState { - kOffline = 0, - kFailure, - kConnecting, - kConnected, -}; - // Interface with methods to detect network connectivity and opening network // connections. class Network { public: + enum class State { + kOffline = 0, + kFailure, + kConnecting, + kConnected, + }; + // Callback type for AddConnectionChangedCallback. using ConnectionChangedCallback = base::Closure; @@ -39,7 +39,7 @@ const ConnectionChangedCallback& callback) = 0; // Returns current Internet connectivity state - virtual NetworkState GetConnectionState() const = 0; + virtual State GetConnectionState() const = 0; // Opens bidirectional sockets and returns attached stream. virtual void OpenSslSocket(
diff --git a/libweave/include/weave/provider/test/mock_network.h b/libweave/include/weave/provider/test/mock_network.h index 3da43be..e38dde2 100644 --- a/libweave/include/weave/provider/test/mock_network.h +++ b/libweave/include/weave/provider/test/mock_network.h
@@ -19,7 +19,7 @@ public: MOCK_METHOD1(AddConnectionChangedCallback, void(const ConnectionChangedCallback&)); - MOCK_CONST_METHOD0(GetConnectionState, NetworkState()); + MOCK_CONST_METHOD0(GetConnectionState, State()); MOCK_METHOD4(OpenSslSocket, void(const std::string&, uint16_t,
diff --git a/libweave/src/privet/privet_types.cc b/libweave/src/privet/privet_types.cc index aebf63b..dd26b93 100644 --- a/libweave/src/privet/privet_types.cc +++ b/libweave/src/privet/privet_types.cc
@@ -20,7 +20,7 @@ using privet::CryptoType; using privet::SetupState; using privet::WifiType; -using provider::NetworkState; +using provider::Network; const EnumToStringMap<PairingType>::Map kPairingTypeMap[] = { {PairingType::kPinCode, "pinCode"}, @@ -68,11 +68,11 @@ {WifiSetupState::kConnecting, "connecting"}, }; -const EnumToStringMap<provider::NetworkState>::Map kNetworkStateMap[] = { - {NetworkState::kOffline, "offline"}, - {NetworkState::kFailure, "failure"}, - {NetworkState::kConnecting, "connecting"}, - {NetworkState::kConnected, "connected"}, +const EnumToStringMap<Network::State>::Map kNetworkStateMap[] = { + {Network::State::kOffline, "offline"}, + {Network::State::kFailure, "failure"}, + {Network::State::kConnecting, "connecting"}, + {Network::State::kConnected, "connected"}, }; } // namespace @@ -106,7 +106,7 @@ : EnumToStringMap(kWifiSetupStateMap) {} template <> -LIBWEAVE_EXPORT EnumToStringMap<NetworkState>::EnumToStringMap() +LIBWEAVE_EXPORT EnumToStringMap<Network::State>::EnumToStringMap() : EnumToStringMap(kNetworkStateMap) {} } // namespace weave
diff --git a/libweave/src/privet/wifi_bootstrap_manager.cc b/libweave/src/privet/wifi_bootstrap_manager.cc index 4756a66..144fad6 100644 --- a/libweave/src/privet/wifi_bootstrap_manager.cc +++ b/libweave/src/privet/wifi_bootstrap_manager.cc
@@ -17,7 +17,7 @@ namespace weave { namespace privet { -using provider::NetworkState; +using provider::Network; WifiBootstrapManager::WifiBootstrapManager( const std::string& last_configured_ssid, @@ -59,7 +59,7 @@ } void WifiBootstrapManager::StartBootstrapping() { - if (network_->GetConnectionState() == NetworkState::kConnected) { + if (network_->GetConnectionState() == Network::State::kConnected) { // If one of the devices we monitor for connectivity is online, we need not // start an AP. For most devices, this is a situation which happens in // testing when we have an ethernet connection. If you need to always @@ -124,7 +124,7 @@ // connectivity state. See OnConnectivityChange(). UpdateState(State::kMonitoring); - if (network_->GetConnectionState() == NetworkState::kConnected) { + if (network_->GetConnectionState() == Network::State::kConnected) { monitor_until_ = {}; } else { if (monitor_until_.is_null()) { @@ -240,7 +240,7 @@ if (state_ == State::kMonitoring || // Reset monitoring timeout. (state_ != State::kDisabled && - network_->GetConnectionState() == NetworkState::kConnected)) { + network_->GetConnectionState() == Network::State::kConnected)) { StartMonitoring(); } } @@ -255,12 +255,13 @@ connection_state_ = ConnectionState{ConnectionState::kUnconfigured}; if (last_configured_ssid_.empty()) return; - NetworkState service_state{network_->GetConnectionState()}; + + Network::State service_state{network_->GetConnectionState()}; switch (service_state) { - case NetworkState::kOffline: + case Network::State::kOffline: connection_state_ = ConnectionState{ConnectionState::kOffline}; return; - case NetworkState::kFailure: { + case Network::State::kFailure: { // TODO(wiley) Pull error information from somewhere. ErrorPtr error; Error::AddTo(&error, FROM_HERE, errors::kDomain, errors::kInvalidState, @@ -268,10 +269,10 @@ connection_state_ = ConnectionState{std::move(error)}; return; } - case NetworkState::kConnecting: + case Network::State::kConnecting: connection_state_ = ConnectionState{ConnectionState::kConnecting}; return; - case NetworkState::kConnected: + case Network::State::kConnected: connection_state_ = ConnectionState{ConnectionState::kOnline}; return; }
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc index 15891d6..e787c84 100644 --- a/libweave/src/weave_unittest.cc +++ b/libweave/src/weave_unittest.cc
@@ -37,7 +37,7 @@ using test::CreateDictionaryValue; using test::ValueToString; using provider::test::MockHttpClientResponse; -using provider::NetworkState; +using provider::Network; const char kCategory[] = "powerd"; @@ -230,7 +230,7 @@ network_callbacks_.push_back(cb); })); EXPECT_CALL(network_, GetConnectionState()) - .WillRepeatedly(Return(NetworkState::kOffline)); + .WillRepeatedly(Return(Network::State::kOffline)); } void InitDnsSd() { @@ -310,7 +310,7 @@ task_runner_.Run(); } - void NotifyNetworkChanged(provider::NetworkState state, + void NotifyNetworkChanged(provider::Network::State state, base::TimeDelta delay) { EXPECT_CALL(network_, GetConnectionState()).WillRepeatedly(Return(state)); for (const auto& cb : network_callbacks_) { @@ -423,7 +423,7 @@ InitDnsSd(); EXPECT_CALL(network_, GetConnectionState()) - .WillRepeatedly(Return(provider::NetworkState::kConnected)); + .WillRepeatedly(Return(provider::Network::State::kConnected)); } }; @@ -431,13 +431,13 @@ StartDevice(); // Short disconnect. - NotifyNetworkChanged(provider::NetworkState::kOffline, {}); - NotifyNetworkChanged(provider::NetworkState::kConnected, + NotifyNetworkChanged(provider::Network::State::kOffline, {}); + NotifyNetworkChanged(provider::Network::State::kConnected, base::TimeDelta::FromSeconds(10)); task_runner_.Run(); // Long disconnect. - NotifyNetworkChanged(NetworkState::kOffline, {}); + NotifyNetworkChanged(Network::State::kOffline, {}); auto offline_from = task_runner_.GetClock()->Now(); EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv"))) .WillOnce(InvokeWithoutArgs([this, offline_from]() { @@ -456,7 +456,7 @@ StartDevice(); // Long disconnect. - NotifyNetworkChanged(NetworkState::kOffline, {}); + NotifyNetworkChanged(Network::State::kOffline, {}); for (int i = 0; i < 5; ++i) { auto offline_from = task_runner_.GetClock()->Now(); @@ -480,7 +480,7 @@ task_runner_.Run(); } - NotifyNetworkChanged(NetworkState::kConnected, {}); + NotifyNetworkChanged(Network::State::kConnected, {}); task_runner_.Run(); } @@ -488,7 +488,7 @@ EXPECT_CALL(config_store_, LoadSettings()) .WillRepeatedly(Return(R"({"last_configured_ssid": "TEST_ssid"})")); EXPECT_CALL(network_, GetConnectionState()) - .WillRepeatedly(Return(NetworkState::kOffline)); + .WillRepeatedly(Return(Network::State::kOffline)); auto offline_from = task_runner_.GetClock()->Now(); EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))