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

Side by Side Diff: webrtc/base/networkmonitor.cc

Issue 1535943004: Multi-networking with Android L. Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « webrtc/base/networkmonitor.h ('k') | webrtc/base/physicalsocketserver.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2015 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/base/networkmonitor.h" 11 #include "webrtc/base/networkmonitor.h"
12 12
13 #include "webrtc/base/bind.h"
13 #include "webrtc/base/common.h" 14 #include "webrtc/base/common.h"
14 15
15 namespace { 16 namespace {
16 const uint32_t UPDATE_NETWORKS_MESSAGE = 1; 17 const uint32_t UPDATE_NETWORKS_MESSAGE = 1;
17 18
18 // This is set by NetworkMonitorFactory::SetFactory and the caller of 19 // This is set by NetworkMonitorFactory::SetFactory and the caller of
19 // NetworkMonitorFactory::SetFactory must be responsible for calling 20 // NetworkMonitorFactory::SetFactory must be responsible for calling
20 // ReleaseFactory to destroy the factory. 21 // ReleaseFactory to destroy the factory.
21 rtc::NetworkMonitorFactory* network_monitor_factory = nullptr; 22 rtc::NetworkMonitorFactory* network_monitor_factory = nullptr;
22 } // namespace 23 } // namespace
23 24
24 namespace rtc { 25 namespace rtc {
25 NetworkMonitorInterface::NetworkMonitorInterface() {} 26 NetworkMonitorInterface::NetworkMonitorInterface() {}
26 27
27 NetworkMonitorInterface::~NetworkMonitorInterface() {} 28 NetworkMonitorInterface::~NetworkMonitorInterface() {}
28 29
29 NetworkMonitorBase::NetworkMonitorBase() : thread_(Thread::Current()) {} 30 NetworkMonitorBase::NetworkMonitorBase() : thread_(Thread::Current()) {}
30 NetworkMonitorBase::~NetworkMonitorBase() {} 31 NetworkMonitorBase::~NetworkMonitorBase() {}
31 32
32 void NetworkMonitorBase::OnNetworksChanged() { 33 void NetworkMonitorBase::OnNetworksChanged() {
33 LOG(LS_VERBOSE) << "Network change is received at the network monitor"; 34 LOG(LS_VERBOSE) << "Network change is received at the network monitor";
34 thread_->Post(this, UPDATE_NETWORKS_MESSAGE); 35 thread_->Post(this, UPDATE_NETWORKS_MESSAGE);
35 } 36 }
36 37
38
39 void NetworkMonitorBase::OnNetworkAvailable(
40 const NetworkInformation& network_info) {
41 LOG(LS_VERBOSE) << "Network available: " << network_info.interface_name;
42 thread_->Invoke<void>(rtc::Bind(
43 &NetworkMonitorBase::OnNetworkAvailable_w, this, network_info));
44 }
45
46 void NetworkMonitorBase::OnNetworkAvailable_w(
47 const NetworkInformation& network_info) {
48 SignalNetworkAvailable(network_info);
49 }
50
51 bool NetworkMonitorBase::GetAllNetworkInfos(
52 std::vector<NetworkInformation>* network_infos) {
53 return false;
54 }
55
37 void NetworkMonitorBase::OnMessage(Message* msg) { 56 void NetworkMonitorBase::OnMessage(Message* msg) {
38 ASSERT(msg->message_id == UPDATE_NETWORKS_MESSAGE); 57 ASSERT(msg->message_id == UPDATE_NETWORKS_MESSAGE);
39 SignalNetworksChanged(); 58 SignalNetworksChanged();
40 } 59 }
41 60
42 NetworkMonitorFactory::NetworkMonitorFactory() {} 61 NetworkMonitorFactory::NetworkMonitorFactory() {}
43 NetworkMonitorFactory::~NetworkMonitorFactory() {} 62 NetworkMonitorFactory::~NetworkMonitorFactory() {}
44 63
45 void NetworkMonitorFactory::SetFactory(NetworkMonitorFactory* factory) { 64 void NetworkMonitorFactory::SetFactory(NetworkMonitorFactory* factory) {
46 if (network_monitor_factory != nullptr) { 65 if (network_monitor_factory != nullptr) {
47 delete network_monitor_factory; 66 delete network_monitor_factory;
48 } 67 }
49 network_monitor_factory = factory; 68 network_monitor_factory = factory;
50 } 69 }
51 70
52 void NetworkMonitorFactory::ReleaseFactory(NetworkMonitorFactory* factory) { 71 void NetworkMonitorFactory::ReleaseFactory(NetworkMonitorFactory* factory) {
53 if (factory == network_monitor_factory) { 72 if (factory == network_monitor_factory) {
54 SetFactory(nullptr); 73 SetFactory(nullptr);
55 } 74 }
56 } 75 }
57 76
58 NetworkMonitorFactory* NetworkMonitorFactory::GetFactory() { 77 NetworkMonitorFactory* NetworkMonitorFactory::GetFactory() {
59 return network_monitor_factory; 78 return network_monitor_factory;
60 } 79 }
61 80
62 } // namespace rtc 81 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/networkmonitor.h ('k') | webrtc/base/physicalsocketserver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698