// 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 BASE_TEST_STATISTICS_DELTA_READER_H_
#define BASE_TEST_STATISTICS_DELTA_READER_H_

#include <map>
#include <string>

#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"

namespace base {

class HistogramSamples;

// This class acts as a differential reader for histogram samples, enabling
// tests to check that metrics were recorded as they should be.
//
// This class is DEPRECATED.
// TODO(mlerman): Remove all references to this class with UMAHistogramHelper
// references. crbug.com/384011
class StatisticsDeltaReader {
 public:
  StatisticsDeltaReader();
  ~StatisticsDeltaReader();

  // Returns the histogram data accumulated since this instance was created.
  // Returns NULL if no samples are available.
  scoped_ptr<HistogramSamples> GetHistogramSamplesSinceCreation(
      const std::string& histogram_name);

 private:
  // Used to determine the histogram changes made during this instance's
  // lifecycle. This instance takes ownership of the samples, which are deleted
  // when the instance is destroyed.
  std::map<std::string, HistogramSamples*> original_samples_;

  DISALLOW_COPY_AND_ASSIGN(StatisticsDeltaReader);
};

}  // namespace base

#endif  // BASE_TEST_STATISTICS_DELTA_READER_H_
