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