00001
00002
00003
00004
00005 #ifndef MEDIDA_METRIC_NAME_H_
00006 #define MEDIDA_METRIC_NAME_H_
00007
00008
00009 #include <memory>
00010 #include <string>
00011
00012 namespace medida {
00013
00014 class MetricName {
00015 public:
00016 MetricName(const std::string &domain, const std::string &type, const std::string &name, const std::string &scope = "");
00017 MetricName(const MetricName& other);
00018 ~MetricName();
00019 std::string domain() const;
00020 std::string type() const;
00021 std::string name() const;
00022 std::string scope() const;
00023 std::string ToString() const;
00024 bool has_scope() const;
00025 bool operator==(const MetricName& other) const;
00026 bool operator!=(const MetricName& other) const;
00027 bool operator<(const MetricName& other) const;
00028 bool operator>(const MetricName& other) const;
00029 private:
00030 class Impl;
00031 std::unique_ptr<Impl> impl_;
00032 };
00033
00034
00035 }
00036
00037 #endif // MEDIDA_METRIC_NAME_H_