summaryrefslogtreecommitdiffstats
path: root/net/base/network_change_notifier_win.h
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-24 22:41:47 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-24 22:41:47 +0000
commit6531594abea873c883782041fea5d126507497e1 (patch)
tree017227faab41fb16f84a2485ec9b03d3f783d132 /net/base/network_change_notifier_win.h
parent60a782e6a5a80fbba8fe690f05502147ae998d8c (diff)
downloadchromium_src-6531594abea873c883782041fea5d126507497e1.zip
chromium_src-6531594abea873c883782041fea5d126507497e1.tar.gz
chromium_src-6531594abea873c883782041fea5d126507497e1.tar.bz2
Switch NetworkChangeNotifier implementations to use ObserverList.
Fix up observer list so we can use FOR_EACH_OBSERVER when check_empty is set. Clean up the ObserverList API a bit, replacing GetElementAt() with HasObserver() and Clear(). BUG=36590 Review URL: http://codereview.chromium.org/652205 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39942 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/network_change_notifier_win.h')
-rw-r--r--net/base/network_change_notifier_win.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/net/base/network_change_notifier_win.h b/net/base/network_change_notifier_win.h
index b11ec0d..0f1f8d4 100644
--- a/net/base/network_change_notifier_win.h
+++ b/net/base/network_change_notifier_win.h
@@ -7,7 +7,8 @@
#include "base/basictypes.h"
#include "base/object_watcher.h"
-#include "net/base/network_change_notifier_helper.h"
+#include "base/observer_list.h"
+#include "net/base/network_change_notifier.h"
namespace net {
@@ -16,16 +17,19 @@ class NetworkChangeNotifierWin : public NetworkChangeNotifier {
NetworkChangeNotifierWin();
// Called by NetworkChangeNotifierWin::Impl.
- void OnIPAddressChanged() { helper_.OnIPAddressChanged(); }
+ void OnIPAddressChanged() {
+ FOR_EACH_OBSERVER(Observer, observers_, OnIPAddressChanged());
+ }
+
// NetworkChangeNotifier methods:
virtual void AddObserver(Observer* observer) {
- helper_.AddObserver(observer);
+ observers_.AddObserver(observer);
}
virtual void RemoveObserver(Observer* observer) {
- helper_.RemoveObserver(observer);
+ observers_.RemoveObserver(observer);
}
private:
@@ -33,7 +37,9 @@ class NetworkChangeNotifierWin : public NetworkChangeNotifier {
virtual ~NetworkChangeNotifierWin();
- internal::NetworkChangeNotifierHelper helper_;
+ // TODO(willchan): Fix the URLRequestContextGetter leaks and flip the false to
+ // true so we assert that all observers have been removed.
+ ObserverList<Observer, false> observers_;
scoped_ptr<Impl> impl_;
DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierWin);