Skip to content

ludus::network::SendQueue

Ludus Wiki · API overview · Browse API

Class

One connection/direction, one thread.
Owns bytes; no heap or locks. Control, input and bulk are FIFO; snapshot is a single newest complete snapshot. Round-robin across nonempty lanes bounds starvation (message fairness). Budget includes the application envelope, not backend framing/IP overhead. On successful dequeue the caller owns the message and must retain it until the transport accepts it; a WouldBlock backend must never silently discard it.

Declared in modules/network/core/include/ludus/network/core/send_queue.h

#include <ludus/network/core/send_queue.h>
class ludus::network::SendQueue final

Methods

Enqueue

QueueStatus ludus::network::SendQueue::Enqueue(std::span< const uint8 > message) noexcept

Related types: uint8 · QueueStatus

Declared in modules/network/core/include/ludus/network/core/send_queue.h

Dequeue

QueueStatus ludus::network::SendQueue::Dequeue(usize byteBudget, OwnedMessage &message) noexcept

Related types: usize · QueueStatus · OwnedMessage

Declared in modules/network/core/include/ludus/network/core/send_queue.h

Reset

void ludus::network::SendQueue::Reset() noexcept

Declared in modules/network/core/include/ludus/network/core/send_queue.h

GetPendingCount

usize ludus::network::SendQueue::GetPendingCount(Channel lane) const noexcept

Related types: usize · Channel

Declared in modules/network/core/include/ludus/network/core/send_queue.h

GetCounters

const QueueCounters & ludus::network::SendQueue::GetCounters() const noexcept

Related types: QueueCounters

Declared in modules/network/core/include/ludus/network/core/send_queue.h