Manages asynchronous HTTP requests, including handling responses, retries, and error processing.
More...
#include <HttpRequestHandler.hpp>
|
| static size_t | write_http_response_body (char *data, size_t size, size_t nmemb, void *userdata) |
| | Processes body data received from server and appends it to response content.
|
| static size_t | parse_http_response_header (char *buffer, size_t size, size_t nitems, void *userdata) |
| | Parses and stores response headers in the Headers container.
|
|
| void | init_curl () |
| | Initializes CURL options for the request, setting headers, method, SSL, timeouts, and other parameters.
|
| size_t | write_response_body (const char *data, size_t total_size) |
| | Stores received body data and emits a streaming chunk when enabled.
|
| void | emit_stream_chunk (const char *data, size_t total_size) |
| | Invokes the response callback with an intermediate body chunk.
|
| void | fill_response_timings () |
| void | set_ssl_options (const HttpRequest &request) |
| | Sets SSL options such as cert, key, and CA file.
|
| void | set_request_options (const HttpRequest &request) |
| | Sets general options such as headers, cookies, and proxy.
|
| void | set_custom_headers (const HttpRequest &request) |
| | Appends custom headers to the request if provided.
|
| void | set_proxy_options (const HttpRequest &request) |
| | Configures proxy options if set in the request.
|
| void | set_cookie_options (const HttpRequest &request) |
| | Sets cookie options if cookies are specified in the request.
|
| void | set_request_body (const HttpRequest &request) |
| | Sets request body content for applicable HTTP methods.
|
| const char * | get_ca_file_path () const |
| | Gets the full path to the CA certificate file.
|
Manages asynchronous HTTP requests, including handling responses, retries, and error processing.
Definition at line 12 of file HttpRequestHandler.hpp.
◆ HttpRequestHandler()
| kurlyk::HttpRequestHandler::HttpRequestHandler |
( |
std::unique_ptr< HttpRequestContext > | context | ) |
|
|
inlineexplicit |
◆ ~HttpRequestHandler()
| kurlyk::HttpRequestHandler::~HttpRequestHandler |
( |
| ) |
|
|
inline |
Destructor for HttpRequestHandler, handling cleanup of CURL and headers.
If the callback has not been called yet, this indicates the request was incomplete, and an error response is passed to the callback.
Definition at line 32 of file HttpRequestHandler.hpp.
◆ cancel()
| void kurlyk::HttpRequestHandler::cancel |
( |
| ) |
|
|
inline |
◆ emit_stream_chunk()
| void kurlyk::HttpRequestHandler::emit_stream_chunk |
( |
const char * | data, |
|
|
size_t | total_size ) |
|
inlineprivate |
◆ fill_response_timings()
| void kurlyk::HttpRequestHandler::fill_response_timings |
( |
| ) |
|
|
inlineprivate |
◆ get_ca_file_path()
| const char * kurlyk::HttpRequestHandler::get_ca_file_path |
( |
| ) |
const |
|
inlineprivate |
◆ get_curl()
| CURL * kurlyk::HttpRequestHandler::get_curl |
( |
| ) |
|
|
inlinenoexcept |
Retrieves the CURL handle associated with this request.
- Returns
- A pointer to the CURL handle used for this request, or nullptr if not initialized.
Definition at line 121 of file HttpRequestHandler.hpp.
◆ get_request_context()
◆ get_request_id()
| uint64_t kurlyk::HttpRequestHandler::get_request_id |
( |
| ) |
|
|
inline |
Retrieves the unique ID of the HTTP request.
- Returns
- The unique ID of the HTTP request if the context exists, or 0 if no context is set.
Definition at line 129 of file HttpRequestHandler.hpp.
◆ handle_curl_message()
| bool kurlyk::HttpRequestHandler::handle_curl_message |
( |
CURLMsg * | message | ) |
|
|
inline |
Processes a CURL message and determines if a callback should be invoked.
Definition at line 66 of file HttpRequestHandler.hpp.
◆ init_curl()
| void kurlyk::HttpRequestHandler::init_curl |
( |
| ) |
|
|
inlineprivate |
Initializes CURL options for the request, setting headers, method, SSL, timeouts, and other parameters.
Definition at line 155 of file HttpRequestHandler.hpp.
◆ parse_http_response_header()
| size_t kurlyk::HttpRequestHandler::parse_http_response_header |
( |
char * | buffer, |
|
|
size_t | size, |
|
|
size_t | nitems, |
|
|
void * | userdata ) |
|
inlinestatic |
◆ set_cookie_options()
| void kurlyk::HttpRequestHandler::set_cookie_options |
( |
const HttpRequest & | request | ) |
|
|
inlineprivate |
◆ set_custom_headers()
| void kurlyk::HttpRequestHandler::set_custom_headers |
( |
const HttpRequest & | request | ) |
|
|
inlineprivate |
◆ set_proxy_options()
| void kurlyk::HttpRequestHandler::set_proxy_options |
( |
const HttpRequest & | request | ) |
|
|
inlineprivate |
◆ set_request_body()
| void kurlyk::HttpRequestHandler::set_request_body |
( |
const HttpRequest & | request | ) |
|
|
inlineprivate |
◆ set_request_options()
| void kurlyk::HttpRequestHandler::set_request_options |
( |
const HttpRequest & | request | ) |
|
|
inlineprivate |
◆ set_ssl_options()
| void kurlyk::HttpRequestHandler::set_ssl_options |
( |
const HttpRequest & | request | ) |
|
|
inlineprivate |
◆ write_http_response_body()
| size_t kurlyk::HttpRequestHandler::write_http_response_body |
( |
char * | data, |
|
|
size_t | size, |
|
|
size_t | nmemb, |
|
|
void * | userdata ) |
|
inlinestatic |
Processes body data received from server and appends it to response content.
Definition at line 46 of file HttpRequestHandler.hpp.
◆ write_response_body()
| size_t kurlyk::HttpRequestHandler::write_response_body |
( |
const char * | data, |
|
|
size_t | total_size ) |
|
inlineprivate |
◆ m_ca_file
| std::string kurlyk::HttpRequestHandler::m_ca_file |
|
mutableprivate |
◆ m_callback_called
| bool kurlyk::HttpRequestHandler::m_callback_called = false |
|
private |
◆ m_curl
| CURL* kurlyk::HttpRequestHandler::m_curl = nullptr |
|
private |
◆ m_error_buffer
| char kurlyk::HttpRequestHandler::m_error_buffer[CURL_ERROR_SIZE] |
|
private |
◆ m_has_stream_chunk
| bool kurlyk::HttpRequestHandler::m_has_stream_chunk = false |
|
private |
◆ m_headers
| struct curl_slist* kurlyk::HttpRequestHandler::m_headers = nullptr |
|
private |
◆ m_request_context
◆ m_response
| std::unique_ptr<HttpResponse> kurlyk::HttpRequestHandler::m_response |
|
private |
The documentation for this class was generated from the following file: