Kurlyk
Loading...
Searching...
No Matches
kurlyk::WebSocketManager Class Referencefinal

Manages backend-specific WebSocket client instances and coordinates their lifecycle. More...

#include <WebSocketManager.hpp>

Inheritance diagram for kurlyk::WebSocketManager:
kurlyk::core::INetworkTaskManager

Public Member Functions

void process () override
 Processes all active backend-specific WebSocket clients managed by this instance.
void shutdown () override
 Shuts down all active backend-specific WebSocket clients managed by this instance.
const bool is_loaded () const override
 Checks if any managed backend-specific WebSocket client is currently running.
selected_backend_client_ptr create_client ()
 Creates and returns a new backend-specific WebSocket client selected by compilation flags.
Public Member Functions inherited from kurlyk::core::INetworkTaskManager
virtual ~INetworkTaskManager ()=default

Static Public Member Functions

static WebSocketManagerget_instance ()
 Get the singleton instance of WebSocketManager.

Private Member Functions

 WebSocketManager ()=default
 Private constructor to enforce singleton pattern.
virtual ~WebSocketManager ()=default
 Private destructor to enforce singleton pattern.
 WebSocketManager (const WebSocketManager &)=delete
 Deleted copy constructor to enforce the singleton pattern.
WebSocketManageroperator= (const WebSocketManager &)=delete
 Deleted copy assignment operator to enforce the singleton pattern.

Private Attributes

std::mutex m_client_list_mutex
 Mutex for synchronizing access to the client list.
std::list< selected_backend_client_weak_ptrm_client_list
 List of managed backend-specific WebSocket clients.

Detailed Description

Manages backend-specific WebSocket client instances and coordinates their lifecycle.

Definition at line 35 of file WebSocketManager.hpp.

Constructor & Destructor Documentation

◆ WebSocketManager() [1/2]

kurlyk::WebSocketManager::WebSocketManager ( )
privatedefault

Private constructor to enforce singleton pattern.

◆ WebSocketManager() [2/2]

kurlyk::WebSocketManager::WebSocketManager ( const WebSocketManager & )
privatedelete

Deleted copy constructor to enforce the singleton pattern.

Member Function Documentation

◆ create_client()

selected_backend_client_ptr kurlyk::WebSocketManager::create_client ( )
inline

Creates and returns a new backend-specific WebSocket client selected by compilation flags.

Returns
A shared pointer to the created backend-specific WebSocket client instance.

Definition at line 88 of file WebSocketManager.hpp.

◆ get_instance()

WebSocketManager & kurlyk::WebSocketManager::get_instance ( )
inlinestatic

Get the singleton instance of WebSocketManager.

Returns
Reference to the singleton instance of WebSocketManager.

Definition at line 40 of file WebSocketManager.hpp.

◆ is_loaded()

const bool kurlyk::WebSocketManager::is_loaded ( ) const
inlineoverridevirtual

Checks if any managed backend-specific WebSocket client is currently running.

Returns
True if at least one WebSocket client is in a running state, otherwise false.

Implements kurlyk::core::INetworkTaskManager.

Definition at line 76 of file WebSocketManager.hpp.

◆ operator=()

WebSocketManager & kurlyk::WebSocketManager::operator= ( const WebSocketManager & )
privatedelete

Deleted copy assignment operator to enforce the singleton pattern.

◆ process()

void kurlyk::WebSocketManager::process ( )
inlineoverridevirtual

Processes all active backend-specific WebSocket clients managed by this instance.

Iterates over each WebSocket client and calls its process method to handle pending operations. Automatically removes clients that are no longer active from the internal client list.

Implements kurlyk::core::INetworkTaskManager.

Definition at line 49 of file WebSocketManager.hpp.

◆ shutdown()

void kurlyk::WebSocketManager::shutdown ( )
inlineoverridevirtual

Shuts down all active backend-specific WebSocket clients managed by this instance.

Iterates over each WebSocket client and calls its shutdown method to stop and clear its state.

Implements kurlyk::core::INetworkTaskManager.

Definition at line 65 of file WebSocketManager.hpp.

◆ ~WebSocketManager()

virtual kurlyk::WebSocketManager::~WebSocketManager ( )
privatevirtualdefault

Private destructor to enforce singleton pattern.

Member Data Documentation

◆ m_client_list

std::list<selected_backend_client_weak_ptr> kurlyk::WebSocketManager::m_client_list
private

List of managed backend-specific WebSocket clients.

Definition at line 116 of file WebSocketManager.hpp.

◆ m_client_list_mutex

std::mutex kurlyk::WebSocketManager::m_client_list_mutex
mutableprivate

Mutex for synchronizing access to the client list.

Definition at line 115 of file WebSocketManager.hpp.


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