00001
00002
00003
00004
00005 #ifndef MEDIDA_REPORTING_JSON_REPORTER_H_
00006 #define MEDIDA_REPORTING_JSON_REPORTER_H_
00007
00008 #include <memory>
00009 #include <string>
00010
00011 #include "medida/metric_processor.h"
00012 #include "medida/metrics_registry.h"
00013
00014 namespace medida {
00015 namespace reporting {
00016
00017 class JsonReporter : public MetricProcessor {
00018 public:
00019 JsonReporter(MetricsRegistry ®istry);
00020 virtual ~JsonReporter();
00021 virtual void Process(Counter& counter);
00022 virtual void Process(Meter& meter);
00023 virtual void Process(Histogram& histogram);
00024 virtual void Process(Timer& timer);
00025 virtual std::string Report();
00026 private:
00027 class Impl;
00028 std::unique_ptr<Impl> impl_;
00029 };
00030
00031
00032 }
00033 }
00034
00035 #endif // MEDIDA_REPORTING_JSON_REPORTER_H_