Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
kcenon::logger::core::signal_manager_context Class Reference

Manages signal manager instance with thread-safe access. More...

#include <signal_manager_context.h>

Collaboration diagram for kcenon::logger::core::signal_manager_context:
Collaboration graph

Public Member Functions

 signal_manager_context ()=default
 Default constructor - creates null signal manager.
 
 signal_manager_context (std::shared_ptr< security::signal_manager_interface > signal_mgr)
 Constructor with signal manager.
 
auto get_signal_manager () const -> std::shared_ptr< security::signal_manager_interface >
 Get signal manager instance.
 
void set_signal_manager (std::shared_ptr< security::signal_manager_interface > signal_mgr)
 Set signal manager instance.
 
bool is_initialized () const
 Check if signal manager is initialized.
 

Private Attributes

std::shared_ptr< security::signal_manager_interfacesignal_manager_
 Signal manager instance.
 
std::mutex mutex_
 Mutex for thread-safe access.
 

Detailed Description

Manages signal manager instance with thread-safe access.

This class handles a single responsibility: managing the signal manager instance. It provides thread-safe getter/setter and initialization checking.

Thread Safety: All methods are thread-safe.

Definition at line 33 of file signal_manager_context.h.

Constructor & Destructor Documentation

◆ signal_manager_context() [1/2]

kcenon::logger::core::signal_manager_context::signal_manager_context ( )
default

Default constructor - creates null signal manager.

Use set_signal_manager() to initialize with actual instance.

◆ signal_manager_context() [2/2]

kcenon::logger::core::signal_manager_context::signal_manager_context ( std::shared_ptr< security::signal_manager_interface > signal_mgr)
explicit

Constructor with signal manager.

Parameters
signal_mgrInitial signal manager instance

Definition at line 9 of file signal_manager_context.cpp.

12 : signal_manager_(std::move(signal_mgr))
13{
14}
std::shared_ptr< security::signal_manager_interface > signal_manager_
Signal manager instance.

Member Function Documentation

◆ get_signal_manager()

auto kcenon::logger::core::signal_manager_context::get_signal_manager ( ) const -> std::shared_ptr<security::signal_manager_interface>

Get signal manager instance.

Returns
Shared pointer to signal manager interface

Definition at line 16 of file signal_manager_context.cpp.

18{
19 std::lock_guard lock(mutex_);
20 return signal_manager_;
21}
std::mutex mutex_
Mutex for thread-safe access.

References mutex_, and signal_manager_.

◆ is_initialized()

bool kcenon::logger::core::signal_manager_context::is_initialized ( ) const

Check if signal manager is initialized.

Returns
true if signal manager is not null

Definition at line 31 of file signal_manager_context.cpp.

32{
33 std::lock_guard lock(mutex_);
34 return signal_manager_ != nullptr;
35}

References mutex_, and signal_manager_.

◆ set_signal_manager()

void kcenon::logger::core::signal_manager_context::set_signal_manager ( std::shared_ptr< security::signal_manager_interface > signal_mgr)

Set signal manager instance.

Parameters
signal_mgrNew signal manager implementation

Definition at line 23 of file signal_manager_context.cpp.

26{
27 std::lock_guard lock(mutex_);
28 signal_manager_ = std::move(signal_mgr);
29}

References mutex_, and signal_manager_.

Member Data Documentation

◆ mutex_

std::mutex kcenon::logger::core::signal_manager_context::mutex_
mutableprivate

Mutex for thread-safe access.

Definition at line 73 of file signal_manager_context.h.

Referenced by get_signal_manager(), is_initialized(), and set_signal_manager().

◆ signal_manager_

std::shared_ptr<security::signal_manager_interface> kcenon::logger::core::signal_manager_context::signal_manager_
private

Signal manager instance.

Definition at line 70 of file signal_manager_context.h.

Referenced by get_signal_manager(), is_initialized(), and set_signal_manager().


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