Renamed Network interface into Network provided. Fixed up interface header file. BUG: 24267885 Change-Id: I09bc05d640c8cb0ead742d5b42704370e44e37fb Reviewed-on: https://weave-review.googlesource.com/1154 Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/libweave/examples/ubuntu/network_manager.cc b/libweave/examples/ubuntu/network_manager.cc index f86f12b..c14dac5 100644 --- a/libweave/examples/ubuntu/network_manager.cc +++ b/libweave/examples/ubuntu/network_manager.cc
@@ -50,9 +50,9 @@ StopAccessPoint(); } -void NetworkImpl::AddOnConnectionChangedCallback( - const OnConnectionChangedCallback& listener) { - callbacks_.push_back(listener); +void NetworkImpl::AddConnectionChangedCallback( + const ConnectionChangedCallback& callback) { + callbacks_.push_back(callback); } void NetworkImpl::TryToConnect( @@ -206,8 +206,8 @@ void NetworkImpl::OpenSslSocket( const std::string& host, uint16_t port, - const base::Callback<void(std::unique_ptr<Stream>)>& success_callback, - const base::Callback<void(const Error*)>& error_callback) { + const OpenSslSocketSuccessCallback& success_callback, + const ErrorCallback& error_callback) { // Connect to SSL port instead of upgrading to TLS. std::unique_ptr<SSLStream> tls_stream{new SSLStream{task_runner_}};
diff --git a/libweave/examples/ubuntu/network_manager.h b/libweave/examples/ubuntu/network_manager.h index f56e391..10b413a 100644 --- a/libweave/examples/ubuntu/network_manager.h +++ b/libweave/examples/ubuntu/network_manager.h
@@ -10,7 +10,7 @@ #include <base/memory/weak_ptr.h> #include <base/time/time.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include <weave/wifi_provider.h> namespace weave { @@ -21,22 +21,21 @@ // Basic weave::Network implementation. // Production version of SSL socket needs secure server certificate check. -class NetworkImpl : public Network, public WifiProvider { +class NetworkImpl : public NetworkProvider, public WifiProvider { public: explicit NetworkImpl(TaskRunner* task_runner, bool force_bootstrapping); ~NetworkImpl(); - // Network implementation - void AddOnConnectionChangedCallback( - const OnConnectionChangedCallback& listener) override; + // NetworkProvider implementation. + void AddConnectionChangedCallback( + const ConnectionChangedCallback& callback) override; NetworkState GetConnectionState() const override; - void OpenSslSocket( - const std::string& host, - uint16_t port, - const base::Callback<void(std::unique_ptr<Stream>)>& success_callback, - const base::Callback<void(const Error*)>& error_callback) override; + void OpenSslSocket(const std::string& host, + uint16_t port, + const OpenSslSocketSuccessCallback& success_callback, + const ErrorCallback& error_callback) override; - // Wifi implementation + // WifiProvider implementation. void Connect(const std::string& ssid, const std::string& passphrase, const SuccessCallback& success_callback, @@ -58,7 +57,7 @@ bool force_bootstrapping_{false}; bool hostapd_started_{false}; TaskRunner* task_runner_{nullptr}; - std::vector<OnConnectionChangedCallback> callbacks_; + std::vector<ConnectionChangedCallback> callbacks_; NetworkState network_state_{NetworkState::kOffline}; base::WeakPtrFactory<NetworkImpl> weak_ptr_factory_{this};
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h index 0d01910..bf49609 100644 --- a/libweave/include/weave/device.h +++ b/libweave/include/weave/device.h
@@ -17,7 +17,7 @@ #include <weave/http_client.h> #include <weave/http_server.h> #include <weave/mdns.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include <weave/privet.h> #include <weave/state.h> #include <weave/task_runner.h> @@ -41,7 +41,7 @@ ConfigStore* config_store, TaskRunner* task_runner, HttpClient* http_client, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi,
diff --git a/libweave/include/weave/network.h b/libweave/include/weave/network.h deleted file mode 100644 index 1d4e07f..0000000 --- a/libweave/include/weave/network.h +++ /dev/null
@@ -1,49 +0,0 @@ -// Copyright 2015 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 LIBWEAVE_INCLUDE_WEAVE_NETWORK_H_ -#define LIBWEAVE_INCLUDE_WEAVE_NETWORK_H_ - -#include <string> - -#include <base/callback.h> -#include <weave/error.h> -#include <weave/stream.h> - -namespace weave { - -enum class NetworkState { - kOffline = 0, - kFailure, - kConnecting, - kConnected, -}; - -class Network { - public: - // A callback that interested parties can register to be notified of - // connectivity changes. Changes may include but not limited: interface - // up or down, new IP is assigned, cable is disconnected. - using OnConnectionChangedCallback = base::Callback<void()>; - - virtual void AddOnConnectionChangedCallback( - const OnConnectionChangedCallback& listener) = 0; - - // Returns current Internet connectivity state - virtual NetworkState GetConnectionState() const = 0; - - // Opens bidirectional sockets and returns attached stream. - virtual void OpenSslSocket( - const std::string& host, - uint16_t port, - const base::Callback<void(std::unique_ptr<Stream>)>& success_callback, - const base::Callback<void(const Error*)>& error_callback) = 0; - - protected: - virtual ~Network() = default; -}; - -} // namespace weave - -#endif // LIBWEAVE_INCLUDE_WEAVE_NETWORK_H_
diff --git a/libweave/include/weave/network_provider.h b/libweave/include/weave/network_provider.h new file mode 100644 index 0000000..ac1dcc8 --- /dev/null +++ b/libweave/include/weave/network_provider.h
@@ -0,0 +1,56 @@ +// Copyright 2015 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 LIBWEAVE_INCLUDE_WEAVE_NETWORK_PROVIDER_H_ +#define LIBWEAVE_INCLUDE_WEAVE_NETWORK_PROVIDER_H_ + +#include <string> + +#include <base/callback.h> +#include <weave/error.h> +#include <weave/stream.h> + +namespace weave { + +enum class NetworkState { + kOffline = 0, + kFailure, + kConnecting, + kConnected, +}; + +// Interface with methods to detect network connectivity and opening network +// connections. +class NetworkProvider { + public: + // Callback type for AddConnectionChangedCallback. + using ConnectionChangedCallback = base::Closure; + + // Callback type for OpenSslSocket. + using OpenSslSocketSuccessCallback = + base::Callback<void(std::unique_ptr<Stream> stream)>; + + // Subscribes to notification about changes in network connectivity. Changes + // may include but not limited: interface up or down, new IP was assigned, + // cable is disconnected. + virtual void AddConnectionChangedCallback( + const ConnectionChangedCallback& callback) = 0; + + // Returns current Internet connectivity state + virtual NetworkState GetConnectionState() const = 0; + + // Opens bidirectional sockets and returns attached stream. + virtual void OpenSslSocket( + const std::string& host, + uint16_t port, + const OpenSslSocketSuccessCallback& success_callback, + const ErrorCallback& error_callback) = 0; + + protected: + virtual ~NetworkProvider() = default; +}; + +} // namespace weave + +#endif // LIBWEAVE_INCLUDE_WEAVE_NETWORK_PROVIDER_H_
diff --git a/libweave/include/weave/test/mock_network.h b/libweave/include/weave/test/mock_network.h deleted file mode 100644 index e2d0074..0000000 --- a/libweave/include/weave/test/mock_network.h +++ /dev/null
@@ -1,35 +0,0 @@ -// Copyright 2015 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 LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_NETWORK_H_ -#define LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_NETWORK_H_ - -#include <weave/network.h> - -#include <string> - -#include <gmock/gmock.h> - -namespace weave { -namespace test { - -class MockNetwork : public Network { - public: - MockNetwork() {} - ~MockNetwork() override = default; - - MOCK_METHOD1(AddOnConnectionChangedCallback, - void(const OnConnectionChangedCallback&)); - MOCK_CONST_METHOD0(GetConnectionState, NetworkState()); - MOCK_METHOD4(OpenSslSocket, - void(const std::string&, - uint16_t, - const base::Callback<void(std::unique_ptr<Stream>)>&, - const base::Callback<void(const Error*)>&)); -}; - -} // namespace test -} // namespace weave - -#endif // LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_NETWORK_H_
diff --git a/libweave/include/weave/test/mock_network_provider.h b/libweave/include/weave/test/mock_network_provider.h new file mode 100644 index 0000000..c519f74 --- /dev/null +++ b/libweave/include/weave/test/mock_network_provider.h
@@ -0,0 +1,32 @@ +// Copyright 2015 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 LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_NETWORK_PROVIDER_H_ +#define LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_NETWORK_PROVIDER_H_ + +#include <weave/network_provider.h> + +#include <string> + +#include <gmock/gmock.h> + +namespace weave { +namespace test { + +class MockNetworkProvider : public NetworkProvider { + public: + MOCK_METHOD1(AddConnectionChangedCallback, + void(const ConnectionChangedCallback&)); + MOCK_CONST_METHOD0(GetConnectionState, NetworkState()); + MOCK_METHOD4(OpenSslSocket, + void(const std::string&, + uint16_t, + const OpenSslSocketSuccessCallback&, + const ErrorCallback&)); +}; + +} // namespace test +} // namespace weave + +#endif // LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_NETWORK_PROVIDER_H_
diff --git a/libweave/include/weave/test/mock_wifi_provider.h b/libweave/include/weave/test/mock_wifi_provider.h index 33d4cc4..1bea0ed 100644 --- a/libweave/include/weave/test/mock_wifi_provider.h +++ b/libweave/include/weave/test/mock_wifi_provider.h
@@ -5,7 +5,7 @@ #ifndef LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_WIFI_PROVIDER_H_ #define LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_WIFI_PROVIDER_H_ -#include <weave/network.h> +#include <weave/network_provider.h> #include <string> @@ -16,9 +16,6 @@ class MockWifiProvider : public WifiProvider { public: - MockWifiProvider() {} - ~MockWifiProvider() override = default; - MOCK_METHOD4(Connect, void(const std::string&, const std::string&,
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc index 15c5e49..50bfcbe 100644 --- a/libweave/src/device_manager.cc +++ b/libweave/src/device_manager.cc
@@ -33,7 +33,7 @@ ConfigStore* config_store, TaskRunner* task_runner, HttpClient* http_client, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi, @@ -88,7 +88,7 @@ void DeviceManager::StartPrivet(const Options& options, TaskRunner* task_runner, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi,
diff --git a/libweave/src/device_manager.h b/libweave/src/device_manager.h index de0cfa5..00f2b5c 100644 --- a/libweave/src/device_manager.h +++ b/libweave/src/device_manager.h
@@ -30,7 +30,7 @@ ConfigStore* config_store, TaskRunner* task_runner, HttpClient* http_client, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi, @@ -46,7 +46,7 @@ private: void StartPrivet(const Options& options, TaskRunner* task_runner, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi,
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc index bb1dffb..91f522a 100644 --- a/libweave/src/device_registration_info.cc +++ b/libweave/src/device_registration_info.cc
@@ -16,7 +16,7 @@ #include <base/strings/string_number_conversions.h> #include <base/values.h> #include <weave/http_client.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include <weave/task_runner.h> #include "libweave/src/bind_lambda.h" @@ -217,7 +217,7 @@ TaskRunner* task_runner, HttpClient* http_client, bool notifications_enabled, - Network* network) + NetworkProvider* network) : http_client_{http_client}, task_runner_{task_runner}, command_manager_{command_manager},
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h index 3b2cdb7..8db6a88 100644 --- a/libweave/src/device_registration_info.h +++ b/libweave/src/device_registration_info.h
@@ -39,7 +39,7 @@ namespace weave { -class Network; +class NetworkProvider; class StateManager; class TaskRunner; @@ -62,7 +62,7 @@ TaskRunner* task_runner, HttpClient* http_client, bool notifications_enabled, - weave::Network* network); + NetworkProvider* network); ~DeviceRegistrationInfo() override; @@ -337,7 +337,7 @@ NotificationChannel* current_notification_channel_{nullptr}; bool notification_channel_starting_{false}; - weave::Network* network_{nullptr}; + NetworkProvider* network_{nullptr}; // Tracks our current registration status. RegistrationStatus registration_status_{RegistrationStatus::kUnconfigured};
diff --git a/libweave/src/notification/xmpp_channel.cc b/libweave/src/notification/xmpp_channel.cc index 124c7b6..4734549 100644 --- a/libweave/src/notification/xmpp_channel.cc +++ b/libweave/src/notification/xmpp_channel.cc
@@ -7,7 +7,7 @@ #include <string> #include <base/bind.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include <weave/task_runner.h> #include "libweave/src/backoff_entry.h" @@ -92,7 +92,7 @@ XmppChannel::XmppChannel(const std::string& account, const std::string& access_token, TaskRunner* task_runner, - Network* network) + NetworkProvider* network) : account_{account}, access_token_{access_token}, network_{network}, @@ -101,7 +101,7 @@ iq_stanza_handler_{new IqStanzaHandler{this, task_runner}} { read_socket_data_.resize(4096); if (network) { - network->AddOnConnectionChangedCallback(base::Bind( + network->AddConnectionChangedCallback(base::Bind( &XmppChannel::OnConnectivityChanged, weak_ptr_factory_.GetWeakPtr())); } }
diff --git a/libweave/src/notification/xmpp_channel.h b/libweave/src/notification/xmpp_channel.h index d1664f6..48ffd64 100644 --- a/libweave/src/notification/xmpp_channel.h +++ b/libweave/src/notification/xmpp_channel.h
@@ -22,7 +22,7 @@ namespace weave { -class Network; +class NetworkProvider; class TaskRunner; // Simple interface to abstract XmppChannel's SendMessage() method. @@ -44,7 +44,7 @@ XmppChannel(const std::string& account, const std::string& access_token, TaskRunner* task_runner, - Network* network); + NetworkProvider* network); ~XmppChannel() override = default; // Overrides from NotificationChannel. @@ -131,7 +131,7 @@ // OAuth access token for the account. Expires fairly frequently. std::string access_token_; - Network* network_{nullptr}; + NetworkProvider* network_{nullptr}; std::unique_ptr<Stream> stream_; // Read buffer for incoming message packets.
diff --git a/libweave/src/notification/xmpp_channel_unittest.cc b/libweave/src/notification/xmpp_channel_unittest.cc index 4d8ab76..da555e0 100644 --- a/libweave/src/notification/xmpp_channel_unittest.cc +++ b/libweave/src/notification/xmpp_channel_unittest.cc
@@ -8,7 +8,7 @@ #include <queue> #include <gtest/gtest.h> -#include <weave/test/mock_network.h> +#include <weave/test/mock_network_provider.h> #include <weave/test/mock_task_runner.h> #include "libweave/src/bind_lambda.h" @@ -133,7 +133,8 @@ class FakeXmppChannel : public XmppChannel { public: - explicit FakeXmppChannel(TaskRunner* task_runner, weave::Network* network) + explicit FakeXmppChannel(TaskRunner* task_runner, + weave::NetworkProvider* network) : XmppChannel{kAccountName, kAccessToken, task_runner, network}, stream_{new FakeStream{task_runner_}}, fake_stream_{stream_.get()} {} @@ -161,10 +162,10 @@ FakeStream* fake_stream_{nullptr}; }; -class MockNetwork : public weave::test::MockNetwork { +class MockNetworkProvider : public weave::test::MockNetworkProvider { public: - MockNetwork() { - EXPECT_CALL(*this, AddOnConnectionChangedCallback(_)) + MockNetworkProvider() { + EXPECT_CALL(*this, AddConnectionChangedCallback(_)) .WillRepeatedly(Return()); } }; @@ -196,7 +197,7 @@ } StrictMock<test::MockTaskRunner> task_runner_; - StrictMock<MockNetwork> network_; + StrictMock<MockNetworkProvider> network_; FakeXmppChannel xmpp_client_{&task_runner_, &network_}; };
diff --git a/libweave/src/privet/privet_manager.cc b/libweave/src/privet/privet_manager.cc index 1bc7caf..cbf3bd3 100644 --- a/libweave/src/privet/privet_manager.cc +++ b/libweave/src/privet/privet_manager.cc
@@ -15,7 +15,7 @@ #include <base/scoped_observer.h> #include <base/strings/string_number_conversions.h> #include <base/values.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include "libweave/src/device_registration_info.h" #include "libweave/src/http_constants.h" @@ -35,7 +35,7 @@ void Manager::Start(const Device::Options& options, TaskRunner* task_runner, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi, @@ -51,7 +51,7 @@ security_.reset(new SecurityManager(device->GetSettings().pairing_modes, device->GetSettings().embedded_code, disable_security_, task_runner)); - network->AddOnConnectionChangedCallback( + network->AddConnectionChangedCallback( base::Bind(&Manager::OnConnectivityChanged, base::Unretained(this))); if (wifi && device->GetSettings().wifi_auto_setup_enabled) {
diff --git a/libweave/src/privet/privet_manager.h b/libweave/src/privet/privet_manager.h index a452a6b..107a280 100644 --- a/libweave/src/privet/privet_manager.h +++ b/libweave/src/privet/privet_manager.h
@@ -30,7 +30,7 @@ class CommandManager; class DeviceRegistrationInfo; class Mdns; -class Network; +class NetworkProvider; class StateManager; namespace privet { @@ -49,7 +49,7 @@ void Start(const weave::Device::Options& options, TaskRunner* task_runner, - Network* network, + NetworkProvider* network, Mdns* mdns, HttpServer* http_server, WifiProvider* wifi,
diff --git a/libweave/src/privet/privet_types.cc b/libweave/src/privet/privet_types.cc index 5d1222d..9c32bad 100644 --- a/libweave/src/privet/privet_types.cc +++ b/libweave/src/privet/privet_types.cc
@@ -8,7 +8,7 @@ #include <weave/enum_to_string.h> #include <weave/export.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include <weave/privet.h> namespace weave {
diff --git a/libweave/src/privet/wifi_bootstrap_manager.cc b/libweave/src/privet/wifi_bootstrap_manager.cc index bd84e14..dff6c9f 100644 --- a/libweave/src/privet/wifi_bootstrap_manager.cc +++ b/libweave/src/privet/wifi_bootstrap_manager.cc
@@ -7,7 +7,7 @@ #include <base/logging.h> #include <base/memory/weak_ptr.h> #include <weave/enum_to_string.h> -#include <weave/network.h> +#include <weave/network_provider.h> #include <weave/task_runner.h> #include <weave/wifi_provider.h> @@ -22,7 +22,7 @@ const std::string& test_privet_ssid, bool ble_setup_enabled, TaskRunner* task_runner, - Network* network, + NetworkProvider* network, WifiProvider* wifi, CloudDelegate* gcd) : task_runner_{task_runner}, @@ -39,7 +39,7 @@ void WifiBootstrapManager::Init() { UpdateConnectionState(); - network_->AddOnConnectionChangedCallback( + network_->AddConnectionChangedCallback( base::Bind(&WifiBootstrapManager::OnConnectivityChange, lifetime_weak_factory_.GetWeakPtr())); if (last_configured_ssid_.empty()) {
diff --git a/libweave/src/privet/wifi_bootstrap_manager.h b/libweave/src/privet/wifi_bootstrap_manager.h index f0cb20e..fbf6360 100644 --- a/libweave/src/privet/wifi_bootstrap_manager.h +++ b/libweave/src/privet/wifi_bootstrap_manager.h
@@ -22,7 +22,7 @@ namespace weave { -class Network; +class NetworkProvider; class TaskRunner; class WifiProvider; @@ -41,7 +41,7 @@ const std::string& test_privet_ssid, bool wifi_setup_enabled, TaskRunner* task_runner, - Network* shill_client, + NetworkProvider* shill_client, WifiProvider* wifi, CloudDelegate* gcd); ~WifiBootstrapManager() override = default; @@ -97,7 +97,7 @@ SetupState setup_state_{SetupState::kNone}; ConnectionState connection_state_{ConnectionState::kDisabled}; TaskRunner* task_runner_{nullptr}; - Network* network_{nullptr}; + NetworkProvider* network_{nullptr}; WifiProvider* wifi_{nullptr}; WifiSsidGenerator ssid_generator_; base::Time monitor_until_;
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc index d495f32..9bd7559 100644 --- a/libweave/src/weave_unittest.cc +++ b/libweave/src/weave_unittest.cc
@@ -11,7 +11,7 @@ #include <weave/test/mock_http_client.h> #include <weave/test/mock_http_server.h> #include <weave/test/mock_mdns.h> -#include <weave/test/mock_network.h> +#include <weave/test/mock_network_provider.h> #include <weave/test/mock_task_runner.h> #include <weave/test/mock_wifi_provider.h> #include <weave/test/unittest_utils.h> @@ -222,9 +222,9 @@ } void InitNetwork() { - EXPECT_CALL(network_, AddOnConnectionChangedCallback(_)) - .WillRepeatedly( - Invoke([this](const Network::OnConnectionChangedCallback& cb) { + EXPECT_CALL(network_, AddConnectionChangedCallback(_)) + .WillRepeatedly(Invoke( + [this](const NetworkProvider::ConnectionChangedCallback& cb) { network_callbacks_.push_back(cb); })); EXPECT_CALL(network_, GetConnectionState()) @@ -325,13 +325,13 @@ StrictMock<test::MockConfigStore> config_store_; StrictMock<test::MockTaskRunner> task_runner_; StrictMock<test::MockHttpClient> http_client_; - StrictMock<test::MockNetwork> network_; + StrictMock<test::MockNetworkProvider> network_; StrictMock<test::MockMdns> mdns_; StrictMock<test::MockHttpServer> http_server_; StrictMock<test::MockWifiProvider> wifi_; StrictMock<test::MockBluetooth> bluetooth_; - std::vector<Network::OnConnectionChangedCallback> network_callbacks_; + std::vector<NetworkProvider::ConnectionChangedCallback> network_callbacks_; weave::Cloud* cloud_{nullptr};