Client

struct Client

Public Types

using Callback = std::function<void(std::string_view const &request_id, Response const&)>

Public Functions

Client() = default
Client(Client&&) = delete
Client(Client const&) = delete
inline virtual ~Client()
virtual std::string_view get_interface() const = 0
virtual std::string_view get_current_authority() const = 0
virtual std::string_view get_current_path() const = 0
virtual std::string_view get_proxy() const = 0
virtual void start() = 0
virtual void stop() = 0
virtual void close() = 0
virtual bool refresh(std::chrono::nanoseconds now) = 0
virtual bool ready() const = 0
virtual bool can_try() const = 0
virtual void bump() = 0
virtual void operator()(std::string_view const &request_id, Request const&, Callback&&) = 0
virtual void suspend(std::chrono::nanoseconds period) = 0

Public Static Functions

static std::unique_ptr<Client> create(Client::Handler&, io::Context&, Config const&)
struct Config

Public Members

std::string_view interface
io::web::URI proxy
std::span<io::web::URI const> uris
std::string_view host
bool validate_certificate = {}
std::chrono::nanoseconds connection_timeout = {}
std::chrono::nanoseconds disconnect_on_idle_timeout = {}
http::Connection connection = {}
bool allow_pipelining = {}
std::chrono::nanoseconds request_timeout = {}
bool suspend_on_retry_after = {}
std::string_view query
std::string_view user_agent
std::chrono::nanoseconds ping_frequency = {}
std::string_view ping_path
size_t decode_buffer_size = {}
size_t encode_buffer_size = {}
struct Connected
struct Disconnected
struct Handler

Public Functions

virtual void operator()(Trace<Connected> const&) = 0
virtual void operator()(Trace<Disconnected> const&) = 0
virtual void operator()(Trace<Latency> const&) = 0
inline virtual void operator()(Trace<MessageBegin> const&)
inline virtual void operator()(Trace<Header> const&)
inline virtual void operator()(Trace<MessageEnd> const&)
struct Header

Public Members

std::string_view name
std::string_view value
struct Latency

Public Members

std::chrono::nanoseconds sample
http::Status status
std::string_view body
struct MessageBegin
struct MessageEnd