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")))