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

Facade coordinating logger system components. More...

#include <logger_context.h>

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

Public Member Functions

 logger_context ()
 Default constructor - creates default implementations.
 
 logger_context (std::shared_ptr< security::signal_manager_interface > signal_mgr)
 
 ~logger_context ()
 Destructor - ensures clean shutdown.
 
 logger_context (const logger_context &)=delete
 
logger_contextoperator= (const logger_context &)=delete
 
 logger_context (logger_context &&)=delete
 
logger_contextoperator= (logger_context &&)=delete
 
auto signal_context () -> signal_manager_context &
 Access signal manager context component.
 
auto signal_context () const -> const signal_manager_context &
 Access signal manager context component (const)
 
auto registry () -> logger_registry &
 Access logger registry component.
 
auto registry () const -> const logger_registry &
 Access logger registry component (const)
 
std::shared_ptr< security::signal_manager_interfaceget_signal_manager () const
 Get signal manager instance.
 
void set_signal_manager (std::shared_ptr< security::signal_manager_interface > signal_mgr)
 Set signal manager (for dynamic reconfiguration)
 
bool is_initialized () const
 Check if context is initialized.
 
void register_logger (security::critical_logger_interface *log)
 Register a logger.
 
void unregister_logger (security::critical_logger_interface *log)
 Unregister a logger.
 

Private Attributes

signal_manager_context signal_context_
 Signal manager lifecycle management.
 
logger_registry registry_
 Logger registration tracking.
 

Detailed Description

Facade coordinating logger system components.

This class acts as a facade pattern, coordinating specialized components following the Single Responsibility Principle:

Benefits:

  • Clear separation of concerns
  • Easier testing of individual components
  • Reduced mutex contention (each component has its own lock)
  • Maintains backward-compatible API

Thread Safety: All methods are thread-safe. Each component provides its own thread safety guarantees.

Definition at line 76 of file logger_context.h.

Constructor & Destructor Documentation

◆ logger_context() [1/4]

kcenon::logger::core::logger_context::logger_context ( )

Default constructor - creates default implementations.

Creates a context with default implementations:

Definition at line 10 of file logger_context.cpp.

11 : signal_context_(std::make_shared<security::signal_manager>())
12 , registry_()
13{
14}
logger_registry registry_
Logger registration tracking.
signal_manager_context signal_context_
Signal manager lifecycle management.

◆ logger_context() [2/4]

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

Definition at line 16 of file logger_context.cpp.

19 : signal_context_(std::move(signal_mgr))
20 , registry_()
21{
22}

◆ ~logger_context()

kcenon::logger::core::logger_context::~logger_context ( )
default

Destructor - ensures clean shutdown.

◆ logger_context() [3/4]

kcenon::logger::core::logger_context::logger_context ( const logger_context & )
delete

◆ logger_context() [4/4]

kcenon::logger::core::logger_context::logger_context ( logger_context && )
delete

Member Function Documentation

◆ get_signal_manager()

std::shared_ptr< security::signal_manager_interface > kcenon::logger::core::logger_context::get_signal_manager ( ) const
inline

Get signal manager instance.

Returns
Shared pointer to signal manager interface

Convenience method that delegates to signal_context(). Maintained for backward compatibility.

Definition at line 169 of file logger_context.h.

169 {
171 }
auto get_signal_manager() const -> std::shared_ptr< security::signal_manager_interface >
Get signal manager instance.

◆ is_initialized()

bool kcenon::logger::core::logger_context::is_initialized ( ) const
inline

Check if context is initialized.

Returns
true if signal manager is initialized

Convenience method that delegates to signal_context(). Maintained for backward compatibility.

Definition at line 191 of file logger_context.h.

191 {
193 }
bool is_initialized() const
Check if signal manager is initialized.

◆ operator=() [1/2]

logger_context & kcenon::logger::core::logger_context::operator= ( const logger_context & )
delete

◆ operator=() [2/2]

logger_context & kcenon::logger::core::logger_context::operator= ( logger_context && )
delete

◆ register_logger()

void kcenon::logger::core::logger_context::register_logger ( security::critical_logger_interface * log)
inline

Register a logger.

Parameters
logLogger implementing critical_logger_interface

Registers the logger in both:

  1. Internal registry (for tracking)
  2. Signal manager (for emergency flush)

Convenience method combining registry and signal manager operations.

Since
2.0.0

Definition at line 207 of file logger_context.h.

207 {
208 // Register in local registry
210
211 // Register with signal manager
212 auto signal_mgr = signal_context_.get_signal_manager();
213 if (signal_mgr) {
214 signal_mgr->register_logger(log);
215 }
216 }
void register_logger(security::critical_logger_interface *log)
Register a logger for tracking.

◆ registry() [1/2]

auto kcenon::logger::core::logger_context::registry ( ) -> logger_registry&
inline

Access logger registry component.

Returns
Reference to logger_registry

Provides direct access to logger registration component. Use this for querying registered loggers.

Definition at line 146 of file logger_context.h.

146 {
147 return registry_;
148 }

◆ registry() [2/2]

auto kcenon::logger::core::logger_context::registry ( ) const -> const logger_registry&
inline

Access logger registry component (const)

Returns
Const reference to logger_registry

Definition at line 154 of file logger_context.h.

154 {
155 return registry_;
156 }

◆ set_signal_manager()

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

Set signal manager (for dynamic reconfiguration)

Parameters
signal_mgrNew signal manager implementation

Convenience method that delegates to signal_context(). Maintained for backward compatibility.

Definition at line 180 of file logger_context.h.

180 {
181 signal_context_.set_signal_manager(std::move(signal_mgr));
182 }
void set_signal_manager(std::shared_ptr< security::signal_manager_interface > signal_mgr)
Set signal manager instance.

◆ signal_context() [1/2]

auto kcenon::logger::core::logger_context::signal_context ( ) -> signal_manager_context&
inline

Access signal manager context component.

Returns
Reference to signal_manager_context

Provides direct access to signal manager management component. Use this for advanced scenarios requiring fine-grained control.

Definition at line 127 of file logger_context.h.

127 {
128 return signal_context_;
129 }

◆ signal_context() [2/2]

auto kcenon::logger::core::logger_context::signal_context ( ) const -> const signal_manager_context&
inline

Access signal manager context component (const)

Returns
Const reference to signal_manager_context

Definition at line 135 of file logger_context.h.

135 {
136 return signal_context_;
137 }

◆ unregister_logger()

void kcenon::logger::core::logger_context::unregister_logger ( security::critical_logger_interface * log)
inline

Unregister a logger.

Parameters
logLogger to unregister

Unregisters the logger from both:

  1. Internal registry
  2. Signal manager

Convenience method combining registry and signal manager operations.

Since
2.0.0

Definition at line 230 of file logger_context.h.

230 {
231 // Unregister from local registry
233
234 // Unregister from signal manager
235 auto signal_mgr = signal_context_.get_signal_manager();
236 if (signal_mgr) {
237 signal_mgr->unregister_logger(log);
238 }
239 }
void unregister_logger(security::critical_logger_interface *log)
Unregister a logger.

Member Data Documentation

◆ registry_

logger_registry kcenon::logger::core::logger_context::registry_
private

Logger registration tracking.

Definition at line 246 of file logger_context.h.

◆ signal_context_

signal_manager_context kcenon::logger::core::logger_context::signal_context_
private

Signal manager lifecycle management.

Definition at line 243 of file logger_context.h.


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