11#include <unordered_map>
18 std::span<const std::uint8_t> payload,
19 std::uint32_t sourceId);
51 inline std::unordered_map<std::uint32_t, SessionState>
sessions{};
54 std::uint32_t sourceId)
noexcept
59 return &
found->second;
64 std::uint32_t sourceId)
74 state.format =
event.format;
93 session->dimensions =
event.value;
126 std::span<const std::uint8_t> payload)
noexcept
153 std::uint32_t sourceId)
158 return found->second;
168 const auto sourceId =
static_cast<std::uint32_t
>(message.
numberD);
204 std::span<const std::uint8_t> payload,
220 message.binaryDataA.assign(payload.begin(), payload.end());
std::size_t queuedActionCount()
bool sendAction(const actions::Message &message)
constexpr PlayerNumber BankPlayer
constexpr PlayerNumber SpectatorPlayer
constexpr PlayerNumber AllPlayers
std::unordered_map< std::uint32_t, SessionState > sessions
bool consumeEvent(const packet::Event &event, std::uint32_t sourceId)
SessionState * activeSession(std::uint32_t sourceId) noexcept
ReceiveEventSink receiveEventSink
ParseStatus parse(std::span< const std::uint8_t > bytes, std::uint32_t sourceId, EventSink sink=nullptr) noexcept
bool(*)(const Event &, std::uint32_t sourceId) EventSink
void setReceiveEventSink(ReceiveEventSink sink) noexcept
constexpr std::size_t MaxReceiveSessions
bool(*)(std::span< const std::uint8_t > payload, std::uint32_t sourceId) ReceiveSink
void setReceiveSink(ReceiveSink sink) noexcept
bool sendPacket(std::span< const std::uint8_t > payload, bool importantDataDoNotDiscard)
packet::EventSink ReceiveEventSink
std::optional< SessionState > sessionState(std::uint32_t sourceId)
bool processRuleMessage(const actions::Message &message)
bool validPacket(std::span< const std::uint8_t > payload) noexcept
void resetSession() noexcept
const Statistics & statistics() noexcept
std::vector< std::uint8_t > binaryDataA
std::uint64_t restartDataChunks
packet::WaveFormat format
std::uint64_t positionChunks
std::uint64_t stoppedSessions
std::uint64_t malformedPackets
std::uint64_t droppedPackets
std::uint64_t restartDataChunks
std::uint64_t startedSessions
std::uint64_t receivedPackets
std::uint64_t deliveredPackets
std::uint64_t sentPackets