R-Type 0.1
Loading...
Searching...
No Matches
PacketWriter.hpp
1#pragma once
2
8#include "../config/NetworkConfig.hpp"
9#include <cstddef>
10#include <cstdint>
11#include <vector>
12
17public:
22
28 bool writeUInt8(std::uint8_t value);
29
35 bool writeUInt16(std::uint16_t value);
36
42 bool writeUInt32(std::uint32_t value);
43
50 bool writeBytes(const std::uint8_t *data, std::size_t size);
51
56 bool empty() const;
57
61 void clear();
62
67 const std::vector<std::uint8_t> &getData() const;
68
73 std::size_t getSize() const;
74
75private:
76 bool canWrite(std::size_t size) const;
77 std::vector<std::uint8_t> _buffer;
78};
79
Growable buffer of big-endian values, capped at MAX_PAYLOAD_SIZE.
Definition PacketWriter.hpp:16
PacketWriter()
Creates an empty writer with the full capacity reserved.
Definition PacketWriter.cpp:6
bool writeUInt8(std::uint8_t value)
Appends one byte.
Definition PacketWriter.cpp:12
bool writeBytes(const std::uint8_t *data, std::size_t size)
Appends raw bytes.
Definition PacketWriter.cpp:40
void clear()
Discards every written byte.
Definition PacketWriter.cpp:63
const std::vector< std::uint8_t > & getData() const
Returns the written bytes.
Definition PacketWriter.cpp:55
std::size_t getSize() const
Returns the number of written bytes.
Definition PacketWriter.cpp:61
bool writeUInt16(std::uint16_t value)
Appends a 16-bit unsigned integer in big-endian order.
Definition PacketWriter.cpp:20
bool empty() const
Tells whether nothing has been written yet.
Definition PacketWriter.cpp:59
bool writeUInt32(std::uint32_t value)
Appends a 32-bit unsigned integer in big-endian order.
Definition PacketWriter.cpp:29