diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2018-10-05 20:00:28 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2018-10-05 20:12:45 +0000 |
commit | ca101d103d57ea6adebf3fcd5cb24a9ba0411f27 (patch) | |
tree | aff6a8696daa7381cf29818add5c924b9384604c /staging_vespalib | |
parent | 8a941d0fb215cb1a698959bafa5b789a376eef93 (diff) |
add APIs using NameRepo instance
Diffstat (limited to 'staging_vespalib')
6 files changed, 71 insertions, 4 deletions
diff --git a/staging_vespalib/src/vespa/vespalib/metrics/dimension.cpp b/staging_vespalib/src/vespa/vespalib/metrics/dimension.cpp index 05bdd42f34a..1877a986c3e 100644 --- a/staging_vespalib/src/vespa/vespalib/metrics/dimension.cpp +++ b/staging_vespalib/src/vespa/vespalib/metrics/dimension.cpp @@ -1,2 +1,19 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "dimension.h" +#include "name_repo.h" + +namespace vespalib::metrics { + +Dimension +Dimension::from_name(const vespalib::string& name) +{ + return NameRepo::instance.dimension(name); +} + +const vespalib::string& +Dimension::as_name() const +{ + return NameRepo::instance.dimensionName(*this); +} + +} // namespace vespalib::metrics diff --git a/staging_vespalib/src/vespa/vespalib/metrics/dimension.h b/staging_vespalib/src/vespa/vespalib/metrics/dimension.h index ee16bc6f98a..e367e50d8f5 100644 --- a/staging_vespalib/src/vespa/vespalib/metrics/dimension.h +++ b/staging_vespalib/src/vespa/vespalib/metrics/dimension.h @@ -13,6 +13,11 @@ struct DimensionTag {}; /** * Opaque handle representing an uniquely named dimension. **/ -using Dimension = Handle<DimensionTag>; +struct Dimension : Handle<DimensionTag> +{ + explicit Dimension(size_t id) : Handle(id) {} + static Dimension from_name(const vespalib::string& name); + const vespalib::string& as_name() const; +}; } // namespace vespalib::metrics diff --git a/staging_vespalib/src/vespa/vespalib/metrics/label.cpp b/staging_vespalib/src/vespa/vespalib/metrics/label.cpp index 218db1ca2ce..3de952b252d 100644 --- a/staging_vespalib/src/vespa/vespalib/metrics/label.cpp +++ b/staging_vespalib/src/vespa/vespalib/metrics/label.cpp @@ -1,2 +1,19 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "label.h" +#include "name_repo.h" + +namespace vespalib::metrics { + +Label +Label::from_value(const vespalib::string& value) +{ + return NameRepo::instance.label(value); +} + +const vespalib::string& +Label::as_value() const +{ + return NameRepo::instance.labelValue(*this); +} + +} // namespace vespalib::metrics diff --git a/staging_vespalib/src/vespa/vespalib/metrics/label.h b/staging_vespalib/src/vespa/vespalib/metrics/label.h index e2356415fd6..561c8061991 100644 --- a/staging_vespalib/src/vespa/vespalib/metrics/label.h +++ b/staging_vespalib/src/vespa/vespalib/metrics/label.h @@ -11,8 +11,13 @@ using LabelValue = vespalib::string; struct LabelTag {}; /** - * Opaque handle representing an uniquely named label. + * Opaque handle representing an unique label value. **/ -using Label = Handle<LabelTag>; +struct Label : Handle<LabelTag> +{ + explicit Label(size_t id) : Handle(id) {} + static Label from_value(const vespalib::string& value); + const vespalib::string& as_value() const; +}; } // namespace vespalib::metrics diff --git a/staging_vespalib/src/vespa/vespalib/metrics/metric_id.cpp b/staging_vespalib/src/vespa/vespalib/metrics/metric_id.cpp index df985db9938..2b8c0705a9f 100644 --- a/staging_vespalib/src/vespa/vespalib/metrics/metric_id.cpp +++ b/staging_vespalib/src/vespa/vespalib/metrics/metric_id.cpp @@ -1,2 +1,19 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "metric_id.h" +#include "name_repo.h" + +namespace vespalib::metrics { + +MetricId +MetricId::from_name(const vespalib::string& name) +{ + return NameRepo::instance.metric(name); +} + +const vespalib::string& +MetricId::as_name() const +{ + return NameRepo::instance.metricName(*this); +} + +} // namespace vespalib::metrics diff --git a/staging_vespalib/src/vespa/vespalib/metrics/metric_id.h b/staging_vespalib/src/vespa/vespalib/metrics/metric_id.h index 58b401cd552..5f337e6decd 100644 --- a/staging_vespalib/src/vespa/vespalib/metrics/metric_id.h +++ b/staging_vespalib/src/vespa/vespalib/metrics/metric_id.h @@ -2,6 +2,7 @@ #pragma once #include "handle.h" +#include <vespa/vespalib/stllike/string.h> namespace vespalib::metrics { @@ -10,6 +11,11 @@ struct MetricIdTag {}; /** * Opaque handle representing an uniquely named metric. **/ -using MetricId = Handle<MetricIdTag>; +struct MetricId : Handle<MetricIdTag> +{ + explicit MetricId(size_t id) : Handle(id) {} + static MetricId from_name(const vespalib::string& name); + const vespalib::string& as_name() const; +}; } // namespace vespalib::metrics |