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#
template<typename Callback>
inline bool operator()(Request const &request, uint64_t opaque, Callback callback)#
inline uint64_t operator()(Request const &request, uint64_t opaque)#
virtual void suspend(std::chrono::nanoseconds period) = 0#
struct Config#

Public Members

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

Public Functions

virtual void operator()(Trace<Connected> const&) = 0#
virtual void operator()(Trace<Disconnected> const&) = 0#
inline virtual void operator()(Trace<Header> const&)#
virtual void operator()(Trace<Latency> const&) = 0#
virtual void operator()(Trace<Response> const&, uint64_t request_id, uint64_t opaque) = 0#
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#