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
template<typename Callback, typename ...Args>
inline bool send(Callback callback, Args&&... args)
virtual bool ready() const = 0
virtual void bump() = 0
virtual void retry() = 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
virtual void operator()(Write const&) = 0
struct Read
struct Write

Public Members

size_t bytes_sent = {}
std::span<std::byte> payload