| // 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_QUALITY_OBSERVATION_SOURCE_H_ |
| #define NET_NQE_NETWORK_QUALITY_OBSERVATION_SOURCE_H_ |
| |
| namespace net { |
| |
| // On Android, a Java counterpart will be generated for this enum. |
| // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net |
| // GENERATED_JAVA_CLASS_NAME_OVERRIDE: NetworkQualityObservationSource |
| // GENERATED_JAVA_PREFIX_TO_STRIP: NETWORK_QUALITY_OBSERVATION_SOURCE_ |
| enum NetworkQualityObservationSource { |
| // The observation was taken at the request layer, e.g., a round trip time |
| // is recorded as the time between the request being sent and the first byte |
| // being received. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP = 0, |
| |
| // The observation is taken from TCP statistics maintained by the kernel. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_TCP = 1, |
| |
| // The observation is taken at the QUIC layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_QUIC = 2, |
| |
| // The observation is a previously cached estimate of the metric. The metric |
| // was computed at the HTTP layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE = 3, |
| |
| // The observation is derived from network connection information provided |
| // by the platform. For example, typical RTT and throughput values are used |
| // for a given type of network connection. The metric was provided for use |
| // at the HTTP layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_HTTP_FROM_PLATFORM = 4, |
| |
| // The observation came from a Chromium-external source. The metric was |
| // computed by the external source at the HTTP layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_EXTERNAL_ESTIMATE = 5, |
| |
| // The observation is a previously cached estimate of the metric. The metric |
| // was computed at the transport layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE = 6, |
| |
| // The observation is derived from the network connection information provided |
| // by the platform. For example, typical RTT and throughput values are used |
| // for a given type of network connection. The metric was provided for use |
| // at the transport layer. |
| NETWORK_QUALITY_OBSERVATION_SOURCE_DEFAULT_TRANSPORT_FROM_PLATFORM = 7, |
| |
| NETWORK_QUALITY_OBSERVATION_SOURCE_MAX, |
| }; |
| |
| namespace nqe { |
| |
| namespace internal { |
| // Returns the string equivalent of |source|. |
| const char* GetNameForObservationSource(NetworkQualityObservationSource source); |
| |
| // Different categories to which an observation source can belong to. Each |
| // oberation source belongs to exactly one category. |
| enum class ObservationCategory { kHttp = 0, kTransport = 1 }; |
| |
| } // namespace internal |
| |
| } // namespace nqe |
| |
| } // namespace net |
| |
| #endif // NET_NQE_NETWORK_QUALITY_OBSERVATION_SOURCE_H_ |