26#ifndef ROUTER_SRC_MYSQL_REST_SERVICE_SRC_MRS_OBSERVABILITY_ENTITY_H_
27#define ROUTER_SRC_MYSQL_REST_SERVICE_SRC_MRS_OBSERVABILITY_ENTITY_H_
31#include <shared_mutex>
34namespace observability {
38 static inline std::shared_mutex
mutex;
50template <u
int64_t counter_
id>
61template <u
int64_t counter_
id>
71 uint64_t
get_id()
const override {
return counter_id; }
77 static inline std::atomic<uint64_t>
value_;
80template <u
int64_t counter_
id>
88template <u
int64_t counter_
id>
105 static inline std::atomic<uint64_t>
count_;
110template <u
int64_t counter_
id>
113template <u
int64_t counter_
id>
static std::shared_mutex mutex
Definition: entity.h:38
static std::atomic< uint64_t > count_
Definition: entity.h:105
static void increment(int32_t inc=1)
Definition: entity.h:94
uint64_t get_value_and_reset() override
Definition: entity.h:100
uint64_t get_value_and_reset() override
Definition: entity.h:85
uint64_t get_value_and_reset() override
Definition: entity.h:73
static std::atomic< uint64_t > value_
Definition: entity.h:77
std::string get_name() const override
Definition: entity.h:72
static void increment(int32_t inc=1)
Definition: entity.h:64
EntityCounter(const std::string &name)
Definition: entity.h:69
uint64_t get_id() const override
Definition: entity.h:71
std::string name_
Definition: entity.h:76
EntityWithId()
Definition: entity.h:53
static std::atomic_flag registred_
Definition: entity.h:57
virtual uint64_t get_value_and_reset()=0
virtual ~Entity()=default
virtual std::string get_name() const =0
virtual uint64_t get_id() const =0
Sharded atomic counter.
Definition: ut0counter.h:221
Type inc(Shards< COUNT > &shards, size_t id)
Increment the counter of a shard by 1.
Definition: ut0counter.h:293
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
Definition: authorize_manager.h:48
case opt name
Definition: sslopt-case.h:29