32#include <SDL3/SDL_stdinc.h>
34#include <SDL3_net/SDL_net.h>
96 void enqueue(uint8_t replaceKey, std::shared_ptr<
const std::vector<uint8_t>> framedBytes);
102 void enqueue(uint8_t replaceKey, std::vector<uint8_t>&& framedBytes);
114 bool flushTo(NET_StreamSocket* socket, Uint32 maxAgeMs);
117 [[nodiscard]]
size_t depth() const noexcept
119 std::lock_guard<std::mutex> lock(
mutex_);
124 [[nodiscard]]
size_t totalBytes() const noexcept;
129 std::lock_guard<std::mutex> lock(
mutex_);
Per-connection outbound message queue.
Definition OutboundQueue.hpp:85
void enqueue(uint8_t replaceKey, std::shared_ptr< const std::vector< uint8_t > > framedBytes)
Enqueue a framed message (PR-2 broadcast-friendly form).
Definition OutboundQueue.cpp:10
void clear() noexcept
Drop all queued entries (used on disconnect).
Definition OutboundQueue.hpp:127
size_t depth() const noexcept
Number of entries currently queued (for telemetry / tests).
Definition OutboundQueue.hpp:117
std::mutex mutex_
PR-5b: protects entries_ for cross-thread access.
Definition OutboundQueue.hpp:134
bool flushTo(NET_StreamSocket *socket, Uint32 maxAgeMs)
Drain the queue, writing each entry to socket.
Definition OutboundQueue.cpp:54
std::deque< OutboundEntry > entries_
Definition OutboundQueue.hpp:135
size_t totalBytes() const noexcept
Total bytes across all queued entries (for telemetry).
Definition OutboundQueue.cpp:102
Bytes already framed (4-byte length prefix + payload) ready for the wire.
Definition OutboundQueue.hpp:53
Uint64 enqueuedNs
Microsecond timestamp at enqueue time, used for max-age culling.
Definition OutboundQueue.hpp:61
std::shared_ptr< const std::vector< uint8_t > > framedBytes
Pre-framed bytes including the 4-byte length prefix.
Definition OutboundQueue.hpp:66
uint8_t replaceKey
Replace-key.
Definition OutboundQueue.hpp:58