OLD | NEW |
| (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 | |
OLD | NEW |