Kurlyk
Toggle main menu visibility
Loading...
Searching...
No Matches
AutoInitializer.hpp
Go to the documentation of this file.
1
#pragma once
2
#ifndef _KURLYK_STARTUP_AUTO_INITIALIZER_HPP_INCLUDED
3
#define _KURLYK_STARTUP_AUTO_INITIALIZER_HPP_INCLUDED
4
7
8
namespace
kurlyk::startup
{
9
16
class
AutoInitializer
{
17
public
:
19
AutoInitializer
() {
20
auto
&instance =
core::NetworkWorker::get_instance
();
21
# if KURLYK_HTTP_SUPPORT
22
m_http = &
HttpRequestManager::get_instance
();
23
instance.register_manager(m_http);
24
# endif
25
# if KURLYK_WEBSOCKET_SUPPORT
26
m_ws = &
WebSocketManager::get_instance
();
27
instance.register_manager(m_ws);
28
# endif
29
instance.start(
KURLYK_AUTO_INIT_USE_ASYNC
);
30
}
31
33
~AutoInitializer
() {
34
core::NetworkWorker::get_instance
().
stop
();
35
}
36
37
private
:
38
# if KURLYK_HTTP_SUPPORT
39
HttpRequestManager
* m_http =
nullptr
;
40
# endif
41
# if KURLYK_WEBSOCKET_SUPPORT
42
WebSocketManager
* m_ws =
nullptr
;
43
# endif
44
};
45
48
inline
AutoInitializer
_kurlyk_auto_initializer
;
49
50
}
// namespace kurlyk::startup
51
52
#endif
// _KURLYK_STARTUP_AUTO_INITIALIZER_HPP_INCLUDED
kurlyk::HttpRequestManager
Manages and processes HTTP requests using a singleton pattern.
Definition
HttpRequestManager.hpp:23
kurlyk::HttpRequestManager::get_instance
static HttpRequestManager & get_instance()
Get the singleton instance of HttpRequestManager.
Definition
HttpRequestManager.hpp:28
kurlyk::WebSocketManager
Manages backend-specific WebSocket client instances and coordinates their lifecycle.
Definition
WebSocketManager.hpp:35
kurlyk::WebSocketManager::get_instance
static WebSocketManager & get_instance()
Get the singleton instance of WebSocketManager.
Definition
WebSocketManager.hpp:40
kurlyk::core::NetworkWorker::stop
void stop()
Stops the worker thread, ensuring all tasks are completed.
Definition
NetworkWorker.hpp:190
kurlyk::core::NetworkWorker::get_instance
static NetworkWorker & get_instance()
Get the singleton instance of NetworkWorker.
Definition
NetworkWorker.hpp:26
kurlyk::startup::AutoInitializer
Automatically registers and manages network task managers.
Definition
AutoInitializer.hpp:16
kurlyk::startup::AutoInitializer::AutoInitializer
AutoInitializer()
Constructs and registers all available managers.
Definition
AutoInitializer.hpp:19
kurlyk::startup::AutoInitializer::~AutoInitializer
~AutoInitializer()
Stops the NetworkWorker before program termination.
Definition
AutoInitializer.hpp:33
KURLYK_AUTO_INIT_USE_ASYNC
#define KURLYK_AUTO_INIT_USE_ASYNC
Determines whether the NetworkWorker runs in a background thread during automatic initialization.
Definition
kurlyk.hpp:20
kurlyk::startup
Definition
AutoInitializer.hpp:8
kurlyk::startup::_kurlyk_auto_initializer
AutoInitializer _kurlyk_auto_initializer
Convenience auto-init helper.
Definition
AutoInitializer.hpp:48
include
kurlyk
startup
AutoInitializer.hpp
Generated by
1.17.0