ConnectionManager#

struct ConnectionManager#

Public Functions

ConnectionManager() = default#
ConnectionManager(ConnectionManager const&) = delete#
ConnectionManager(ConnectionManager&&) = delete#
inline virtual ~ConnectionManager()#
virtual bool finished() const = 0#
virtual web::URI const &get_uri() const = 0#
virtual void start() = 0#
virtual void stop() = 0#
virtual void close() = 0#
virtual bool refresh(std::chrono::nanoseconds now) = 0#
virtual void send(std::span<std::byte const> const&) = 0#
virtual void send(std::span<std::span<std::byte const> const> const&) = 0#
template<typename Callback>
inline void send_with_completion(Callback callback)#
virtual bool ready() const = 0#
virtual void bump() = 0#
virtual void touch(std::chrono::nanoseconds now) = 0#
virtual std::span<std::byte> buffer() = 0#
virtual void drain(size_t bytes) = 0#
virtual void suspend(std::chrono::nanoseconds period) = 0#

Public Static Functions

static std::unique_ptr<ConnectionManager> create(Handler&, ConnectionFactory&, Config const&)#
struct Config#

Public Members

std::chrono::nanoseconds connection_timeout = {}#
std::chrono::nanoseconds disconnect_on_idle_timeout = {}#
bool always_reconnect = {}#
struct Connected#
struct Disconnected#
struct Handler#

Public Functions

virtual void operator()(Connected const&) = 0#
virtual void operator()(Disconnected const&) = 0#
virtual void operator()(Read const&) = 0#
struct Read#