summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--metrics/src/vespa/metrics/metric.cpp2
-rw-r--r--metrics/src/vespa/metrics/metric.h2
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/handle.h3
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/name_collection.h2
4 files changed, 7 insertions, 2 deletions
diff --git a/metrics/src/vespa/metrics/metric.cpp b/metrics/src/vespa/metrics/metric.cpp
index 82f9c848ece..579e3bdfbe3 100644
--- a/metrics/src/vespa/metrics/metric.cpp
+++ b/metrics/src/vespa/metrics/metric.cpp
@@ -44,7 +44,7 @@ vespalib::Regexp Metric::_namePattern(namePattern);
Tag::Tag(vespalib::stringref k)
: _key(NameRepo::tagKeyId(k)),
- _value(0)
+ _value(TagValueId::empty_handle)
{ }
Tag::Tag(vespalib::stringref k, vespalib::stringref v)
: _key(NameRepo::tagKeyId(k)),
diff --git a/metrics/src/vespa/metrics/metric.h b/metrics/src/vespa/metrics/metric.h
index c92cad8c0cd..d1313c3ca1a 100644
--- a/metrics/src/vespa/metrics/metric.h
+++ b/metrics/src/vespa/metrics/metric.h
@@ -94,7 +94,7 @@ struct Tag
Tag & operator = (Tag &&) = default;
~Tag();
- bool hasValue() const { return _value.id() != 0; }
+ bool hasValue() const { return (_value != TagValueId::empty_handle); }
private:
TagKeyId _key;
diff --git a/staging_vespalib/src/vespa/vespalib/metrics/handle.h b/staging_vespalib/src/vespa/vespalib/metrics/handle.h
index ddae0b1b6d2..3e32945ceed 100644
--- a/staging_vespalib/src/vespa/vespalib/metrics/handle.h
+++ b/staging_vespalib/src/vespa/vespalib/metrics/handle.h
@@ -15,9 +15,12 @@ template <typename T>
class Handle {
private:
size_t _id;
+ constexpr Handle() : _id(0) {}
public:
explicit Handle(size_t id) : _id(id) {}
size_t id() const { return _id; }
+
+ static constexpr Handle empty_handle = Handle();
};
template <typename T>
diff --git a/staging_vespalib/src/vespa/vespalib/metrics/name_collection.h b/staging_vespalib/src/vespa/vespalib/metrics/name_collection.h
index 6a91c2d4a9d..6e939cd372d 100644
--- a/staging_vespalib/src/vespa/vespalib/metrics/name_collection.h
+++ b/staging_vespalib/src/vespa/vespalib/metrics/name_collection.h
@@ -23,6 +23,8 @@ public:
NameCollection();
~NameCollection() {}
+
+ static constexpr size_t empty_id = 0;
};
} // namespace vespalib::metrics