00001
00002
00003
00004
00005 #ifndef MEDIDA_METERED_INTERFACE_H_
00006 #define MEDIDA_METERED_INTERFACE_H_
00007
00008 #include "medida/types.h"
00009
00010 namespace medida {
00011
00012 class MeteredInterface {
00013 public:
00014 virtual ~MeteredInterface() {};
00015 virtual std::chrono::nanoseconds rate_unit() const = 0;
00016 virtual std::string event_type() const = 0;
00017 virtual std::uint64_t count() const = 0;
00018 virtual double fifteen_minute_rate() = 0;
00019 virtual double five_minute_rate() = 0;
00020 virtual double one_minute_rate() = 0;
00021 virtual double mean_rate() = 0;
00022 };
00023
00024 }
00025
00026 #endif // MEDIDA_METERED_INTERFACE_H_