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

Unified Diff: net/nqe/network_id.h

Issue 2128793003: Factor out NetworkID and caching mechanism from n_q_e.{h,cc} (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Ryan's comments Created 4 years, 5 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: net/nqe/network_id.h
diff --git a/net/nqe/network_id.h b/net/nqe/network_id.h
new file mode 100644
index 0000000000000000000000000000000000000000..f48da619567c37b7b0f62a8e96c0a5559727bcdf
--- /dev/null
+++ b/net/nqe/network_id.h
@@ -0,0 +1,63 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_NQE_NETWORK_ID_H_
+#define NET_NQE_NETWORK_ID_H_
+
+#include <string>
+#include <tuple>
+
+#include "net/base/net_export.h"
+#include "net/base/network_change_notifier.h"
+
+namespace net {
+
+namespace nqe {
+
+namespace internal {
+
+// NetworkID is used to uniquely identify a network.
+// For the purpose of network quality estimation and caching, a network is
+// uniquely identified by a combination of |type| and
+// |id|. This approach is unable to distinguish networks with
+// same name (e.g., different Wi-Fi networks with same SSID).
+// This is a protected member to expose it to tests.
+struct NET_EXPORT_PRIVATE NetworkID {
+ NetworkID(NetworkChangeNotifier::ConnectionType type, const std::string& id)
+ : type(type), id(id) {}
+ NetworkID(const NetworkID& other) : type(other.type), id(other.id) {}
+ ~NetworkID() {}
+
+ NetworkID& operator=(const NetworkID& other) {
+ type = other.type;
+ id = other.id;
+ return *this;
+ }
+
+ // Overloaded because NetworkID is used as key in a map.
bengr 2016/07/19 01:04:35 I'd remove the comment because NetworkID should no
tbansal1 2016/07/20 00:08:47 Done.
+ bool operator<(const NetworkID& other) const {
+ return std::tie(type, id) < std::tie(other.type, other.id);
+ }
+
+ // Connection type of the network.
+ NetworkChangeNotifier::ConnectionType type;
+
+ // Name of this network. This is set to:
+ // - Wi-Fi SSID if the device is connected to a Wi-Fi access point and the
+ // SSID name is available, or
+ // - MCC/MNC code of the cellular carrier if the device is connected to a
+ // cellular network, or
+ // - "Ethernet" in case the device is connected to ethernet.
+ // - An empty string in all other cases or if the network name is not
+ // exposed by platform APIs.
+ std::string id;
+};
+
+} // namespace internal
+
+} // namespace nqe
+
+} // namespace net
+
+#endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_

Powered by Google App Engine
This is Rietveld 408576698