|
Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
|
Manages registration and unregistration of loggers. More...
#include <logger_registry.h>

Public Member Functions | |
| logger_registry ()=default | |
| Default constructor. | |
| void | register_logger (security::critical_logger_interface *log) |
| Register a logger for tracking. | |
| void | unregister_logger (security::critical_logger_interface *log) |
| Unregister a logger. | |
| auto | get_registered_loggers () const -> std::vector< security::critical_logger_interface * > |
| Get all registered loggers. | |
| bool | empty () const |
| Check if registry is empty. | |
| size_t | size () const |
| Get number of registered loggers. | |
Private Attributes | |
| std::vector< security::critical_logger_interface * > | loggers_ |
| Registered loggers (using vector to preserve registration order) | |
| std::shared_mutex | mutex_ |
| Mutex for thread-safe access (shared for read, exclusive for write) | |
Manages registration and unregistration of loggers.
This class handles a single responsibility: tracking registered loggers. It provides thread-safe registration/unregistration and query operations.
Thread Safety: All methods are thread-safe. Uses shared_mutex for reader-writer lock optimization (multiple readers, single writer).
Definition at line 39 of file logger_registry.h.
|
default |
Default constructor.
| bool kcenon::logger::core::logger_registry::empty | ( | ) | const |
Check if registry is empty.
Definition at line 49 of file logger_registry.cpp.
| auto kcenon::logger::core::logger_registry::get_registered_loggers | ( | ) | const -> std::vector<security::critical_logger_interface*> |
Get all registered loggers.
Returns a snapshot of currently registered loggers. The returned vector is a copy and safe to iterate without holding locks.
Definition at line 42 of file logger_registry.cpp.
| void kcenon::logger::core::logger_registry::register_logger | ( | security::critical_logger_interface * | log | ) |
Register a logger for tracking.
| log | Logger implementing critical_logger_interface |
Adds the logger to the internal registry. If the logger is already registered, this is a no-op.
Definition at line 12 of file logger_registry.cpp.
| size_t kcenon::logger::core::logger_registry::size | ( | ) | const |
| void kcenon::logger::core::logger_registry::unregister_logger | ( | security::critical_logger_interface * | log | ) |
Unregister a logger.
| log | Logger to unregister |
Removes the logger from the internal registry. If the logger is not registered, this is a no-op.
Definition at line 27 of file logger_registry.cpp.
|
private |
Registered loggers (using vector to preserve registration order)
Definition at line 87 of file logger_registry.h.
Referenced by empty(), get_registered_loggers(), register_logger(), size(), and unregister_logger().
|
mutableprivate |
Mutex for thread-safe access (shared for read, exclusive for write)
Definition at line 90 of file logger_registry.h.
Referenced by empty(), get_registered_loggers(), register_logger(), size(), and unregister_logger().