Chromium Code Reviews| Index: net/base/network_change_notifier.h |
| diff --git a/net/base/network_change_notifier.h b/net/base/network_change_notifier.h |
| index fe2a8f19bd4debcc16e715389e55e57f0a289b83..e095898dbac953e2c44da0afcfd68d2004925fc9 100644 |
| --- a/net/base/network_change_notifier.h |
| +++ b/net/base/network_change_notifier.h |
| @@ -50,6 +50,22 @@ class NET_API NetworkChangeNotifier { |
| DISALLOW_COPY_AND_ASSIGN(OnlineStateObserver); |
| }; |
| + class DNSObserver { |
|
willchan no longer on Chromium
2011/07/13 12:10:37
Please make this part of NET_API.
Craig
2011/07/18 16:18:13
Done.
|
| + public: |
| + virtual ~DNSObserver() {} |
| + |
| + // Will be called when the DNS resolver of the system may have changed. |
| + // This is only used on Linux currently and watches /etc/resolv.conf |
| + // and /etc/hosts |
| + virtual void OnDNSChanged() = 0; |
| + |
| + protected: |
| + DNSObserver() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(DNSObserver); |
| + }; |
| + |
| virtual ~NetworkChangeNotifier(); |
| // See the description of NetworkChangeNotifier::IsOffline(). |
| @@ -89,6 +105,7 @@ class NET_API NetworkChangeNotifier { |
| // thread), in which case it will simply do nothing. |
| static void AddIPAddressObserver(IPAddressObserver* observer); |
| static void AddOnlineStateObserver(OnlineStateObserver* observer); |
| + static void AddDNSObserver(DNSObserver* observer); |
| // Unregisters |observer| from receiving notifications. This must be called |
| // on the same thread on which AddObserver() was called. Like AddObserver(), |
| @@ -99,6 +116,7 @@ class NET_API NetworkChangeNotifier { |
| // there's no reason to use the API in this risky way, so don't do it. |
| static void RemoveIPAddressObserver(IPAddressObserver* observer); |
| static void RemoveOnlineStateObserver(OnlineStateObserver* observer); |
| + static void RemoveDNSObserver(DNSObserver* observer); |
| // Allow unit tests to trigger notifications. |
| static void NotifyObserversOfIPAddressChangeForTests() { |
| @@ -113,12 +131,15 @@ class NET_API NetworkChangeNotifier { |
| // tests. |
| static void NotifyObserversOfIPAddressChange(); |
| static void NotifyObserversOfOnlineStateChange(); |
| + static void NotifyObserversOfDNSChange(); |
| private: |
| const scoped_refptr<ObserverListThreadSafe<IPAddressObserver> > |
| ip_address_observer_list_; |
| const scoped_refptr<ObserverListThreadSafe<OnlineStateObserver> > |
| online_state_observer_list_; |
| + const scoped_refptr<ObserverListThreadSafe<DNSObserver> > |
| + resolver_state_observer_list_; |
| DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifier); |
| }; |