// 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_WEIGHTED_OBSERVATION_H_ #define NET_NQE_WEIGHTED_OBSERVATION_H_ #include "net/base/net_export.h" namespace net { namespace nqe { namespace internal { // Holds an observation and its weight. struct NET_EXPORT_PRIVATE WeightedObservation { WeightedObservation(int32_t value, double weight) : value(value), weight(weight) {} WeightedObservation(const WeightedObservation& other) : WeightedObservation(other.value, other.weight) {} WeightedObservation& operator=(const WeightedObservation& other) { value = other.value; weight = other.weight; return *this; } // Required for sorting the samples in the ascending order of values. bool operator<(const WeightedObservation& other) const { return (value < other.value); } // Value of the sample. int32_t value; // Weight of the sample. This is computed based on how much time has passed // since the sample was taken. double weight; }; } // namespace internal } // namespace nqe } // namespace net #endif // NET_NQE_WEIGHTED_OBSERVATION_H_