Kurlyk
Toggle main menu visibility
Loading...
Searching...
No Matches
AutoInitializer.hpp
Go to the documentation of this file.
1
#pragma once
2
#ifndef KURLYK_HEADER_KURLYK_STARTUP_AUTO_INITIALIZER_HPP_INCLUDED
3
#define KURLYK_HEADER_KURLYK_STARTUP_AUTO_INITIALIZER_HPP_INCLUDED
4
7
8
namespace
kurlyk
{
9
namespace
startup
{
10
17
class
AutoInitializer
{
18
public
:
20
AutoInitializer
() {
21
auto
&instance =
core::NetworkWorker::get_instance
();
22
# if KURLYK_HTTP_SUPPORT
23
m_http = &
HttpRequestManager::get_instance
();
24
instance.register_manager(m_http);
25
# endif
26
# if KURLYK_WEBSOCKET_SUPPORT
27
m_ws = &
WebSocketManager::get_instance
();
28
instance.register_manager(m_ws);
29
# endif
30
instance.start(
KURLYK_AUTO_INIT_USE_ASYNC
);
31
}
32
34
~AutoInitializer
() {
35
core::NetworkWorker::get_instance
().
stop
();
36
}
37
38
private
:
39
# if KURLYK_HTTP_SUPPORT
40
HttpRequestManager
* m_http =
nullptr
;
41
# endif
42
# if KURLYK_WEBSOCKET_SUPPORT
43
WebSocketManager
* m_ws =
nullptr
;
44
# endif
45
};
46
48
inline
AutoInitializer
&
get_auto_initializer
() {
49
static
AutoInitializer
instance;
50
return
instance;
51
}
52
55
static
AutoInitializer
&
_kurlyk_auto_initializer
=
get_auto_initializer
();
56
57
}
// namespace startup
58
}
// namespace kurlyk
59
60
#endif
// KURLYK_HEADER_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:191
kurlyk::core::NetworkWorker::get_instance
static NetworkWorker & get_instance()
Get the singleton instance of NetworkWorker.
Definition
NetworkWorker.hpp:27
kurlyk::startup::AutoInitializer
Automatically registers and manages network task managers.
Definition
AutoInitializer.hpp:17
kurlyk::startup::AutoInitializer::AutoInitializer
AutoInitializer()
Constructs and registers all available managers.
Definition
AutoInitializer.hpp:20
kurlyk::startup::AutoInitializer::~AutoInitializer
~AutoInitializer()
Stops the NetworkWorker before program termination.
Definition
AutoInitializer.hpp:34
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:9
kurlyk::startup::get_auto_initializer
AutoInitializer & get_auto_initializer()
Returns the process-wide automatic initializer.
Definition
AutoInitializer.hpp:48
kurlyk::startup::_kurlyk_auto_initializer
static AutoInitializer & _kurlyk_auto_initializer
Convenience auto-init helper.
Definition
AutoInitializer.hpp:55
kurlyk
Primary namespace for the Kurlyk library, encompassing initialization, request management,...
include
kurlyk
startup
AutoInitializer.hpp
Generated by
1.17.0