35 bool enqueue_iov(
const struct iovec *iov,
int iovcnt,
size_t total_len,
size_t skip);
Byte buffer that skips zero-initialization on resize().
void release()
Release all memory (equivalent to std::vector swap trick).
static constexpr size_t MAX_SIZE
TCP send backlog, only used when the socket send buffer is full.
bool enqueue_iov(const struct iovec *iov, int iovcnt, size_t total_len, size_t skip)
Queue iov data from byte offset skip as one message.
static constexpr size_t LEN_PREFIX
static constexpr size_t MAX_BYTES
void release()
Free the retained storage, now if empty, otherwise once it has drained.
bool empty() const
True when no backlogged data is waiting.
static constexpr size_t reserve_for(size_t want)
static constexpr size_t GROW_QUANTUM
static constexpr size_t BYTES_PER_SLOT
ssize_t try_drain(socket::Socket *socket)
Drain queued messages to the socket.
static constexpr size_t MAX_LONE_BYTES
bool release_when_drained_