![]() |
Kurlyk
|
Singleton worker that manages asynchronous WebSocket operations. More...
#include <SimpleWebSocketWorker.hpp>
Public Member Functions | |
| std::shared_ptr< SimpleWeb::io_context > | get_io_context () |
| Provides access to the I/O context for WebSocket operations. | |
| void | notify () |
| Notifies the worker to check for pending tasks. | |
| void | start () |
| Starts the worker thread if it is not already running. | |
| void | stop () |
| Stops the worker thread and waits for it to finish. | |
Static Public Member Functions | |
| static SimpleWebSocketWorker & | get_instance () |
| Get the singleton instance of SimpleWebSocketWorker. | |
Private Types | |
| using | work_guard_t = boost::asio::executor_work_guard<boost::asio::io_context::executor_type> |
| using | io_context_t = std::shared_ptr<SimpleWeb::io_context> |
Private Member Functions | |
| SimpleWebSocketWorker () | |
| Private constructor to prevent instantiation. | |
| ~SimpleWebSocketWorker () | |
| Private destructor. | |
| SimpleWebSocketWorker (const SimpleWebSocketWorker &)=delete | |
| SimpleWebSocketWorker & | operator= (const SimpleWebSocketWorker &)=delete |
Private Attributes | |
| io_context_t | m_io_context |
| work_guard_t | m_work_guard |
| std::mutex | m_is_worker_started_mutex |
| Mutex for controlling worker start. | |
| bool | m_is_worker_started = false |
| Flag indicating if worker is started. | |
| std::mutex | m_notify_mutex |
| Mutex for notifying worker. | |
| std::condition_variable | m_notify_condition |
| Condition variable for notifying worker. | |
| bool | m_notify = false |
| Flag indicating if notification is pending. | |
| std::shared_future< void > | m_future |
| std::atomic< bool > | m_shutdown = ATOMIC_VAR_INIT(false) |
Singleton worker that manages asynchronous WebSocket operations.
Definition at line 12 of file SimpleWebSocketWorker.hpp.
|
private |
Definition at line 86 of file SimpleWebSocketWorker.hpp.
|
private |
Definition at line 83 of file SimpleWebSocketWorker.hpp.
|
inlineprivate |
Private constructor to prevent instantiation.
Definition at line 101 of file SimpleWebSocketWorker.hpp.
|
inlineprivate |
Private destructor.
Definition at line 111 of file SimpleWebSocketWorker.hpp.
|
privatedelete |
|
inlinestatic |
Get the singleton instance of SimpleWebSocketWorker.
Definition at line 17 of file SimpleWebSocketWorker.hpp.
|
inline |
Provides access to the I/O context for WebSocket operations.
Definition at line 24 of file SimpleWebSocketWorker.hpp.
|
inline |
Notifies the worker to check for pending tasks.
Definition at line 29 of file SimpleWebSocketWorker.hpp.
|
privatedelete |
|
inline |
Starts the worker thread if it is not already running.
Definition at line 36 of file SimpleWebSocketWorker.hpp.
|
inline |
Stops the worker thread and waits for it to finish.
Definition at line 67 of file SimpleWebSocketWorker.hpp.
|
private |
Definition at line 97 of file SimpleWebSocketWorker.hpp.
|
private |
Definition at line 87 of file SimpleWebSocketWorker.hpp.
|
private |
Flag indicating if worker is started.
Definition at line 91 of file SimpleWebSocketWorker.hpp.
|
private |
Mutex for controlling worker start.
Definition at line 90 of file SimpleWebSocketWorker.hpp.
|
private |
Flag indicating if notification is pending.
Definition at line 95 of file SimpleWebSocketWorker.hpp.
|
private |
Condition variable for notifying worker.
Definition at line 94 of file SimpleWebSocketWorker.hpp.
|
private |
Mutex for notifying worker.
Definition at line 93 of file SimpleWebSocketWorker.hpp.
|
private |
Definition at line 98 of file SimpleWebSocketWorker.hpp.
|
private |
Definition at line 88 of file SimpleWebSocketWorker.hpp.