Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
Loading...
Searching...
No Matches
kcenon::thread::metrics::BackendRegistry Class Reference

Backend registry for managing multiple export formats. More...

#include <metrics_backend.h>

Collaboration diagram for kcenon::thread::metrics::BackendRegistry:
Collaboration graph

Public Member Functions

void register_backend (std::shared_ptr< MetricsBackend > backend)
 Register a backend.
 
std::shared_ptr< MetricsBackendget (const std::string &name) const
 Get a backend by name.
 
bool has (const std::string &name) const
 Check if a backend is registered.
 

Static Public Member Functions

static BackendRegistryinstance ()
 Get the singleton instance.
 

Private Member Functions

 BackendRegistry ()
 

Private Attributes

std::map< std::string, std::shared_ptr< MetricsBackend > > backends_
 

Detailed Description

Backend registry for managing multiple export formats.

Allows registration and retrieval of metrics backends by name.

Definition at line 264 of file metrics_backend.h.

Constructor & Destructor Documentation

◆ BackendRegistry()

kcenon::thread::metrics::BackendRegistry::BackendRegistry ( )
inlineprivate

Definition at line 306 of file metrics_backend.h.

306 {
307 // Register default backends
308 register_backend(std::make_shared<PrometheusBackend>());
309 register_backend(std::make_shared<JsonBackend>());
310 register_backend(std::make_shared<LoggingBackend>());
311 }
void register_backend(std::shared_ptr< MetricsBackend > backend)
Register a backend.

References register_backend().

Here is the call graph for this function:

Member Function Documentation

◆ get()

std::shared_ptr< MetricsBackend > kcenon::thread::metrics::BackendRegistry::get ( const std::string & name) const
inlinenodiscard

Get a backend by name.

Parameters
nameBackend identifier.
Returns
Shared pointer to the backend, or nullptr if not found.

Definition at line 290 of file metrics_backend.h.

291 {
292 auto it = backends_.find(name);
293 return (it != backends_.end()) ? it->second : nullptr;
294 }
std::map< std::string, std::shared_ptr< MetricsBackend > > backends_

References backends_.

Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::to_json().

Here is the caller graph for this function:

◆ has()

bool kcenon::thread::metrics::BackendRegistry::has ( const std::string & name) const
inlinenodiscard

Check if a backend is registered.

Parameters
nameBackend identifier.
Returns
True if registered.

Definition at line 301 of file metrics_backend.h.

301 {
302 return backends_.find(name) != backends_.end();
303 }

References backends_.

◆ instance()

static BackendRegistry & kcenon::thread::metrics::BackendRegistry::instance ( )
inlinestatic

Get the singleton instance.

Returns
Reference to the global registry.

Definition at line 270 of file metrics_backend.h.

270 {
271 static BackendRegistry registry;
272 return registry;
273 }

Referenced by kcenon::thread::metrics::EnhancedThreadPoolMetrics::to_json().

Here is the caller graph for this function:

◆ register_backend()

void kcenon::thread::metrics::BackendRegistry::register_backend ( std::shared_ptr< MetricsBackend > backend)
inline

Register a backend.

Parameters
backendShared pointer to the backend.

Definition at line 279 of file metrics_backend.h.

279 {
280 if (backend) {
281 backends_[backend->name()] = std::move(backend);
282 }
283 }

References backends_.

Referenced by BackendRegistry().

Here is the caller graph for this function:

Member Data Documentation

◆ backends_

std::map<std::string, std::shared_ptr<MetricsBackend> > kcenon::thread::metrics::BackendRegistry::backends_
private

Definition at line 313 of file metrics_backend.h.

Referenced by get(), has(), and register_backend().


The documentation for this class was generated from the following file: