RunicVTT Open Source Virtual Tabletop for TTRPG using P2P
Loading...
Searching...
No Matches
Serializer Class Reference

#include <Serializer.h>

Collaboration diagram for Serializer:

Static Public Member Functions

static void serializeInt (std::vector< unsigned char > &buffer, int value)
 
static void serializeFloat (std::vector< unsigned char > &buffer, float value)
 
static void serializeBool (std::vector< unsigned char > &buffer, bool value)
 
static void serializeString (std::vector< unsigned char > &buffer, const std::string &str)
 
static void serializeVec2 (std::vector< unsigned char > &buffer, const glm::vec2 &vec)
 
static void serializeUInt64 (std::vector< unsigned char > &buffer, uint64_t value)
 
static void serializeUInt32 (std::vector< unsigned char > &buffer, uint32_t value)
 
static void serializeUInt8 (std::vector< unsigned char > &buffer, uint8_t value)
 
static int deserializeInt (const std::vector< unsigned char > &buffer, size_t &offset)
 
static float deserializeFloat (const std::vector< unsigned char > &buffer, size_t &offset)
 
static bool deserializeBool (const std::vector< unsigned char > &buffer, size_t &offset)
 
static std::string deserializeString (const std::vector< unsigned char > &buffer, size_t &offset)
 
static glm::vec2 deserializeVec2 (const std::vector< unsigned char > &buffer, size_t &offset)
 
static uint64_t deserializeUInt64 (const std::vector< unsigned char > &buffer, size_t &offset)
 
static uint32_t deserializeUInt32 (const std::vector< unsigned char > &buffer, size_t &offset)
 
static uint8_t deserializeUInt8 (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializePosition (std::vector< unsigned char > &buffer, const Position *position)
 
static Position deserializePosition (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeSize (std::vector< unsigned char > &buffer, const Size *size)
 
static Size deserializeSize (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeVisibility (std::vector< unsigned char > &buffer, const Visibility *visibility)
 
static Visibility deserializeVisibility (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeMoving (std::vector< unsigned char > &buffer, const Moving *moving)
 
static Moving deserializeMoving (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeTextureComponent (std::vector< unsigned char > &buffer, const TextureComponent *texture)
 
static TextureComponent deserializeTextureComponent (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializePanning (std::vector< unsigned char > &buffer, const Panning *panning)
 
static Panning deserializePanning (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeGrid (std::vector< unsigned char > &buffer, const Grid *grid)
 
static Grid deserializeGrid (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeMarkerComponent (std::vector< unsigned char > &buffer, const MarkerComponent *marker_component)
 
static MarkerComponent deserializeMarkerComponent (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeBoard (std::vector< unsigned char > &buffer, const Board *board)
 
static Board deserializeBoard (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeGameTable (std::vector< unsigned char > &buffer, const GameTable *gameTable)
 
static GameTable deserializeGameTable (const std::vector< unsigned char > &buffer, size_t &offset)
 
static void serializeMarkerEntity (std::vector< unsigned char > &buffer, const flecs::entity entity, flecs::world &ecs)
 
static flecs::entity deserializeMarkerEntity (const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
 
static void serializeFogEntity (std::vector< unsigned char > &buffer, const flecs::entity entity, flecs::world &ecs)
 
static flecs::entity deserializeFogEntity (const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
 
static void serializeGameTableEntity (std::vector< unsigned char > &buffer, const flecs::entity entity, flecs::world &ecs)
 
static flecs::entity deserializeGameTableEntity (const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
 
static void serializeBoardEntity (std::vector< unsigned char > &buffer, const flecs::entity entity, flecs::world &ecs)
 
static flecs::entity deserializeBoardEntity (const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
 

Detailed Description

Definition at line 10 of file Serializer.h.

Member Function Documentation

◆ deserializeBoard()

Board Serializer::deserializeBoard ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 510 of file Serializer.h.

511{
512 std::string board_name = deserializeString(buffer, offset);
513 return Board{board_name};
514}
static std::string deserializeString(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:388
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeBoardEntity()

flecs::entity Serializer::deserializeBoardEntity ( const std::vector< unsigned char > & buffer,
size_t & offset,
flecs::world & ecs )
inlinestatic

Definition at line 244 of file Serializer.h.

245{
246
247 uint64_t board_id = Serializer::deserializeUInt64(buffer, offset);
248 auto boardData = Serializer::deserializeBoard(buffer, offset);
249 auto panning = Serializer::deserializePanning(buffer, offset);
250 auto grid = Serializer::deserializeGrid(buffer, offset);
251 auto texture = Serializer::deserializeTextureComponent(buffer, offset);
252 auto size = Serializer::deserializeSize(buffer, offset);
253
254 auto newBoard = ecs.entity()
255 .set<Identifier>({board_id})
256 .set<Board>(boardData)
257 .set<Panning>(panning)
258 .set<Grid>(grid)
259 .set<TextureComponent>({0, texture.image_path, texture.size})
260 .set<Size>(size);
261
262 // Deserialize markers
263 int markerCount = Serializer::deserializeInt(buffer, offset);
264 for (int i = 0; i < markerCount; ++i)
265 {
266 auto marker = deserializeMarkerEntity(buffer, offset, ecs);
267 marker.add<MarkerComponent>();
268 marker.add(flecs::ChildOf, newBoard);
269 }
270
271 // Deserialize fog entities
272 int fogCount = Serializer::deserializeInt(buffer, offset);
273 for (int i = 0; i < fogCount; ++i)
274 {
275 auto fog = deserializeFogEntity(buffer, offset, ecs);
276 fog.add<FogOfWar>();
277 fog.add(flecs::ChildOf, newBoard);
278 }
279
280 return newBoard;
281}
static Size deserializeSize(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:422
static int deserializeInt(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:367
static Grid deserializeGrid(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:492
static flecs::entity deserializeMarkerEntity(const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
Definition Serializer.h:97
static Panning deserializePanning(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:475
static flecs::entity deserializeFogEntity(const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
Definition Serializer.h:133
static TextureComponent deserializeTextureComponent(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:461
static uint64_t deserializeUInt64(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:360
static Board deserializeBoard(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:510
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeBool()

bool Serializer::deserializeBool ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 381 of file Serializer.h.

382{
383 bool value = buffer[offset] != 0;
384 offset += sizeof(unsigned char);
385 return value;
386}
Here is the caller graph for this function:

◆ deserializeFloat()

float Serializer::deserializeFloat ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 374 of file Serializer.h.

375{
376 float value = *reinterpret_cast<const float*>(&buffer[offset]);
377 offset += sizeof(float);
378 return value;
379}
Here is the caller graph for this function:

◆ deserializeFogEntity()

flecs::entity Serializer::deserializeFogEntity ( const std::vector< unsigned char > & buffer,
size_t & offset,
flecs::world & ecs )
inlinestatic

Definition at line 133 of file Serializer.h.

134{
135
136 uint64_t fog_id = Serializer::deserializeUInt64(buffer, offset);
137 auto position = deserializePosition(buffer, offset);
138 auto size = deserializeSize(buffer, offset);
139 auto visibility = deserializeVisibility(buffer, offset);
140
141 auto fog = ecs.entity()
142 .set<Identifier>({fog_id})
143 .set<Position>(position)
144 .set<Size>(size)
145 .set<Visibility>(visibility);
146
147 return fog;
148}
static Visibility deserializeVisibility(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:435
static Position deserializePosition(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:409
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeGameTable()

GameTable Serializer::deserializeGameTable ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 522 of file Serializer.h.

523{
524 std::string gameTableName = deserializeString(buffer, offset);
525 return GameTable{gameTableName};
526}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeGameTableEntity()

flecs::entity Serializer::deserializeGameTableEntity ( const std::vector< unsigned char > & buffer,
size_t & offset,
flecs::world & ecs )
inlinestatic

Definition at line 174 of file Serializer.h.

175{
176 //auto game_table_id = deserializeInt(buffer, offset);
177 auto identifier = deserializeUInt64(buffer, offset);
178 auto game_table = deserializeGameTable(buffer, offset);
179 auto game_table_entity = ecs.entity().set(GameTable{game_table});
180 game_table_entity.set(Identifier{identifier});
181
182 int board_count = Serializer::deserializeInt(buffer, offset);
183 for (int i = 1; i <= board_count; i++)
184 {
185 auto board_entity = deserializeBoardEntity(buffer, offset, ecs);
186 board_entity.add(flecs::ChildOf, game_table_entity);
187 }
188
189 return game_table_entity;
190}
static GameTable deserializeGameTable(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:522
static flecs::entity deserializeBoardEntity(const std::vector< unsigned char > &buffer, size_t &offset, flecs::world &ecs)
Definition Serializer.h:244
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeGrid()

Grid Serializer::deserializeGrid ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 492 of file Serializer.h.

493{
494 glm::vec2 offset_val = deserializeVec2(buffer, offset);
495 float cell_size = deserializeFloat(buffer, offset);
496 bool is_hex = deserializeBool(buffer, offset);
497 bool snap_to_grid = deserializeBool(buffer, offset);
498 bool visible = deserializeBool(buffer, offset);
499 float opacity = deserializeFloat(buffer, offset);
500
501 return Grid{offset_val, cell_size, is_hex, snap_to_grid, visible, opacity};
502}
static float deserializeFloat(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:374
static bool deserializeBool(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:381
static glm::vec2 deserializeVec2(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:396
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeInt()

int Serializer::deserializeInt ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 367 of file Serializer.h.

368{
369 int value = *reinterpret_cast<const int*>(&buffer[offset]);
370 offset += sizeof(int);
371 return value;
372}
Here is the caller graph for this function:

◆ deserializeMarkerComponent()

MarkerComponent Serializer::deserializeMarkerComponent ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 292 of file Serializer.h.

293{
294 MarkerComponent marker_component{};
295 marker_component.ownerPeerUsername = deserializeString(b, off);
296 marker_component.ownerUniqueId = deserializeString(b, off);
297 marker_component.allowAllPlayersMove = deserializeBool(b, off);
298 marker_component.locked = deserializeBool(b, off);
299 return marker_component;
300}
std::string ownerPeerUsername
Definition Components.h:82
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeMarkerEntity()

flecs::entity Serializer::deserializeMarkerEntity ( const std::vector< unsigned char > & buffer,
size_t & offset,
flecs::world & ecs )
inlinestatic

Definition at line 97 of file Serializer.h.

98{
99
100 uint64_t marker_id = Serializer::deserializeUInt64(buffer, offset);
101 auto position = deserializePosition(buffer, offset);
102 auto size = deserializeSize(buffer, offset);
103 auto moving = deserializeMoving(buffer, offset);
104 auto visibility = deserializeVisibility(buffer, offset);
105 auto texture = deserializeTextureComponent(buffer, offset);
106 auto marker_component = deserializeMarkerComponent(buffer, offset);
107 auto marker = ecs.entity()
108 .set<Identifier>({marker_id})
109 .set<Position>(position)
110 .set<Size>(size)
111 .set<Moving>(moving)
112 .set<Visibility>(visibility)
113 .set<MarkerComponent>(marker_component)
114 .set<TextureComponent>({0, texture.image_path, texture.size});
115
116 return marker;
117}
static MarkerComponent deserializeMarkerComponent(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:292
static Moving deserializeMoving(const std::vector< unsigned char > &buffer, size_t &offset)
Definition Serializer.h:447
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeMoving()

Moving Serializer::deserializeMoving ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 447 of file Serializer.h.

448{
449 bool isDragging = deserializeBool(buffer, offset);
450 return Moving{isDragging};
451}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializePanning()

Panning Serializer::deserializePanning ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 475 of file Serializer.h.

476{
477 bool isPanning = deserializeBool(buffer, offset);
478 return Panning{isPanning};
479}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializePosition()

Position Serializer::deserializePosition ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 409 of file Serializer.h.

410{
411 float x = deserializeFloat(buffer, offset);
412 float y = deserializeFloat(buffer, offset);
413 return Position{x, y};
414}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeSize()

Size Serializer::deserializeSize ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 422 of file Serializer.h.

423{
424 float width = deserializeFloat(buffer, offset);
425 float height = deserializeFloat(buffer, offset);
426 return Size{width, height};
427}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeString()

std::string Serializer::deserializeString ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 388 of file Serializer.h.

389{
390 int length = deserializeInt(buffer, offset);
391 std::string str(buffer.begin() + offset, buffer.begin() + offset + length);
392 offset += length;
393 return str;
394}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeTextureComponent()

TextureComponent Serializer::deserializeTextureComponent ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 461 of file Serializer.h.

462{
463 GLuint textureID = static_cast<GLuint>(deserializeInt(buffer, offset));
464 std::string image_path = deserializeString(buffer, offset);
465 glm::vec2 size = deserializeVec2(buffer, offset);
466 return TextureComponent{0, image_path, size};
467}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeUInt32()

uint32_t Serializer::deserializeUInt32 ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 353 of file Serializer.h.

354{
355 uint32_t value = *reinterpret_cast<const uint32_t*>(&buffer[offset]);
356 offset += sizeof(uint32_t);
357 return value;
358}
Here is the caller graph for this function:

◆ deserializeUInt64()

uint64_t Serializer::deserializeUInt64 ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 360 of file Serializer.h.

361{
362 uint64_t value = *reinterpret_cast<const uint64_t*>(&buffer[offset]);
363 offset += sizeof(uint64_t);
364 return value;
365}
Here is the caller graph for this function:

◆ deserializeUInt8()

uint8_t Serializer::deserializeUInt8 ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 346 of file Serializer.h.

347{
348 uint8_t v = static_cast<uint8_t>(buffer[offset]);
349 offset += sizeof(uint8_t);
350 return v;
351}
Here is the caller graph for this function:

◆ deserializeVec2()

glm::vec2 Serializer::deserializeVec2 ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 396 of file Serializer.h.

397{
398 float x = deserializeFloat(buffer, offset);
399 float y = deserializeFloat(buffer, offset);
400 return glm::vec2(x, y);
401}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deserializeVisibility()

Visibility Serializer::deserializeVisibility ( const std::vector< unsigned char > & buffer,
size_t & offset )
inlinestatic

Definition at line 435 of file Serializer.h.

436{
437 bool isVisible = deserializeBool(buffer, offset);
438 return Visibility{isVisible};
439}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeBoard()

void Serializer::serializeBoard ( std::vector< unsigned char > & buffer,
const Board * board )
inlinestatic

Definition at line 505 of file Serializer.h.

506{
507 serializeString(buffer, board->board_name);
508}
static void serializeString(std::vector< unsigned char > &buffer, const std::string &str)
Definition Serializer.h:318
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeBoardEntity()

void Serializer::serializeBoardEntity ( std::vector< unsigned char > & buffer,
const flecs::entity entity,
flecs::world & ecs )
inlinestatic

Definition at line 192 of file Serializer.h.

193{
194 auto identifier = entity.get<Identifier>();
195 auto boardData = entity.get<Board>();
196 auto panning = entity.get<Panning>();
197 auto grid = entity.get<Grid>();
198 auto texture = entity.get<TextureComponent>();
199 auto size = entity.get<Size>();
200
201 Serializer::serializeUInt64(buffer, identifier->id);
202 Serializer::serializeBoard(buffer, boardData);
203 Serializer::serializePanning(buffer, panning);
204 Serializer::serializeGrid(buffer, grid);
206 Serializer::serializeSize(buffer, size);
207
208 // Serialize markers
209 int markerCount = 0;
210 ecs.defer_begin();
211 entity.children([&](flecs::entity child)
212 {
213 if (child.has<MarkerComponent>()) {
214 markerCount++;
215 } });
216 Serializer::serializeInt(buffer, markerCount);
217 // Serialize each marker's data
218 entity.children([&](flecs::entity child)
219 {
220 if (child.has<MarkerComponent>()) {
221 serializeMarkerEntity(buffer, child, ecs);
222 } });
223 ecs.defer_end();
224 // Serialize fog entities
225 int fogCount = 0;
226 ecs.defer_begin();
227 entity.children([&](flecs::entity child)
228 {
229 if (child.has<FogOfWar>()) {
230 fogCount++;
231 } });
232 ecs.defer_end();
233 Serializer::serializeInt(buffer, fogCount);
234 // Serialize each fog's data
235 ecs.defer_begin();
236 entity.children([&](flecs::entity child)
237 {
238 if (child.has<FogOfWar>()) {
239 serializeFogEntity(buffer, child, ecs);
240 } });
241 ecs.defer_end();
242}
static void serializePanning(std::vector< unsigned char > &buffer, const Panning *panning)
Definition Serializer.h:470
static void serializeTextureComponent(std::vector< unsigned char > &buffer, const TextureComponent *texture)
Definition Serializer.h:454
static void serializeUInt64(std::vector< unsigned char > &buffer, uint64_t value)
Definition Serializer.h:331
static void serializeSize(std::vector< unsigned char > &buffer, const Size *size)
Definition Serializer.h:416
static void serializeBoard(std::vector< unsigned char > &buffer, const Board *board)
Definition Serializer.h:505
static void serializeInt(std::vector< unsigned char > &buffer, int value)
Definition Serializer.h:302
static void serializeGrid(std::vector< unsigned char > &buffer, const Grid *grid)
Definition Serializer.h:482
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeBool()

void Serializer::serializeBool ( std::vector< unsigned char > & buffer,
bool value )
inlinestatic

Definition at line 312 of file Serializer.h.

313{
314 unsigned char byteValue = value ? 1 : 0;
315 buffer.push_back(byteValue);
316}
Here is the caller graph for this function:

◆ serializeFloat()

void Serializer::serializeFloat ( std::vector< unsigned char > & buffer,
float value )
inlinestatic

Definition at line 307 of file Serializer.h.

308{
309 buffer.insert(buffer.end(), reinterpret_cast<unsigned char*>(&value), reinterpret_cast<unsigned char*>(&value) + sizeof(float));
310}
Here is the caller graph for this function:

◆ serializeFogEntity()

void Serializer::serializeFogEntity ( std::vector< unsigned char > & buffer,
const flecs::entity entity,
flecs::world & ecs )
inlinestatic

Definition at line 120 of file Serializer.h.

121{
122 auto identifier = entity.get<Identifier>();
123 auto position = entity.get<Position>();
124 auto size = entity.get<Size>();
125 auto visibility = entity.get<Visibility>();
126
127 serializeUInt64(buffer, identifier->id);
128 serializePosition(buffer, position);
129 serializeSize(buffer, size);
130 serializeVisibility(buffer, visibility);
131}
static void serializePosition(std::vector< unsigned char > &buffer, const Position *position)
Definition Serializer.h:403
static void serializeVisibility(std::vector< unsigned char > &buffer, const Visibility *visibility)
Definition Serializer.h:430
Here is the call graph for this function:

◆ serializeGameTable()

void Serializer::serializeGameTable ( std::vector< unsigned char > & buffer,
const GameTable * gameTable )
inlinestatic

Definition at line 517 of file Serializer.h.

518{
519 serializeString(buffer, gameTable->gameTableName);
520}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeGameTableEntity()

void Serializer::serializeGameTableEntity ( std::vector< unsigned char > & buffer,
const flecs::entity entity,
flecs::world & ecs )
inlinestatic

Definition at line 150 of file Serializer.h.

151{
152 auto identifier = entity.get<Identifier>();
153 auto game_table = entity.get<GameTable>();
154 //auto game_table_id = entity.id();
155
156 serializeUInt64(buffer, identifier->id);
157 serializeGameTable(buffer, game_table);
158
159 int boardCount = 0;
160 ecs.defer_begin();
161 entity.children([&](flecs::entity child)
162 {
163 if (child.has<Board>()) {
164 boardCount++;
165 } });
166 ecs.defer_end();
167 Serializer::serializeInt(buffer, boardCount);
168 ecs.defer_begin();
169 entity.children([&](flecs::entity child)
170 { serializeBoardEntity(buffer, child, ecs); });
171 ecs.defer_end();
172}
static void serializeBoardEntity(std::vector< unsigned char > &buffer, const flecs::entity entity, flecs::world &ecs)
Definition Serializer.h:192
static void serializeGameTable(std::vector< unsigned char > &buffer, const GameTable *gameTable)
Definition Serializer.h:517
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeGrid()

void Serializer::serializeGrid ( std::vector< unsigned char > & buffer,
const Grid * grid )
inlinestatic

Definition at line 482 of file Serializer.h.

483{
484 serializeVec2(buffer, grid->offset);
485 serializeFloat(buffer, grid->cell_size);
486 serializeBool(buffer, grid->is_hex);
487 serializeBool(buffer, grid->snap_to_grid);
488 serializeBool(buffer, grid->visible);
489 serializeFloat(buffer, grid->opacity);
490}
static void serializeBool(std::vector< unsigned char > &buffer, bool value)
Definition Serializer.h:312
static void serializeVec2(std::vector< unsigned char > &buffer, const glm::vec2 &vec)
Definition Serializer.h:325
static void serializeFloat(std::vector< unsigned char > &buffer, float value)
Definition Serializer.h:307
bool snap_to_grid
Definition Components.h:68
glm::vec2 offset
Definition Components.h:65
float opacity
Definition Components.h:70
float cell_size
Definition Components.h:66
bool is_hex
Definition Components.h:67
bool visible
Definition Components.h:69
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeInt()

void Serializer::serializeInt ( std::vector< unsigned char > & buffer,
int value )
inlinestatic

Definition at line 302 of file Serializer.h.

303{
304 buffer.insert(buffer.end(), reinterpret_cast<unsigned char*>(&value), reinterpret_cast<unsigned char*>(&value) + sizeof(int));
305}
Here is the caller graph for this function:

◆ serializeMarkerComponent()

void Serializer::serializeMarkerComponent ( std::vector< unsigned char > & buffer,
const MarkerComponent * marker_component )
inlinestatic

Definition at line 284 of file Serializer.h.

285{
286 serializeString(b, marker_component->ownerPeerUsername);
287 serializeString(b, marker_component->ownerUniqueId);
288 serializeBool(b, marker_component->allowAllPlayersMove);
289 serializeBool(b, marker_component->locked);
290}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeMarkerEntity()

void Serializer::serializeMarkerEntity ( std::vector< unsigned char > & buffer,
const flecs::entity entity,
flecs::world & ecs )
inlinestatic

Definition at line 78 of file Serializer.h.

79{
80 auto identifier = entity.get<Identifier>();
81 auto position = entity.get<Position>();
82 auto size = entity.get<Size>();
83 auto texture = entity.get<TextureComponent>();
84 auto visibility = entity.get<Visibility>();
85 auto moving = entity.get<Moving>();
86 auto marker_component = entity.get<MarkerComponent>();
87
88 serializeUInt64(buffer, identifier->id);
89 serializePosition(buffer, position);
90 serializeSize(buffer, size);
91 serializeMoving(buffer, moving);
92 serializeVisibility(buffer, visibility);
93 serializeTextureComponent(buffer, texture);
94 serializeMarkerComponent(buffer, marker_component);
95}
static void serializeMarkerComponent(std::vector< unsigned char > &buffer, const MarkerComponent *marker_component)
Definition Serializer.h:284
static void serializeMoving(std::vector< unsigned char > &buffer, const Moving *moving)
Definition Serializer.h:442
Here is the call graph for this function:

◆ serializeMoving()

void Serializer::serializeMoving ( std::vector< unsigned char > & buffer,
const Moving * moving )
inlinestatic

Definition at line 442 of file Serializer.h.

443{
444 serializeBool(buffer, moving->isDragging);
445}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializePanning()

void Serializer::serializePanning ( std::vector< unsigned char > & buffer,
const Panning * panning )
inlinestatic

Definition at line 470 of file Serializer.h.

471{
472 serializeBool(buffer, panning->isPanning);
473}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializePosition()

void Serializer::serializePosition ( std::vector< unsigned char > & buffer,
const Position * position )
inlinestatic

Definition at line 403 of file Serializer.h.

404{
405 serializeFloat(buffer, position->x);
406 serializeFloat(buffer, position->y);
407}
float y
Definition Components.h:21
float x
Definition Components.h:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeSize()

void Serializer::serializeSize ( std::vector< unsigned char > & buffer,
const Size * size )
inlinestatic

Definition at line 416 of file Serializer.h.

417{
418 serializeFloat(buffer, size->width);
419 serializeFloat(buffer, size->height);
420}
float height
Definition Components.h:28
float width
Definition Components.h:27
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeString()

void Serializer::serializeString ( std::vector< unsigned char > & buffer,
const std::string & str )
inlinestatic

Definition at line 318 of file Serializer.h.

319{
320 int length = static_cast<int>(str.size());
321 serializeInt(buffer, length);
322 buffer.insert(buffer.end(), str.begin(), str.end());
323}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeTextureComponent()

void Serializer::serializeTextureComponent ( std::vector< unsigned char > & buffer,
const TextureComponent * texture )
inlinestatic

Definition at line 454 of file Serializer.h.

455{
456 serializeInt(buffer, static_cast<int>(texture->textureID));
457 serializeString(buffer, texture->image_path);
458 serializeVec2(buffer, texture->size);
459}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeUInt32()

void Serializer::serializeUInt32 ( std::vector< unsigned char > & buffer,
uint32_t value )
inlinestatic

Definition at line 336 of file Serializer.h.

337{
338 buffer.insert(buffer.end(), reinterpret_cast<unsigned char*>(&value), reinterpret_cast<unsigned char*>(&value) + sizeof(uint32_t));
339}
Here is the caller graph for this function:

◆ serializeUInt64()

void Serializer::serializeUInt64 ( std::vector< unsigned char > & buffer,
uint64_t value )
inlinestatic

Definition at line 331 of file Serializer.h.

332{
333 buffer.insert(buffer.end(), reinterpret_cast<unsigned char*>(&value), reinterpret_cast<unsigned char*>(&value) + sizeof(uint64_t));
334}
Here is the caller graph for this function:

◆ serializeUInt8()

void Serializer::serializeUInt8 ( std::vector< unsigned char > & buffer,
uint8_t value )
inlinestatic

Definition at line 341 of file Serializer.h.

342{
343 buffer.push_back(static_cast<unsigned char>(value));
344}
Here is the caller graph for this function:

◆ serializeVec2()

void Serializer::serializeVec2 ( std::vector< unsigned char > & buffer,
const glm::vec2 & vec )
inlinestatic

Definition at line 325 of file Serializer.h.

326{
327 serializeFloat(buffer, vec.x);
328 serializeFloat(buffer, vec.y);
329}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ serializeVisibility()

void Serializer::serializeVisibility ( std::vector< unsigned char > & buffer,
const Visibility * visibility )
inlinestatic

Definition at line 430 of file Serializer.h.

431{
432 serializeBool(buffer, visibility->isVisible);
433}
Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: