R-Type 0.1
Loading...
Searching...
No Matches
PacketHeader.hpp
1#pragma once
2
8#include "PacketReader.hpp"
9#include "PacketWriter.hpp"
10#include <cstddef>
11#include <cstdint>
12
24 std::uint32_t connectionId = 0;
25 std::uint32_t sequence = 0;
26 std::uint32_t ack = 0;
27 std::uint32_t ackBits = 0;
28
30 static constexpr std::size_t HEADER_SIZE = 16;
31
37 bool serialize(PacketWriter &writer) const;
38
44 bool deserialize(PacketReader &reader);
45};
46
Bounds checked reader of big-endian values over a byte buffer.
Definition PacketReader.hpp:15
Growable buffer of big-endian values, capped at MAX_PAYLOAD_SIZE.
Definition PacketWriter.hpp:16
Header that starts every packet sent on an open connection.
Definition PacketHeader.hpp:23
bool deserialize(PacketReader &reader)
Reads the header from a buffer.
Definition PacketHeader.cpp:8
bool serialize(PacketWriter &writer) const
Writes the header in network byte order.
Definition PacketHeader.cpp:3
std::uint32_t ackBits
Bitfield of the 32 previous sequences.
Definition PacketHeader.hpp:27
std::uint32_t sequence
Sequence number of this packet.
Definition PacketHeader.hpp:25
static constexpr std::size_t HEADER_SIZE
Encoded size of the header, in bytes.
Definition PacketHeader.hpp:30
std::uint32_t connectionId
Connection the packet belongs to.
Definition PacketHeader.hpp:24
std::uint32_t ack
Latest sequence received from the peer.
Definition PacketHeader.hpp:26