OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "net/base/network_change_notifier.h" | 5 #include "net/base/network_change_notifier.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <unordered_set> | 8 #include <unordered_set> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 20 matching lines...) Expand all Loading... | |
31 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) | 31 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) |
32 #include "net/base/network_change_notifier_linux.h" | 32 #include "net/base/network_change_notifier_linux.h" |
33 #elif defined(OS_MACOSX) | 33 #elif defined(OS_MACOSX) |
34 #include "net/base/network_change_notifier_mac.h" | 34 #include "net/base/network_change_notifier_mac.h" |
35 #endif | 35 #endif |
36 | 36 |
37 namespace net { | 37 namespace net { |
38 | 38 |
39 namespace { | 39 namespace { |
40 | 40 |
41 static const char* const kConnectionTypeNames[] = { | |
42 "CONNECTION_UNKNOWN", "CONNECTION_ETHERNET", "CONNECTION_WIFI", | |
43 "CONNECTION_2G", "CONNECTION_3G", "CONNECTION_4G", | |
44 "CONNECTION_NONE", "CONNECTION_BLUETOOTH"}; | |
45 | |
41 // The actual singleton notifier. The class contract forbids usage of the API | 46 // The actual singleton notifier. The class contract forbids usage of the API |
42 // in ways that would require us to place locks around access to this object. | 47 // in ways that would require us to place locks around access to this object. |
43 // (The prohibition on global non-POD objects makes it tricky to do such a thing | 48 // (The prohibition on global non-POD objects makes it tricky to do such a thing |
44 // anyway.) | 49 // anyway.) |
45 NetworkChangeNotifier* g_network_change_notifier = NULL; | 50 NetworkChangeNotifier* g_network_change_notifier = NULL; |
46 | 51 |
47 // Class factory singleton. | 52 // Class factory singleton. |
48 NetworkChangeNotifierFactory* g_network_change_notifier_factory = NULL; | 53 NetworkChangeNotifierFactory* g_network_change_notifier_factory = NULL; |
49 | 54 |
50 class MockNetworkChangeNotifier : public NetworkChangeNotifier { | 55 class MockNetworkChangeNotifier : public NetworkChangeNotifier { |
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
674 | 679 |
675 // static | 680 // static |
676 void NetworkChangeNotifier::GetDnsConfig(DnsConfig* config) { | 681 void NetworkChangeNotifier::GetDnsConfig(DnsConfig* config) { |
677 if (!g_network_change_notifier) { | 682 if (!g_network_change_notifier) { |
678 *config = DnsConfig(); | 683 *config = DnsConfig(); |
679 } else { | 684 } else { |
680 g_network_change_notifier->network_state_->GetDnsConfig(config); | 685 g_network_change_notifier->network_state_->GetDnsConfig(config); |
681 } | 686 } |
682 } | 687 } |
683 | 688 |
689 // static | |
690 NetworkChangeNotifier::ConnectionType | |
691 NetworkChangeNotifier::StringToConnectionType( | |
692 const std::string& connection_type) { | |
693 static_assert(arraysize(kConnectionTypeNames) == | |
694 NetworkChangeNotifier::CONNECTION_LAST + 1, | |
695 "ConnectionType name count should match"); | |
696 const auto it = std::find( | |
697 kConnectionTypeNames, | |
RyanSturm
2016/10/12 21:33:34
Can this be more C++11-ish and have std::find(std:
tbansal1
2016/10/12 22:04:01
Obsolete.
| |
698 kConnectionTypeNames + arraysize(kConnectionTypeNames), connection_type); | |
699 return it != kConnectionTypeNames + arraysize(kConnectionTypeNames) | |
700 ? static_cast<NetworkChangeNotifier::ConnectionType>( | |
RyanSturm
2016/10/12 21:33:34
I'm not convinced this static_cast is a good way t
tbansal1
2016/10/12 22:04:01
From https://cs.chromium.org/chromium/src/net/base
| |
701 it - kConnectionTypeNames) | |
702 : NetworkChangeNotifier::CONNECTION_UNKNOWN; | |
703 } | |
704 | |
684 // static | 705 // static |
685 const char* NetworkChangeNotifier::ConnectionTypeToString( | 706 const char* NetworkChangeNotifier::ConnectionTypeToString( |
686 ConnectionType type) { | 707 ConnectionType type) { |
687 static const char* const kConnectionTypeNames[] = { | |
688 "CONNECTION_UNKNOWN", | |
689 "CONNECTION_ETHERNET", | |
690 "CONNECTION_WIFI", | |
691 "CONNECTION_2G", | |
692 "CONNECTION_3G", | |
693 "CONNECTION_4G", | |
694 "CONNECTION_NONE", | |
695 "CONNECTION_BLUETOOTH" | |
696 }; | |
697 static_assert(arraysize(kConnectionTypeNames) == | 708 static_assert(arraysize(kConnectionTypeNames) == |
698 NetworkChangeNotifier::CONNECTION_LAST + 1, | 709 NetworkChangeNotifier::CONNECTION_LAST + 1, |
699 "ConnectionType name count should match"); | 710 "ConnectionType name count should match"); |
700 if (type < CONNECTION_UNKNOWN || type > CONNECTION_LAST) { | 711 if (type < CONNECTION_UNKNOWN || type > CONNECTION_LAST) { |
701 NOTREACHED(); | 712 NOTREACHED(); |
702 return "CONNECTION_INVALID"; | 713 return "CONNECTION_INVALID"; |
703 } | 714 } |
704 return kConnectionTypeNames[type]; | 715 return kConnectionTypeNames[type]; |
705 } | 716 } |
706 | 717 |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1169 | 1180 |
1170 NetworkChangeNotifier::DisableForTest::~DisableForTest() { | 1181 NetworkChangeNotifier::DisableForTest::~DisableForTest() { |
1171 DCHECK(!g_network_change_notifier); | 1182 DCHECK(!g_network_change_notifier); |
1172 g_network_change_notifier = network_change_notifier_; | 1183 g_network_change_notifier = network_change_notifier_; |
1173 } | 1184 } |
1174 | 1185 |
1175 void NetworkChangeNotifier::DNSObserver::OnInitialDNSConfigRead() { | 1186 void NetworkChangeNotifier::DNSObserver::OnInitialDNSConfigRead() { |
1176 } | 1187 } |
1177 | 1188 |
1178 } // namespace net | 1189 } // namespace net |
OLD | NEW |