summaryrefslogtreecommitdiffstats
path: root/staging_vespalib
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2018-10-05 20:00:28 +0000
committerArne Juul <arnej@yahoo-inc.com>2018-10-05 20:12:45 +0000
commitca101d103d57ea6adebf3fcd5cb24a9ba0411f27 (patch)
treeaff6a8696daa7381cf29818add5c924b9384604c /staging_vespalib
parent8a941d0fb215cb1a698959bafa5b789a376eef93 (diff)
add APIs using NameRepo instance
Diffstat (limited to 'staging_vespalib')
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/dimension.cpp17
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/dimension.h7
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/label.cpp17
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/label.h9
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/metric_id.cpp17
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/metric_id.h8
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