@@ -69,6 +69,10 @@ struct single_table_state {
6969 return get_or_create<typename types::gauge_t >(std::move (id));
7070 }
7171
72+ auto get_gauge_ttl (IdPtr id, unsigned int ttl_seconds) {
73+ return get_or_create<typename types::gauge_t >(std::move (id), ttl_seconds);
74+ }
75+
7276 auto get_max_gauge (IdPtr id) {
7377 return get_or_create<typename types::max_gauge_t >(std::move (id));
7478 }
@@ -168,6 +172,14 @@ class base_registry {
168172 auto GetGauge (absl::string_view name, Tags tags = {}) {
169173 return GetGauge (Id::of (name, std::move (tags)));
170174 }
175+
176+ auto GetGaugeTTL (const IdPtr& id, unsigned int ttl_seconds) {
177+ return state_.get_gauge_ttl (final_id (id), ttl_seconds);
178+ }
179+
180+ auto GetGaugeTTL (absl::string_view name, unsigned int ttl_seconds, Tags tags = {}) {
181+ return GetGaugeTTL (Id::of (name, std::move (tags)), ttl_seconds);
182+ }
171183
172184 auto GetMaxGauge (const IdPtr& id) {
173185 return state_.get_max_gauge (final_id (id));
@@ -284,6 +296,10 @@ struct stateless {
284296 return std::make_shared<typename types::gauge_t >(std::move (id), publisher.get ());
285297 }
286298
299+ auto get_gauge_ttl (IdPtr id, unsigned int ttl_seconds) {
300+ return std::make_shared<typename types::gauge_t >(std::move (id), publisher.get (), ttl_seconds);
301+ }
302+
287303 auto get_max_gauge (IdPtr id) {
288304 return std::make_shared<typename types::max_gauge_t >(std::move (id), publisher.get ());
289305 }
0 commit comments