Medida
histogram.h
00001 //
00002 // Copyright (c) 2012 Daniel Lundin
00003 //
00004 
00005 #ifndef MEDIDA_HISTOGRAM_H_
00006 #define MEDIDA_HISTOGRAM_H_
00007 
00008 #include <cstdint>
00009 #include <memory>
00010 
00011 #include "medida/metric_interface.h"
00012 #include "medida/sampling_interface.h"
00013 #include "medida/summarizable_interface.h"
00014 #include "medida/stats/sample.h"
00015 
00016 namespace medida {
00017 
00018 class Histogram : public MetricInterface, SamplingInterface, SummarizableInterface {
00019  public:
00020   Histogram(SampleType sample_type = kUniform);
00021   ~Histogram();
00022   virtual stats::Snapshot GetSnapshot() const;
00023   virtual double sum() const;
00024   virtual double max() const;
00025   virtual double min() const;
00026   virtual double mean() const;
00027   virtual double std_dev() const;
00028   void Update(std::int64_t value);
00029   std::uint64_t count() const;
00030   double variance() const;
00031   void Process(MetricProcessor& processor);
00032   void Clear();
00033  private:
00034   class Impl;
00035   std::unique_ptr<Impl> impl_;
00036 };
00037 
00038 } // namespace medida
00039 
00040 #endif // MEDIDA_HISTOGRAM_H_
 All Classes