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

Manages WebSocket client instances, providing centralized control for processing, resetting, and lifecycle management. More...

#include <WebSocketManager.hpp>

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

Public Member Functions

void process () override
 Processes all active WebSocket clients managed by this instance.
 
void shutdown () override
 Shuts down all active WebSocket clients managed by this instance.
 
const bool is_loaded () const override
 Checks if any WebSocket client is currently running.
 
std::shared_ptr< IWebSocketClientcreate_client ()
 Creates and returns a new WebSocket client instance based on the platform defined 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< std::weak_ptr< IWebSocketClient > > m_client_list
 List of WebSocket clients managed by the WebSocketManager.
 

Detailed Description

Manages WebSocket client instances, providing centralized control for processing, resetting, and lifecycle management.

Definition at line 18 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()

std::shared_ptr< IWebSocketClient > kurlyk::WebSocketManager::create_client ( )
inline

Creates and returns a new WebSocket client instance based on the platform defined by compilation flags.

Returns
A shared pointer to the created IWebSocketClient instance.

Definition at line 71 of file WebSocketManager.hpp.

◆ get_instance()

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

Get the singleton instance of WebSocketManager.

Returns
Reference to the singleton instance of WebSocketManager.

Definition at line 23 of file WebSocketManager.hpp.

◆ is_loaded()

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

Checks if any 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 59 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 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 32 of file WebSocketManager.hpp.

◆ shutdown()

void kurlyk::WebSocketManager::shutdown ( )
inlineoverridevirtual

Shuts down all active 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 48 of file WebSocketManager.hpp.

◆ ~WebSocketManager()

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

Private destructor to enforce singleton pattern.

Member Data Documentation

◆ m_client_list

std::list<std::weak_ptr<IWebSocketClient> > kurlyk::WebSocketManager::m_client_list
private

List of WebSocket clients managed by the WebSocketManager.

Definition at line 99 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 98 of file WebSocketManager.hpp.


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