Kurlyk
Loading...
Searching...
No Matches
kurlyk::HttpRequestContext Class Reference

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

Detailed Description

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.

Member Typedef Documentation

◆ time_point_t

using kurlyk::HttpRequestContext::time_point_t = std::chrono::steady_clock::time_point

Definition at line 14 of file HttpRequestContext.hpp.

Constructor & Destructor Documentation

◆ HttpRequestContext() [1/2]

kurlyk::HttpRequestContext::HttpRequestContext ( std::unique_ptr< HttpRequest > request_ptr,
HttpResponseCallback callback )
inline

Constructs a HttpRequestContext with the specified request and callback.

Parameters
request_ptrA unique pointer to the HTTP request object.
callbackCallback function to be invoked upon request completion.

Definition at line 28 of file HttpRequestContext.hpp.

◆ HttpRequestContext() [2/2]

kurlyk::HttpRequestContext::HttpRequestContext ( )
default

Member Function Documentation

◆ complete()

void kurlyk::HttpRequestContext::complete ( )
inlinenoexcept

Invokes completion callbacks exactly once. Thread-safe and idempotent.

Definition at line 62 of file HttpRequestContext.hpp.

◆ invoke_callback()

void kurlyk::HttpRequestContext::invoke_callback ( HttpResponsePtr response)
inlinenoexcept

Invokes the response callback and reports callback exceptions.

Parameters
responseResponse passed to the callback.

Definition at line 42 of file HttpRequestContext.hpp.

◆ invoke_final_callback()

void kurlyk::HttpRequestContext::invoke_final_callback ( HttpResponsePtr response)
inlinenoexcept

Invokes the final response callback, then performs idempotent request completion.

Parameters
responseFinal response passed to the callback.

Definition at line 56 of file HttpRequestContext.hpp.

◆ report_callback_exception()

void kurlyk::HttpRequestContext::report_callback_exception ( std::exception_ptr exception,
const char * message )
inlinestaticprivatenoexcept

Definition at line 90 of file HttpRequestContext.hpp.

Member Data Documentation

◆ callback

HttpResponseCallback kurlyk::HttpRequestContext::callback

Callback function to be invoked when the request completes.

Definition at line 17 of file HttpRequestContext.hpp.

◆ complete_called

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.

◆ in_flight_token

uint64_t kurlyk::HttpRequestContext::in_flight_token = 0

Token for sequential rate-limit tracking.

Definition at line 20 of file HttpRequestContext.hpp.

◆ on_complete

std::function<void()> kurlyk::HttpRequestContext::on_complete

Callback invoked once when the request finishes (including retries).

Definition at line 21 of file HttpRequestContext.hpp.

◆ on_group_complete

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.

◆ request

std::unique_ptr<HttpRequest> kurlyk::HttpRequestContext::request

The HTTP request associated with this context.

Definition at line 16 of file HttpRequestContext.hpp.

◆ retry_attempt

long kurlyk::HttpRequestContext::retry_attempt

Number of retry attempts made for this request.

Definition at line 18 of file HttpRequestContext.hpp.

◆ start_time

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.


The documentation for this class was generated from the following file: