Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::fault_tolerance_registry Class Reference

Fault tolerance manager registry. More...

#include <fault_tolerance_manager.h>

Collaboration diagram for kcenon::monitoring::fault_tolerance_registry:
Collaboration graph

Public Member Functions

template<typename T >
void register_manager (const std::string &name, std::shared_ptr< fault_tolerance_manager< T > > manager)
 
template<typename T >
std::shared_ptr< fault_tolerance_manager< T > > get_manager (const std::string &name)
 
void remove_manager (const std::string &name)
 
std::vector< std::string > get_all_names () const
 
void clear ()
 

Private Attributes

std::mutex mutex_
 
std::unordered_map< std::string, std::any > registry_
 

Detailed Description

Fault tolerance manager registry.

Definition at line 360 of file fault_tolerance_manager.h.

Member Function Documentation

◆ clear()

void kcenon::monitoring::fault_tolerance_registry::clear ( )
inline

Definition at line 393 of file fault_tolerance_manager.h.

393 {
394 std::lock_guard<std::mutex> lock(mutex_);
395 registry_.clear();
396 }
std::unordered_map< std::string, std::any > registry_

References mutex_, and registry_.

Referenced by FaultToleranceTest::TearDown().

Here is the caller graph for this function:

◆ get_all_names()

std::vector< std::string > kcenon::monitoring::fault_tolerance_registry::get_all_names ( ) const
inline

Definition at line 383 of file fault_tolerance_manager.h.

383 {
384 std::lock_guard<std::mutex> lock(mutex_);
385 std::vector<std::string> names;
386 names.reserve(registry_.size());
387 for (const auto& pair : registry_) {
388 names.push_back(pair.first);
389 }
390 return names;
391 }

References mutex_, and registry_.

◆ get_manager()

template<typename T >
std::shared_ptr< fault_tolerance_manager< T > > kcenon::monitoring::fault_tolerance_registry::get_manager ( const std::string & name)
inline

Definition at line 369 of file fault_tolerance_manager.h.

369 {
370 std::lock_guard<std::mutex> lock(mutex_);
371 auto it = registry_.find(name);
372 if (it != registry_.end()) {
373 return std::any_cast<std::shared_ptr<fault_tolerance_manager<T>>>(it->second);
374 }
375 return nullptr;
376 }

References mutex_, and registry_.

◆ register_manager()

template<typename T >
void kcenon::monitoring::fault_tolerance_registry::register_manager ( const std::string & name,
std::shared_ptr< fault_tolerance_manager< T > > manager )
inline

Definition at line 363 of file fault_tolerance_manager.h.

363 {
364 std::lock_guard<std::mutex> lock(mutex_);
365 registry_[name] = std::move(manager);
366 }

References mutex_, and registry_.

◆ remove_manager()

void kcenon::monitoring::fault_tolerance_registry::remove_manager ( const std::string & name)
inline

Definition at line 378 of file fault_tolerance_manager.h.

378 {
379 std::lock_guard<std::mutex> lock(mutex_);
380 registry_.erase(name);
381 }

References mutex_, and registry_.

Member Data Documentation

◆ mutex_

std::mutex kcenon::monitoring::fault_tolerance_registry::mutex_
mutableprivate

◆ registry_

std::unordered_map<std::string, std::any> kcenon::monitoring::fault_tolerance_registry::registry_
private

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