// 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_