12#include <system_error>
42 [[nodiscard]]
virtual bool is_open()
const = 0;
Byte buffer / view aliases and protobuf base-128 varint codec.
Non-owning view over a contiguous run of bytes (a C++17 stand-in for std::span<const std::uint8_t>).
Definition bytes.hpp:17
Byte-stream transport: async connect, a continuous read pump and a serialized write queue.
Definition transport.hpp:19
virtual bool is_open() const =0
Whether the transport is currently open.
std::function< void(std::error_code)> ConnectHandler
Definition transport.hpp:21
virtual ~Transport()=default
virtual void async_connect(const std::string &host, std::uint16_t port, ConnectHandler handler)=0
Resolve and connect to host:port; handler fires once.
virtual void async_write(ByteBuffer data, WriteHandler handler)=0
Queue data for transmission (FIFO). handler fires on completion.
std::function< void(std::error_code)> WriteHandler
Definition transport.hpp:23
virtual void start_read(ReadHandler on_read)=0
Start the continuous read pump.
std::function< void(std::error_code, ByteView)> ReadHandler
Definition transport.hpp:22
virtual void close()=0
Close the transport.
std::vector< std::uint8_t > ByteBuffer
Owning, growable byte buffer.
Definition bytes.hpp:13