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

Side by Side Diff: chrome/common/net/network_change_notifier_proxy.cc

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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/common/net/network_change_notifier_proxy.h"
6
7 #include "base/logging.h"
8 #include "base/message_loop.h"
9 #include "chrome/common/net/network_change_observer_proxy.h"
10
11 namespace chrome_common_net {
12
13 NetworkChangeNotifierProxy::NetworkChangeNotifierProxy(
14 NetworkChangeNotifierThread* source_thread)
15 : observer_proxy_(new NetworkChangeObserverProxy(
16 source_thread, MessageLoop::current())),
17 observer_repeater_(&observers_) {
18 DCHECK(observer_proxy_);
19 observer_proxy_->Attach(&observer_repeater_);
20 }
21
22 NetworkChangeNotifierProxy::~NetworkChangeNotifierProxy() {
23 DCHECK(CalledOnValidThread());
24 observer_proxy_->Detach();
25 }
26
27 void NetworkChangeNotifierProxy::AddObserver(
28 net::NetworkChangeNotifier::Observer* observer) {
29 DCHECK(CalledOnValidThread());
30 observers_.AddObserver(observer);
31 }
32
33 void NetworkChangeNotifierProxy::RemoveObserver(
34 net::NetworkChangeNotifier::Observer* observer) {
35 DCHECK(CalledOnValidThread());
36 observers_.RemoveObserver(observer);
37 }
38
39 NetworkChangeNotifierProxy::ObserverRepeater::ObserverRepeater(
40 NetworkObserverList* observers)
41 : observers_(observers) {
42 DCHECK(observers_);
43 }
44
45 NetworkChangeNotifierProxy::ObserverRepeater::~ObserverRepeater() {
46 DCHECK(CalledOnValidThread());
47 }
48
49 void NetworkChangeNotifierProxy::ObserverRepeater::OnIPAddressChanged() {
50 DCHECK(CalledOnValidThread());
51 FOR_EACH_OBSERVER(net::NetworkChangeNotifier::Observer, *observers_,
52 OnIPAddressChanged());
53 }
54
55 } // namespace chrome_common_net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698