Flexible Packet
FlexiblePacket is a packet that stores a packed 4 byte header which holds info on how many of what types the packet contains within
Info
Name | Value |
---|---|
Estimated Size | See Estimated Size |
Network Structure
Name | Type/Size | Notes |
---|---|---|
Packed Header | Int (0x04) | See Packed Header Structure |
Strings | Utf[String Count] | Max of 255 strings |
Varints | Varint[Varint Count] | Max of 4096 varints |
Bools | 1 byte (only if any bools in header) | Max of 8 booleans which are packed into one byte |
Floats | Float[Float count] (0x04 * floatCount) | Max of 15 floats |
Class Structure
Name | Type | Notes |
---|---|---|
Packet | 0x18 (24 bytes) | Base class |
Strings | std::vector<std::wstring> (24 bytes) | Holds all strings present in the packet |
Varints | std::vector<int> (24 bytes) | Holds all varints present in the packet |
Booleans | std::vector<bool> (24 bytes) | Holds all booleans present in the packet |
Floats | std::vector<float> (24 bytes) | Holds all floats present in the packet |
Packed Header Structure
Byte 0 | Strings | |
Byte 1 | Varints | |
Byte 2 | ||
Booleans | ||
Byte 3 | ||
Floats | ||
Estimated Size
cpp
sizeof(int) // 4 byte packed header
+ (sizeof(int) * mVarints.size() // All varints * size of int
+ strings // Length of all strings
+ (!mBools.empty()) // 1 if there are any bools
+ sizeof(float) * mFloats.size()); // All floats * size of float