1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // 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.
- #include "net/nqe/effective_connection_type.h"
- #include "base/notreached.h"
- namespace {
- const char kDeprectedEffectiveConnectionTypeSlow2G[] = "Slow2G";
- } // namespace
- namespace net {
- const char kEffectiveConnectionTypeUnknown[] = "Unknown";
- const char kEffectiveConnectionTypeOffline[] = "Offline";
- const char kEffectiveConnectionTypeSlow2G[] = "Slow-2G";
- const char kEffectiveConnectionType2G[] = "2G";
- const char kEffectiveConnectionType3G[] = "3G";
- const char kEffectiveConnectionType4G[] = "4G";
- const char* GetNameForEffectiveConnectionType(EffectiveConnectionType type) {
- switch (type) {
- case EFFECTIVE_CONNECTION_TYPE_UNKNOWN:
- return kEffectiveConnectionTypeUnknown;
- case EFFECTIVE_CONNECTION_TYPE_OFFLINE:
- return kEffectiveConnectionTypeOffline;
- case EFFECTIVE_CONNECTION_TYPE_SLOW_2G:
- return kEffectiveConnectionTypeSlow2G;
- case EFFECTIVE_CONNECTION_TYPE_2G:
- return kEffectiveConnectionType2G;
- case EFFECTIVE_CONNECTION_TYPE_3G:
- return kEffectiveConnectionType3G;
- case EFFECTIVE_CONNECTION_TYPE_4G:
- return kEffectiveConnectionType4G;
- case EFFECTIVE_CONNECTION_TYPE_LAST:
- NOTREACHED();
- return "";
- }
- NOTREACHED();
- return "";
- }
- absl::optional<EffectiveConnectionType> GetEffectiveConnectionTypeForName(
- base::StringPiece connection_type_name) {
- if (connection_type_name == kEffectiveConnectionTypeUnknown)
- return EFFECTIVE_CONNECTION_TYPE_UNKNOWN;
- if (connection_type_name == kEffectiveConnectionTypeOffline)
- return EFFECTIVE_CONNECTION_TYPE_OFFLINE;
- if (connection_type_name == kEffectiveConnectionTypeSlow2G)
- return EFFECTIVE_CONNECTION_TYPE_SLOW_2G;
- // Return EFFECTIVE_CONNECTION_TYPE_SLOW_2G if the deprecated string
- // representation is in use.
- if (connection_type_name == kDeprectedEffectiveConnectionTypeSlow2G)
- return EFFECTIVE_CONNECTION_TYPE_SLOW_2G;
- if (connection_type_name == kEffectiveConnectionType2G)
- return EFFECTIVE_CONNECTION_TYPE_2G;
- if (connection_type_name == kEffectiveConnectionType3G)
- return EFFECTIVE_CONNECTION_TYPE_3G;
- if (connection_type_name == kEffectiveConnectionType4G)
- return EFFECTIVE_CONNECTION_TYPE_4G;
- return absl::nullopt;
- }
- const char* DeprecatedGetNameForEffectiveConnectionType(
- EffectiveConnectionType type) {
- switch (type) {
- case EFFECTIVE_CONNECTION_TYPE_SLOW_2G:
- return kDeprectedEffectiveConnectionTypeSlow2G;
- default:
- return GetNameForEffectiveConnectionType(type);
- }
- }
- } // namespace net
|