Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(339)

Unified Diff: net/nqe/observation_buffer.h

Issue 2367143002: NQE: Cleanup observation buffer code (Closed)
Patch Set: ps Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/nqe/network_quality_observation_unittest.cc ('k') | net/nqe/observation_buffer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/nqe/observation_buffer.h
diff --git a/net/nqe/observation_buffer.h b/net/nqe/observation_buffer.h
index cc3f1d86dba8cda4d4313df5c38bf1ea69fc7b9a..9a4ce3ab238c2bd1921f70daa232adb0c6a509db 100644
--- a/net/nqe/observation_buffer.h
+++ b/net/nqe/observation_buffer.h
@@ -9,12 +9,16 @@
#include <algorithm>
#include <deque>
+#include <memory>
+#include <utility>
#include <vector>
-#include "base/gtest_prod_util.h"
#include "base/macros.h"
+#include "base/time/default_tick_clock.h"
+#include "base/time/tick_clock.h"
#include "base/time/time.h"
#include "net/base/net_export.h"
+#include "net/nqe/network_quality_observation.h"
#include "net/nqe/network_quality_observation_source.h"
#include "net/nqe/weighted_observation.h"
@@ -29,7 +33,8 @@ template <typename ValueType>
class NET_EXPORT_PRIVATE ObservationBuffer {
public:
explicit ObservationBuffer(double weight_multiplier_per_second)
- : weight_multiplier_per_second_(weight_multiplier_per_second) {
+ : weight_multiplier_per_second_(weight_multiplier_per_second),
+ tick_clock_(new base::DefaultTickClock()) {
static_assert(kMaximumObservationsBufferSize > 0U,
"Minimum size of observation buffer must be > 0");
DCHECK_GE(weight_multiplier_per_second_, 0.0);
@@ -70,6 +75,7 @@ class NET_EXPORT_PRIVATE ObservationBuffer {
// value is unavailable if all the values in observation buffer are older
// than |begin_timestamp|.
// |result| must not be null.
+ // TODO(tbansal): Move out param |result| as the last param of the function.
bool GetPercentile(const base::TimeTicks& begin_timestamp,
ValueType* result,
int percentile,
@@ -116,6 +122,10 @@ class NET_EXPORT_PRIVATE ObservationBuffer {
return true;
}
+ void SetTickClockForTesting(std::unique_ptr<base::TickClock> tick_clock) {
+ tick_clock_ = std::move(tick_clock);
+ }
+
private:
// Maximum number of observations that can be held in the ObservationBuffer.
static const size_t kMaximumObservationsBufferSize = 300;
@@ -136,7 +146,7 @@ class NET_EXPORT_PRIVATE ObservationBuffer {
weighted_observations.clear();
double total_weight_observations = 0.0;
- base::TimeTicks now = base::TimeTicks::Now();
+ base::TimeTicks now = tick_clock_->NowTicks();
for (const auto& observation : observations_) {
if (observation.timestamp < begin_timestamp)
@@ -174,6 +184,8 @@ class NET_EXPORT_PRIVATE ObservationBuffer {
// weight_multiplier_per_second_ ^ kHalfLifeSeconds = 0.5
const double weight_multiplier_per_second_;
+ std::unique_ptr<base::TickClock> tick_clock_;
+
DISALLOW_COPY_AND_ASSIGN(ObservationBuffer);
};
« no previous file with comments | « net/nqe/network_quality_observation_unittest.cc ('k') | net/nqe/observation_buffer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698