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

Circuit breaker registry. More...

#include <fault_tolerance_manager.h>

Collaboration diagram for kcenon::monitoring::circuit_breaker_registry:
Collaboration graph

Public Member Functions

void register_circuit_breaker (const std::string &name, std::shared_ptr< circuit_breaker > breaker)
 
std::shared_ptr< circuit_breakerget_circuit_breaker (const std::string &name)
 
void remove_circuit_breaker (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::shared_ptr< circuit_breaker > > registry_
 

Detailed Description

Circuit breaker registry.

Definition at line 270 of file fault_tolerance_manager.h.

Member Function Documentation

◆ clear()

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

Definition at line 301 of file fault_tolerance_manager.h.

301 {
302 std::lock_guard<std::mutex> lock(mutex_);
303 registry_.clear();
304 }
std::unordered_map< std::string, std::shared_ptr< circuit_breaker > > 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::circuit_breaker_registry::get_all_names ( ) const
inline

Definition at line 291 of file fault_tolerance_manager.h.

291 {
292 std::lock_guard<std::mutex> lock(mutex_);
293 std::vector<std::string> names;
294 names.reserve(registry_.size());
295 for (const auto& pair : registry_) {
296 names.push_back(pair.first);
297 }
298 return names;
299 }

References mutex_, and registry_.

◆ get_circuit_breaker()

std::shared_ptr< circuit_breaker > kcenon::monitoring::circuit_breaker_registry::get_circuit_breaker ( const std::string & name)
inline

Definition at line 277 of file fault_tolerance_manager.h.

277 {
278 std::lock_guard<std::mutex> lock(mutex_);
279 auto it = registry_.find(name);
280 if (it != registry_.end()) {
281 return it->second;
282 }
283 return nullptr;
284 }

References mutex_, and registry_.

◆ register_circuit_breaker()

void kcenon::monitoring::circuit_breaker_registry::register_circuit_breaker ( const std::string & name,
std::shared_ptr< circuit_breaker > breaker )
inline

Definition at line 272 of file fault_tolerance_manager.h.

272 {
273 std::lock_guard<std::mutex> lock(mutex_);
274 registry_[name] = std::move(breaker);
275 }

References mutex_, and registry_.

◆ remove_circuit_breaker()

void kcenon::monitoring::circuit_breaker_registry::remove_circuit_breaker ( const std::string & name)
inline

Definition at line 286 of file fault_tolerance_manager.h.

286 {
287 std::lock_guard<std::mutex> lock(mutex_);
288 registry_.erase(name);
289 }

References mutex_, and registry_.

Member Data Documentation

◆ mutex_

std::mutex kcenon::monitoring::circuit_breaker_registry::mutex_
mutableprivate

◆ registry_

std::unordered_map<std::string, std::shared_ptr<circuit_breaker> > kcenon::monitoring::circuit_breaker_registry::registry_
private

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