|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
CRTP base class providing unified start/stop lifecycle management. More...
#include <startable_base.h>


Public Member Functions | |
| auto | is_running () const noexcept -> bool |
| Checks if the component is currently running. | |
| auto | wait_for_stop () -> void |
| Blocks until stop is called. | |
Protected Member Functions | |
| startable_base ()=default | |
| Default constructor. | |
| ~startable_base ()=default | |
| Destructor. | |
| startable_base (const startable_base &)=delete | |
| startable_base & | operator= (const startable_base &)=delete |
| startable_base (startable_base &&) noexcept=default | |
| startable_base & | operator= (startable_base &&) noexcept=default |
| template<typename... Args> | |
| auto | do_start (Args &&... args) -> VoidResult |
| Unified start operation with lifecycle management. | |
| auto | do_stop () -> VoidResult |
| Unified stop operation with lifecycle management. | |
| auto | is_stop_initiated () const noexcept -> bool |
| Checks if stop has been initiated. | |
| auto | get_lifecycle () -> lifecycle_manager & |
| Gets the lifecycle manager for derived class access. | |
| auto | get_lifecycle () const -> const lifecycle_manager & |
| Gets the lifecycle manager (const version). | |
Private Member Functions | |
| auto | reset_connection_state () -> void |
| Resets connection state flags for a fresh start. | |
| auto | derived () -> Derived & |
| CRTP accessor for derived class. | |
| auto | derived () const -> const Derived & |
| CRTP accessor for derived class (const version). | |
Private Attributes | |
| lifecycle_manager | lifecycle_ |
| std::atomic< bool > | stop_initiated_ {false} |
CRTP base class providing unified start/stop lifecycle management.
This template extracts the common start/stop lifecycle pattern from client and server implementations. It handles:
| Derived | The derived class using CRTP pattern. |
The derived class must implement:
component_name() - Returns component identifier for error messagesdo_start_impl(args...) - Protocol-specific start implementationdo_stop_impl() - Protocol-specific stop implementationon_stopped() - Called after successful stop (optional callbacks)All lifecycle methods are thread-safe using atomic operations.
Definition at line 89 of file startable_base.h.
|
protecteddefault |
Default constructor.
|
protecteddefault |
Destructor.
|
protecteddelete |
|
protecteddefaultnoexcept |
|
inlinenodiscardprivate |
CRTP accessor for derived class.
Definition at line 242 of file startable_base.h.
Referenced by kcenon::network::utils::startable_base< Derived >::do_start(), and kcenon::network::utils::startable_base< Derived >::do_stop().

|
inlinenodiscardprivate |
CRTP accessor for derived class (const version).
Definition at line 251 of file startable_base.h.
|
inlinenodiscardprotected |
Unified start operation with lifecycle management.
| Args | The argument types for the start operation. |
| args | The arguments to pass to do_start_impl. |
Definition at line 144 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::derived(), kcenon::network::utils::startable_base< Derived >::lifecycle_, kcenon::network::utils::lifecycle_manager::mark_stopped(), kcenon::network::utils::startable_base< Derived >::reset_connection_state(), and kcenon::network::utils::lifecycle_manager::try_start().

|
inlinenodiscardprotected |
Unified stop operation with lifecycle management.
Definition at line 178 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::derived(), kcenon::network::utils::lifecycle_manager::is_running(), kcenon::network::utils::startable_base< Derived >::lifecycle_, kcenon::network::utils::lifecycle_manager::mark_stopped(), kcenon::network::ok(), and kcenon::network::utils::startable_base< Derived >::stop_initiated_.

|
inlinenodiscardprotected |
Gets the lifecycle manager for derived class access.
Definition at line 215 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::lifecycle_.
|
inlinenodiscardprotected |
Gets the lifecycle manager (const version).
Definition at line 224 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::lifecycle_.
|
inlinenodiscardnoexcept |
Checks if the component is currently running.
Definition at line 96 of file startable_base.h.
References kcenon::network::utils::lifecycle_manager::is_running(), and kcenon::network::utils::startable_base< Derived >::lifecycle_.
Referenced by kcenon::network::core::messaging_client::is_running().


|
inlinenodiscardprotectednoexcept |
Checks if stop has been initiated.
Definition at line 206 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::stop_initiated_.
|
protecteddelete |
|
protecteddefaultnoexcept |
|
inlineprivate |
Resets connection state flags for a fresh start.
Definition at line 233 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::stop_initiated_.
Referenced by kcenon::network::utils::startable_base< Derived >::do_start().

|
inline |
Blocks until stop is called.
Definition at line 104 of file startable_base.h.
References kcenon::network::utils::startable_base< Derived >::lifecycle_, and kcenon::network::utils::lifecycle_manager::wait_for_stop().
Referenced by kcenon::network::core::messaging_client::wait_for_stop().


|
private |
Lifecycle state manager.
Definition at line 256 of file startable_base.h.
Referenced by kcenon::network::utils::startable_base< Derived >::do_start(), kcenon::network::utils::startable_base< Derived >::do_stop(), kcenon::network::utils::startable_base< Derived >::get_lifecycle(), kcenon::network::utils::startable_base< Derived >::get_lifecycle(), kcenon::network::utils::startable_base< Derived >::is_running(), and kcenon::network::utils::startable_base< Derived >::wait_for_stop().
|
private |
Stop in progress flag.
Definition at line 257 of file startable_base.h.
Referenced by kcenon::network::utils::startable_base< Derived >::do_stop(), kcenon::network::utils::startable_base< Derived >::is_stop_initiated(), and kcenon::network::utils::startable_base< Derived >::reset_connection_state().