| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef NET_BASE_NETWORK_CHANGE_NOTIFIER_H_ | 5 #ifndef NET_BASE_NETWORK_CHANGE_NOTIFIER_H_ |
| 6 #define NET_BASE_NETWORK_CHANGE_NOTIFIER_H_ | 6 #define NET_BASE_NETWORK_CHANGE_NOTIFIER_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 SUBTYPE_WIFI_G, | 94 SUBTYPE_WIFI_G, |
| 95 SUBTYPE_WIFI_N, | 95 SUBTYPE_WIFI_N, |
| 96 SUBTYPE_WIFI_AC, | 96 SUBTYPE_WIFI_AC, |
| 97 SUBTYPE_WIFI_AD, | 97 SUBTYPE_WIFI_AD, |
| 98 SUBTYPE_UNKNOWN, | 98 SUBTYPE_UNKNOWN, |
| 99 SUBTYPE_NONE, | 99 SUBTYPE_NONE, |
| 100 SUBTYPE_OTHER, | 100 SUBTYPE_OTHER, |
| 101 SUBTYPE_LAST = SUBTYPE_OTHER | 101 SUBTYPE_LAST = SUBTYPE_OTHER |
| 102 }; | 102 }; |
| 103 | 103 |
| 104 // Types of network changes specified to |
| 105 // NotifyObserversOfSpecificNetworkChange. |
| 106 enum NetworkChangeType { |
| 107 CONNECTED, |
| 108 DISCONNECTED, |
| 109 SOON_TO_DISCONNECT, |
| 110 MADE_DEFAULT |
| 111 }; |
| 112 |
| 104 class NET_EXPORT IPAddressObserver { | 113 class NET_EXPORT IPAddressObserver { |
| 105 public: | 114 public: |
| 106 // Will be called when the IP address of the primary interface changes. | 115 // Will be called when the IP address of the primary interface changes. |
| 107 // This includes when the primary interface itself changes. | 116 // This includes when the primary interface itself changes. |
| 108 virtual void OnIPAddressChanged() = 0; | 117 virtual void OnIPAddressChanged() = 0; |
| 109 | 118 |
| 110 protected: | 119 protected: |
| 111 IPAddressObserver() {} | 120 IPAddressObserver() {} |
| 112 virtual ~IPAddressObserver() {} | 121 virtual ~IPAddressObserver() {} |
| 113 | 122 |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 static void RemoveDNSObserver(DNSObserver* observer); | 391 static void RemoveDNSObserver(DNSObserver* observer); |
| 383 static void RemoveNetworkChangeObserver(NetworkChangeObserver* observer); | 392 static void RemoveNetworkChangeObserver(NetworkChangeObserver* observer); |
| 384 static void RemoveMaxBandwidthObserver(MaxBandwidthObserver* observer); | 393 static void RemoveMaxBandwidthObserver(MaxBandwidthObserver* observer); |
| 385 static void RemoveNetworkObserver(NetworkObserver* observer); | 394 static void RemoveNetworkObserver(NetworkObserver* observer); |
| 386 | 395 |
| 387 // Allow unit tests to trigger notifications. | 396 // Allow unit tests to trigger notifications. |
| 388 static void NotifyObserversOfIPAddressChangeForTests(); | 397 static void NotifyObserversOfIPAddressChangeForTests(); |
| 389 static void NotifyObserversOfConnectionTypeChangeForTests( | 398 static void NotifyObserversOfConnectionTypeChangeForTests( |
| 390 ConnectionType type); | 399 ConnectionType type); |
| 391 static void NotifyObserversOfNetworkChangeForTests(ConnectionType type); | 400 static void NotifyObserversOfNetworkChangeForTests(ConnectionType type); |
| 401 static void NotifyObserversOfSpecificNetworkChangeForTests( |
| 402 NetworkChangeType type, |
| 403 NetworkHandle network); |
| 392 static void NotifyObserversOfInitialDNSConfigReadForTests(); | 404 static void NotifyObserversOfInitialDNSConfigReadForTests(); |
| 393 static void NotifyObserversOfMaxBandwidthChangeForTests( | 405 static void NotifyObserversOfMaxBandwidthChangeForTests( |
| 394 double max_bandwidth_mbps, | 406 double max_bandwidth_mbps, |
| 395 ConnectionType type); | 407 ConnectionType type); |
| 396 | 408 |
| 397 // Enable or disable notifications from the host. After setting to true, be | 409 // Enable or disable notifications from the host. After setting to true, be |
| 398 // sure to pump the RunLoop until idle to finish any preexisting | 410 // sure to pump the RunLoop until idle to finish any preexisting |
| 399 // notifications. To use this, it must must be called before a | 411 // notifications. To use this, it must must be called before a |
| 400 // NetworkChangeNotifier is created. | 412 // NetworkChangeNotifier is created. |
| 401 static void SetTestNotificationsOnly(bool test_only); | 413 static void SetTestNotificationsOnly(bool test_only); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 public: | 445 public: |
| 434 DisableForTest(); | 446 DisableForTest(); |
| 435 ~DisableForTest(); | 447 ~DisableForTest(); |
| 436 | 448 |
| 437 private: | 449 private: |
| 438 // The original NetworkChangeNotifier to be restored on destruction. | 450 // The original NetworkChangeNotifier to be restored on destruction. |
| 439 NetworkChangeNotifier* network_change_notifier_; | 451 NetworkChangeNotifier* network_change_notifier_; |
| 440 }; | 452 }; |
| 441 | 453 |
| 442 protected: | 454 protected: |
| 443 // Types of network changes specified to | |
| 444 // NotifyObserversOfSpecificNetworkChange. | |
| 445 enum NetworkChangeType { | |
| 446 CONNECTED, | |
| 447 DISCONNECTED, | |
| 448 SOON_TO_DISCONNECT, | |
| 449 MADE_DEFAULT | |
| 450 }; | |
| 451 | |
| 452 // NetworkChanged signal is calculated from the IPAddressChanged and | 455 // NetworkChanged signal is calculated from the IPAddressChanged and |
| 453 // ConnectionTypeChanged signals. Delay parameters control how long to delay | 456 // ConnectionTypeChanged signals. Delay parameters control how long to delay |
| 454 // producing NetworkChanged signal after particular input signals so as to | 457 // producing NetworkChanged signal after particular input signals so as to |
| 455 // combine duplicates. In other words if an input signal is repeated within | 458 // combine duplicates. In other words if an input signal is repeated within |
| 456 // the corresponding delay period, only one resulting NetworkChange signal is | 459 // the corresponding delay period, only one resulting NetworkChange signal is |
| 457 // produced. | 460 // produced. |
| 458 struct NET_EXPORT NetworkChangeCalculatorParams { | 461 struct NET_EXPORT NetworkChangeCalculatorParams { |
| 459 NetworkChangeCalculatorParams(); | 462 NetworkChangeCalculatorParams(); |
| 460 // Controls delay after OnIPAddressChanged when transitioning from an | 463 // Controls delay after OnIPAddressChanged when transitioning from an |
| 461 // offline state. | 464 // offline state. |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 | 561 |
| 559 // Set true to disable non-test notifications (to prevent flakes in tests). | 562 // Set true to disable non-test notifications (to prevent flakes in tests). |
| 560 static bool test_notifications_only_; | 563 static bool test_notifications_only_; |
| 561 | 564 |
| 562 DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifier); | 565 DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifier); |
| 563 }; | 566 }; |
| 564 | 567 |
| 565 } // namespace net | 568 } // namespace net |
| 566 | 569 |
| 567 #endif // NET_BASE_NETWORK_CHANGE_NOTIFIER_H_ | 570 #endif // NET_BASE_NETWORK_CHANGE_NOTIFIER_H_ |
| OLD | NEW |