zwoop commented on code in PR #10694:
URL: https://github.com/apache/trafficserver/pull/10694#discussion_r1384182142
##########
include/api/Metrics.h:
##########
@@ -289,10 +280,126 @@ class Metrics
mutable std::mutex _mutex;
LookupTable _lookups;
- MetricBlobs _blobs;
+ BlobStorage _blobs;
uint16_t _cur_blob = 0;
uint16_t _cur_off = 0;
+public:
+ // These are sort of factory classes, using the Metrics singleton for all
storage etc.
+ class Gauge
+ {
+ public:
+ using self_type = Gauge;
+ using SpanType = Metrics::SpanType;
+
+ class AtomicType : public Metrics::AtomicType
+ {
+ };
+
+ static Metrics::IdType
+ create(const std::string_view name)
+ {
+ auto &instance = Metrics::instance();
+
+ return instance._create(name);
+ }
+
+ static AtomicType *
+ createPtr(const std::string_view name)
+ {
+ auto &instance = Metrics::instance();
+
+ return reinterpret_cast<AtomicType
*>(instance.lookup(instance._create(name)));
Review Comment:
That's a different lookup no? I'd have to look again, but remember there are
two lookups, one to that returns the IdType, and one that returns a pointer
directly to the atomic types.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]