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

Unified Diff: webrtc/base/network.h

Issue 1976683003: Update the type and cost of existing networks if its type is found later by network monitor (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Get network type from name matching only on IOS or Android. Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/base/network.h
diff --git a/webrtc/base/network.h b/webrtc/base/network.h
index a41da4a69a0f01f41fd7344ce89d99b6f0e593d2..2bd280976386bb743d5c16ebdc76fde234c944a6 100644
--- a/webrtc/base/network.h
+++ b/webrtc/base/network.h
@@ -37,6 +37,8 @@ class Network;
class NetworkMonitorInterface;
class Thread;
+static const uint16_t kMaxNetworkCost = 999;
+static const uint16_t kNetworkCostForUnknownType = 10;
pthatcher1 2016/05/17 21:23:11 See my comments about these names in another CL (I
honghaiz3 2016/05/18 07:41:46 Done. I once worried that one client may set its c
// By default, ignore loopback interfaces on the host.
const int kDefaultNetworkIgnoreMask = ADAPTER_TYPE_LOOPBACK;
@@ -249,6 +251,8 @@ class BasicNetworkManager : public NetworkManagerBase,
// Only updates the networks; does not reschedule the next update.
void UpdateNetworksOnce();
+ AdapterType GetAdapterTypeFromName(const char* network_name) const;
+
Thread* thread_;
bool sent_first_update_;
int start_count_;
@@ -273,6 +277,7 @@ class Network {
~Network();
sigslot::signal1<const Network*> SignalInactive;
+ sigslot::signal1<const Network*> SignalNetworkTypeChanged;
pthatcher1 2016/05/17 21:23:11 SignalTypeChanged would be enough, since this is a
honghaiz3 2016/05/18 07:41:46 Done.
const DefaultLocalAddressProvider* default_local_address_provider() {
return default_local_address_provider_;
@@ -344,7 +349,23 @@ class Network {
void set_ignored(bool ignored) { ignored_ = ignored; }
AdapterType type() const { return type_; }
- void set_type(AdapterType type) { type_ = type; }
+ void set_type(AdapterType type) {
+ if (type_ != type) {
pthatcher1 2016/05/17 21:23:11 I'd slightly prefer this with an early return: if
honghaiz3 2016/05/18 07:41:46 Done.
+ type_ = type;
+ SignalNetworkTypeChanged(this);
+ }
+ }
+
+ uint16_t GetCost() const {
+ switch (type_) {
+ case rtc::ADAPTER_TYPE_UNKNOWN:
+ return kNetworkCostForUnknownType;
+ case rtc::ADAPTER_TYPE_CELLULAR:
+ return kMaxNetworkCost;
+ default:
pthatcher1 2016/05/17 21:23:11 Again, see my comments in the other CL where I thi
honghaiz3 2016/05/18 07:41:46 Done.
+ return 0;
+ }
+ }
// A unique id assigned by the network manager, which may be signaled
// to the remote side in the candidate.

Powered by Google App Engine
This is Rietveld 408576698