// 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_H_ #define NET_NQE_NETWORK_QUALITY_OBSERVATION_H_ #include #include "base/optional.h" #include "base/time/time.h" #include "net/base/net_export.h" #include "net/nqe/network_quality_estimator_util.h" #include "net/nqe/network_quality_observation_source.h" namespace net { namespace nqe { namespace internal { // Records observations of network quality metrics (such as round trip time // or throughput), along with the time the observation was made. Observations // can be made at several places in the network stack, thus the observation // source is provided as well. struct NET_EXPORT_PRIVATE Observation { Observation(int32_t value, base::TimeTicks timestamp, const base::Optional& signal_strength, NetworkQualityObservationSource source); Observation(int32_t value, base::TimeTicks timestamp, const base::Optional& signal_strength, NetworkQualityObservationSource source, const base::Optional& host); Observation(const Observation& other); ~Observation(); // Value of the observation. const int32_t value; // Time when the observation was taken. const base::TimeTicks timestamp; // Signal strength when the observation was taken. const base::Optional signal_strength; // The source of the observation. const NetworkQualityObservationSource source; // A unique identifier for the remote host which was used for the measurement. const base::Optional host; }; } // namespace internal } // namespace nqe } // namespace net #endif // NET_NQE_NETWORK_QUALITY_OBSERVATION_H_