Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: net/base/network_change_notifier_win.h

Issue 2802015: Massively simplify the NetworkChangeNotifier infrastructure:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_WIN_H_ 5 #ifndef NET_BASE_NETWORK_CHANGE_NOTIFIER_WIN_H_
6 #define NET_BASE_NETWORK_CHANGE_NOTIFIER_WIN_H_ 6 #define NET_BASE_NETWORK_CHANGE_NOTIFIER_WIN_H_
7 7
8 #include "base/basictypes.h" 8 #include <windows.h>
9 #include "base/non_thread_safe.h" 9
10 #include "base/object_watcher.h" 10 #include "base/object_watcher.h"
11 #include "base/observer_list.h"
12 #include "net/base/network_change_notifier.h" 11 #include "net/base/network_change_notifier.h"
13 12
14 namespace net { 13 namespace net {
15 14
16 class NetworkChangeNotifierWin : public NetworkChangeNotifier, 15 class NetworkChangeNotifierWin : public NetworkChangeNotifier,
17 public NonThreadSafe { 16 public base::ObjectWatcher::Delegate {
18 public: 17 public:
19 NetworkChangeNotifierWin(); 18 NetworkChangeNotifierWin();
20 19
21 // Called by NetworkChangeNotifierWin::Impl.
22 void OnIPAddressChanged();
23
24 // NetworkChangeNotifier methods:
25 virtual void AddObserver(Observer* observer);
26 virtual void RemoveObserver(Observer* observer);
27
28 private: 20 private:
29 class Impl;
30
31 virtual ~NetworkChangeNotifierWin(); 21 virtual ~NetworkChangeNotifierWin();
32 22
33 // TODO(willchan): Fix the URLRequestContextGetter leaks and flip the false to 23 // ObjectWatcher::Delegate methods:
34 // true so we assert that all observers have been removed. 24 virtual void OnObjectSignaled(HANDLE object);
35 ObserverList<Observer, false> observers_; 25
36 scoped_ptr<Impl> impl_; 26 // Begins listening for a single subsequent address change.
27 void WatchForAddressChange();
28
29 base::ObjectWatcher addr_watcher_;
30 OVERLAPPED addr_overlapped_;
37 31
38 DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierWin); 32 DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierWin);
39 }; 33 };
40 34
41 } // namespace net 35 } // namespace net
42 36
43 #endif // NET_BASE_NETWORK_CHANGE_NOTIFIER_WIN_H_ 37 #endif // NET_BASE_NETWORK_CHANGE_NOTIFIER_WIN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698