Manages and processes HTTP requests using a singleton pattern.
More...
#include <HttpRequestManager.hpp>
|
const bool | add_request (std::unique_ptr< HttpRequest > request_ptr, HttpResponseCallback callback) |
| Adds a new HTTP request to the manager.
|
|
const long | create_rate_limit (long requests_per_period, long period_ms) |
| Creates a rate limit with specified parameters.
|
|
bool | remove_limit (long limit_id) |
| Removes an existing rate limit with the specified identifier.
|
|
uint64_t | generate_request_id () |
| Generates a new unique request ID.
|
|
void | cancel_request_by_id (uint64_t request_id, std::function< void()> callback) |
| Cancels a request by its unique identifier.
|
|
void | process () override |
| Processes all requests in the manager.
|
|
void | shutdown () override |
| Shuts down the request manager, clearing all active and pending requests.
|
|
const bool | is_loaded () const override |
| Checks if there are active, pending, or failed requests.
|
|
virtual | ~INetworkTaskManager ()=default |
|
Manages and processes HTTP requests using a singleton pattern.
Definition at line 18 of file HttpRequestManager.hpp.
◆ callback_list_t
◆ HttpRequestManager() [1/2]
kurlyk::HttpRequestManager::HttpRequestManager |
( |
| ) |
|
|
inlineprivate |
◆ HttpRequestManager() [2/2]
Deleted copy constructor to enforce the singleton pattern.
◆ add_request()
Adds a new HTTP request to the manager.
- Parameters
-
request_ptr | Unique pointer to the HTTP request object containing request details. |
callback | Callback function invoked when the request completes. |
- Returns
- True if the request was successfully added, false if the manager is shutting down.
Definition at line 32 of file HttpRequestManager.hpp.
◆ cancel_request_by_id()
void kurlyk::HttpRequestManager::cancel_request_by_id |
( |
uint64_t | request_id, |
|
|
std::function< void()> | callback ) |
|
inline |
Cancels a request by its unique identifier.
- Parameters
-
request_id | The unique identifier of the request to cancel. |
callback | An optional callback function to execute after cancellation. |
Definition at line 70 of file HttpRequestManager.hpp.
◆ cleanup_pending_requests()
void kurlyk::HttpRequestManager::cleanup_pending_requests |
( |
| ) |
|
|
inlineprivate |
Cleans up pending requests, marking each as failed and invoking its callback.
Definition at line 259 of file HttpRequestManager.hpp.
◆ create_rate_limit()
const long kurlyk::HttpRequestManager::create_rate_limit |
( |
long | requests_per_period, |
|
|
long | period_ms ) |
|
inline |
Creates a rate limit with specified parameters.
- Parameters
-
requests_per_period | Maximum number of requests allowed in the specified period. |
period_ms | Time period in milliseconds during which the rate limit applies. |
- Returns
- A unique identifier for the created rate limit.
Definition at line 50 of file HttpRequestManager.hpp.
◆ generate_request_id()
uint64_t kurlyk::HttpRequestManager::generate_request_id |
( |
| ) |
|
|
inline |
Generates a new unique request ID.
- Returns
- A new unique request ID.
Definition at line 63 of file HttpRequestManager.hpp.
◆ get_instance()
◆ is_loaded()
const bool kurlyk::HttpRequestManager::is_loaded |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ operator=()
Deleted copy assignment operator to enforce the singleton pattern.
◆ process()
void kurlyk::HttpRequestManager::process |
( |
| ) |
|
|
inlineoverridevirtual |
◆ process_active_requests()
void kurlyk::HttpRequestManager::process_active_requests |
( |
| ) |
|
|
inlineprivate |
Processes active requests, moving failed ones to the failed requests list for retrying.
Definition at line 179 of file HttpRequestManager.hpp.
◆ process_cancel_requests()
void kurlyk::HttpRequestManager::process_cancel_requests |
( |
| ) |
|
|
inlineprivate |
◆ process_pending_requests()
void kurlyk::HttpRequestManager::process_pending_requests |
( |
| ) |
|
|
inlineprivate |
Processes all pending requests, moving valid requests to active batches or marking them as failed.
Definition at line 121 of file HttpRequestManager.hpp.
◆ process_retry_failed_requests()
void kurlyk::HttpRequestManager::process_retry_failed_requests |
( |
| ) |
|
|
inlineprivate |
◆ remove_limit()
bool kurlyk::HttpRequestManager::remove_limit |
( |
long | limit_id | ) |
|
|
inline |
Removes an existing rate limit with the specified identifier.
- Parameters
-
limit_id | The unique identifier of the rate limit to be removed. |
- Returns
- True if the rate limit was successfully removed, or false if the rate limit ID was not found.
Definition at line 57 of file HttpRequestManager.hpp.
◆ shutdown()
void kurlyk::HttpRequestManager::shutdown |
( |
| ) |
|
|
inlineoverridevirtual |
◆ ~HttpRequestManager()
virtual kurlyk::HttpRequestManager::~HttpRequestManager |
( |
| ) |
|
|
inlineprivatevirtual |
◆ m_active_request_batches
◆ m_failed_requests
std::list<std::unique_ptr<HttpRequestContext> > kurlyk::HttpRequestManager::m_failed_requests |
|
private |
◆ m_mutex
std::mutex kurlyk::HttpRequestManager::m_mutex |
|
mutableprivate |
Mutex to protect access to the pending requests list and requests-to-cancel map.
Definition at line 110 of file HttpRequestManager.hpp.
◆ m_pending_requests
std::list<std::unique_ptr<HttpRequestContext> > kurlyk::HttpRequestManager::m_pending_requests |
|
private |
◆ m_rate_limiter
◆ m_request_id_counter
std::atomic<uint64_t> kurlyk::HttpRequestManager::m_request_id_counter = ATOMIC_VAR_INIT(1) |
|
private |
◆ m_requests_to_cancel
std::unordered_map<uint64_t, callback_list_t> kurlyk::HttpRequestManager::m_requests_to_cancel |
|
private |
◆ m_shutdown
std::atomic<bool> kurlyk::HttpRequestManager::m_shutdown = ATOMIC_VAR_INIT(false) |
|
private |
The documentation for this class was generated from the following file: