| Index: net/nqe/network_id.h
|
| diff --git a/net/nqe/network_id.h b/net/nqe/network_id.h
|
| index 4620ce3bd92b9f81ad5804cf810149aba8a4368e..083a55fad4c9f3c439446c8ed85fd51ac0543a00 100644
|
| --- a/net/nqe/network_id.h
|
| +++ b/net/nqe/network_id.h
|
| @@ -8,13 +8,36 @@
|
| #include <string>
|
| #include <tuple>
|
|
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "net/base/net_export.h"
|
| #include "net/base/network_change_notifier.h"
|
|
|
| namespace {
|
| +
|
| const char kValueSeparator[] = ",";
|
| +
|
| +// Parses |connection_type_string| as a NetworkChangeNotifier::ConnectionType.
|
| +// |connection_type_string| must contain the
|
| +// NetworkChangeNotifier::ConnectionType enum as an interger.
|
| +net::NetworkChangeNotifier::ConnectionType ConvertStringToConnectionType(
|
| + const std::string& connection_type_string) {
|
| + int connection_type_int =
|
| + static_cast<int>(net::NetworkChangeNotifier::CONNECTION_UNKNOWN);
|
| + bool connection_type_available =
|
| + base::StringToInt(connection_type_string, &connection_type_int);
|
| +
|
| + if (!connection_type_available || connection_type_int < 0 ||
|
| + connection_type_int >=
|
| + static_cast<int>(net::NetworkChangeNotifier::CONNECTION_LAST)) {
|
| + DCHECK(false);
|
| + return net::NetworkChangeNotifier::CONNECTION_UNKNOWN;
|
| + }
|
| + return static_cast<net::NetworkChangeNotifier::ConnectionType>(
|
| + connection_type_int);
|
| }
|
|
|
| +} // namespace
|
| +
|
| namespace net {
|
| namespace nqe {
|
| namespace internal {
|
| @@ -26,11 +49,29 @@ namespace internal {
|
| // 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 {
|
| + static NetworkID FromString(const std::string& network_id) {
|
| + size_t separator_index = network_id.find(kValueSeparator);
|
| + DCHECK_NE(std::string::npos, separator_index);
|
| + if (separator_index == std::string::npos) {
|
| + return NetworkID(NetworkChangeNotifier::CONNECTION_UNKNOWN,
|
| + std::string());
|
| + }
|
| +
|
| + return NetworkID(
|
| + ConvertStringToConnectionType(network_id.substr(separator_index + 1)),
|
| + network_id.substr(0, separator_index));
|
| + }
|
| NetworkID(NetworkChangeNotifier::ConnectionType type, const std::string& id)
|
| : type(type), id(id) {}
|
| NetworkID(const NetworkID& other) : type(other.type), id(other.id) {}
|
| ~NetworkID() {}
|
|
|
| + bool operator==(const NetworkID& other) const {
|
| + return type == other.type && id == other.id;
|
| + }
|
| +
|
| + bool operator!=(const NetworkID& other) const { return !operator==(other); }
|
| +
|
| NetworkID& operator=(const NetworkID& other) {
|
| type = other.type;
|
| id = other.id;
|
| @@ -43,8 +84,7 @@ struct NET_EXPORT_PRIVATE NetworkID {
|
| }
|
|
|
| std::string ToString() const {
|
| - return id + kValueSeparator +
|
| - NetworkChangeNotifier::ConnectionTypeToString(type);
|
| + return id + kValueSeparator + base::IntToString(static_cast<int>(type));
|
| }
|
|
|
| // Connection type of the network.
|
|
|