Index: net/base/network_change_notifier_chromeos.h |
diff --git a/net/base/network_change_notifier_chromeos.h b/net/base/network_change_notifier_chromeos.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bcb2e2ce2e5428581934d391b715e98657f50540 |
--- /dev/null |
+++ b/net/base/network_change_notifier_chromeos.h |
@@ -0,0 +1,94 @@ |
+// Copyright (c) 2012 The Chromium 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 CHROMEOS_NETWORK_CONNECTION_CHANGE_NOTIFIER_H_ |
+#define CHROMEOS_NETWORK_CONNECTION_CHANGE_NOTIFIER_H_ |
+ |
+#include <string> |
+ |
+#include "base/basictypes.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "chromeos/network/network_state_handler_observer.h" |
+#include "net/base/net_export.h" |
+#include "net/base/network_change_notifier.h" |
+#include "net/dns/dns_config_service_posix.h" |
+ |
+namespace net { |
+ |
+class NET_EXPORT_PRIVATE NetworkChangeNotifierChromeos |
+ : public NetworkChangeNotifier, |
+ public chromeos::NetworkStateHandlerObserver { |
+ public: |
+ NetworkChangeNotifierChromeos(); |
+ virtual ~NetworkChangeNotifierChromeos(); |
+ |
+ // Initialize the connection change notifier. Start observing |
+ // changes from the network state handler. |
stevenjb
2012/12/13 19:28:22
Simplify to: Starts observing changes from the net
gauravsh
2012/12/15 00:42:45
Done.
|
+ void Initialize(); |
+ |
+ // Shutdown the connection change notifier. Stop observing |
+ // changes from the network state handler. |
stevenjb
2012/12/13 19:28:22
dito. s/Stop/Stops
gauravsh
2012/12/15 00:42:45
Done.
|
+ void Shutdown(); |
+ |
+ // NetworkChangeNotifier overrides. |
+ NetworkChangeNotifier::ConnectionType |
+ GetCurrentConnectionType() const OVERRIDE; |
+ |
+ // NetworkStateHandlerObserver overrides. |
+ void ActiveNetworkChanged( |
+ const chromeos::NetworkState* active_network) OVERRIDE; |
+ void ActiveNetworkStateChanged( |
+ const chromeos::NetworkState* active_network) OVERRIDE; |
+ |
+ private: |
+ friend class NetworkChangeNotifierChromeosUpdateTest; |
+ |
+ class DnsConfigService : public net::internal::DnsConfigServicePosix { |
stevenjb
2012/12/13 19:28:22
We can define this only in the .cc file and forwar
gauravsh
2012/12/15 00:42:45
Done.
|
+ public: |
+ DnsConfigService(); |
+ virtual ~DnsConfigService(); |
+ |
+ // net::internal::DnsConfigService() overrides. |
+ virtual bool StartWatching() OVERRIDE; |
+ |
+ virtual void OnNetworkChange(); |
+ }; |
+ |
+ // Updates the state based on an active network update. |
+ // |connection_type_changed| is set to true if we must report a connection |
+ // type change. |
+ // |ip_address_changed| is set to true if we must report an IP address change. |
+ // |dns_changed| is set to true if we must report a DNS config change. |
+ void UpdateActiveNetwork(const chromeos::NetworkState* active_network, |
stevenjb
2012/12/13 19:28:22
It looks like this doesn't actually do any updatin
gauravsh
2012/12/15 00:42:45
Changed this to UpdateState(), since it's changing
|
+ bool* connection_type_changed, |
+ bool* ip_address_changed, |
+ bool* dns_changed); |
+ |
+ // Maps the shill network type and technology to its NetworkChangeNotifier |
+ // equivalent. |
+ static NetworkChangeNotifier::ConnectionType |
+ ConnectionTypeFromShill(const std::string& type, |
+ const std::string& technology); |
+ |
+ // Calculates parameters used for network change notifier online/offline |
+ // signals. |
+ static NetworkChangeCalculatorParams NetworkChangeCalculatorParamsChromeos(); |
+ |
+ NetworkChangeNotifier::ConnectionType connection_type_; |
stevenjb
2012/12/13 19:28:22
We should be consistent with whether or not we use
gauravsh
2012/12/15 00:42:45
Made it consistent. I prefer the qualifier because
|
+ // IP address for the current active network. |
+ std::string ip_address_; |
+ // Service path for the current active network. |
+ std::string service_path_; |
+ |
+ scoped_ptr<DnsConfigService> dns_config_service_; |
+ |
+ FRIEND_TEST_ALL_PREFIXES(NetworkChangeNotifierChromeosTest, |
+ ConnectionTypeFromShill); |
stevenjb
2012/12/13 19:28:22
FRIEND* should be just below private
gauravsh
2012/12/15 00:42:45
Done.
|
+ |
+ DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierChromeos); |
+}; |
+ |
+} // namespace chromeos |
+ |
+#endif // CHROMEOS_CONNECTION_CHANGE_NOTIFIER_H_ |