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#