![]() |
Kurlyk
|
Represents the context of an HTTP request, including the request object, callback function, retry attempts, and timing. More...
#include <HttpRequestContext.hpp>
Public Types | |
| using | time_point_t = std::chrono::steady_clock::time_point |
Public Member Functions | |
| HttpRequestContext (std::unique_ptr< HttpRequest > request_ptr, HttpResponseCallback callback) | |
| Constructs a HttpRequestContext with the specified request and callback. | |
| HttpRequestContext ()=default | |
| void | invoke_callback (HttpResponsePtr response) noexcept |
| Invokes the response callback and reports callback exceptions. | |
| void | invoke_final_callback (HttpResponsePtr response) noexcept |
| Invokes the final response callback, then performs idempotent request completion. | |
| void | complete () noexcept |
| Invokes completion callbacks exactly once. Thread-safe and idempotent. | |
Public Attributes | |
| std::unique_ptr< HttpRequest > | request |
| The HTTP request associated with this context. | |
| HttpResponseCallback | callback |
| Callback function to be invoked when the request completes. | |
| long | retry_attempt |
| Number of retry attempts made for this request. | |
| time_point_t | start_time |
| Time when the request was initially created or last retried. | |
| uint64_t | in_flight_token = 0 |
| Token for sequential rate-limit tracking. | |
| std::function< void()> | on_complete |
| Callback invoked once when the request finishes (including retries). | |
| std::function< void()> | on_group_complete |
| Callback invoked after the final user callback for the group. | |
| std::atomic< bool > | complete_called {false} |
| True after completion callbacks have been claimed for invocation. | |
Static Private Member Functions | |
| static void | report_callback_exception (std::exception_ptr exception, const char *message) noexcept |
Represents the context of an HTTP request, including the request object, callback function, retry attempts, and timing.
Definition at line 12 of file HttpRequestContext.hpp.
| using kurlyk::HttpRequestContext::time_point_t = std::chrono::steady_clock::time_point |
Definition at line 14 of file HttpRequestContext.hpp.
|
inline |
Constructs a HttpRequestContext with the specified request and callback.
| request_ptr | A unique pointer to the HTTP request object. |
| callback | Callback function to be invoked upon request completion. |
Definition at line 28 of file HttpRequestContext.hpp.
|
default |
|
inlinenoexcept |
Invokes completion callbacks exactly once. Thread-safe and idempotent.
Definition at line 62 of file HttpRequestContext.hpp.
|
inlinenoexcept |
Invokes the response callback and reports callback exceptions.
| response | Response passed to the callback. |
Definition at line 42 of file HttpRequestContext.hpp.
|
inlinenoexcept |
Invokes the final response callback, then performs idempotent request completion.
| response | Final response passed to the callback. |
Definition at line 56 of file HttpRequestContext.hpp.
|
inlinestaticprivatenoexcept |
Definition at line 90 of file HttpRequestContext.hpp.
| HttpResponseCallback kurlyk::HttpRequestContext::callback |
Callback function to be invoked when the request completes.
Definition at line 17 of file HttpRequestContext.hpp.
| std::atomic<bool> kurlyk::HttpRequestContext::complete_called {false} |
True after completion callbacks have been claimed for invocation.
Definition at line 23 of file HttpRequestContext.hpp.
| uint64_t kurlyk::HttpRequestContext::in_flight_token = 0 |
Token for sequential rate-limit tracking.
Definition at line 20 of file HttpRequestContext.hpp.
| std::function<void()> kurlyk::HttpRequestContext::on_complete |
Callback invoked once when the request finishes (including retries).
Definition at line 21 of file HttpRequestContext.hpp.
| std::function<void()> kurlyk::HttpRequestContext::on_group_complete |
Callback invoked after the final user callback for the group.
Definition at line 22 of file HttpRequestContext.hpp.
| std::unique_ptr<HttpRequest> kurlyk::HttpRequestContext::request |
The HTTP request associated with this context.
Definition at line 16 of file HttpRequestContext.hpp.
| long kurlyk::HttpRequestContext::retry_attempt |
Number of retry attempts made for this request.
Definition at line 18 of file HttpRequestContext.hpp.
| time_point_t kurlyk::HttpRequestContext::start_time |
Time when the request was initially created or last retried.
Definition at line 19 of file HttpRequestContext.hpp.