// Copyright 2014 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 CC_BASE_ROLLING_TIME_DELTA_HISTORY_H_
#define CC_BASE_ROLLING_TIME_DELTA_HISTORY_H_

#include <deque>
#include <set>

#include "base/time/time.h"
#include "cc/base/cc_export.h"

namespace cc {

// Stores a limited number of samples. When the maximum size is reached, each
// insertion results in the deletion of the oldest remaining sample.
class CC_EXPORT RollingTimeDeltaHistory {
 public:
  explicit RollingTimeDeltaHistory(size_t max_size);

  ~RollingTimeDeltaHistory();

  void InsertSample(base::TimeDelta time);

  size_t SampleCount();

  void Clear();

  // Returns the smallest sample that is greater than or equal to the specified
  // percent of samples. If there aren't any samples, returns base::TimeDelta().
  base::TimeDelta Percentile(double percent) const;

 private:
  typedef std::multiset<base::TimeDelta> TimeDeltaMultiset;

  TimeDeltaMultiset sample_set_;
  std::deque<TimeDeltaMultiset::iterator> chronological_sample_deque_;
  size_t max_size_;

  DISALLOW_COPY_AND_ASSIGN(RollingTimeDeltaHistory);
};

}  // namespace cc

#endif  // CC_BASE_ROLLING_TIME_DELTA_HISTORY_H_
