ConnectX 3.0
ConnectX Game Suite
Loading...
Searching...
No Matches
serializer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5#include <memory>
8
14{
15public:
16 // ========================================================================
17 // Serialization (Message → JSON string)
18 // ========================================================================
19
20 static std::string serialize(const ConnectRequest &msg);
21 static std::string serialize(const ConnectResponse &msg);
22 static std::string serialize(const DisconnectMessage &msg);
23 static std::string serialize(const HeartbeatMessage &msg);
24
25 static std::string serialize(const MakeMoveRequest &msg);
26 static std::string serialize(const MoveResult &msg);
27 static std::string serialize(const GameStateUpdate &msg);
28 static std::string serialize(const GameOverMessage &msg);
29
30 static std::string serialize(const CreateGameRequest &msg);
31 static std::string serialize(const CreateGameResponse &msg);
32 static std::string serialize(const JoinGameRequest &msg);
33 static std::string serialize(const JoinGameResponse &msg);
34 static std::string serialize(const ListGamesRequest &msg);
35 static std::string serialize(const ListGamesResponse &msg);
36
37 static std::string serialize(const ErrorMessage &msg);
38
39 // ========================================================================
40 // Deserialization (JSON string → Message)
41 // ========================================================================
42
43 static ConnectRequest deserializeConnectRequest(const std::string &json);
44 static ConnectResponse deserializeConnectResponse(const std::string &json);
45 static DisconnectMessage deserializeDisconnect(const std::string &json);
46 static HeartbeatMessage deserializeHeartbeat(const std::string &json);
47
48 static MakeMoveRequest deserializeMakeMoveRequest(const std::string &json);
49 static MoveResult deserializeMoveResult(const std::string &json);
50 static GameStateUpdate deserializeGameStateUpdate(const std::string &json);
51 static GameOverMessage deserializeGameOver(const std::string &json);
52
53 static CreateGameRequest deserializeCreateGameRequest(const std::string &json);
54 static CreateGameResponse deserializeCreateGameResponse(const std::string &json);
55 static JoinGameRequest deserializeJoinGameRequest(const std::string &json);
56 static JoinGameResponse deserializeJoinGameResponse(const std::string &json);
57 static ListGamesRequest deserializeListGamesRequest(const std::string &json);
58 static ListGamesResponse deserializeGameListResponse(const std::string &json);
59
60 static ErrorMessage deserializeError(const std::string &json);
61
62 // ========================================================================
63 // Generic wrapper for type-tagged messages
64 // ========================================================================
65
69 static std::string wrapMessage(MessageType type, const std::string &payload);
70
75 static std::pair<MessageType, std::string> unwrapMessage(const std::string &json);
76
77 // ========================================================================
78 // Validation
79 // ========================================================================
80
84 static bool isValidJson(const std::string &json);
85
89 static bool isValidMessageSize(const std::string &json);
90};
Definition serializer.hpp:14
static bool isValidJson(const std::string &json)
Definition serializer.cpp:415
static CreateGameResponse deserializeCreateGameResponse(const std::string &json)
Definition serializer.cpp:240
static ErrorMessage deserializeError(const std::string &json)
Definition serializer.cpp:380
static bool isValidMessageSize(const std::string &json)
Definition serializer.cpp:428
static GameOverMessage deserializeGameOver(const std::string &json)
Definition serializer.cpp:184
static ConnectResponse deserializeConnectResponse(const std::string &json)
Definition serializer.cpp:65
static HeartbeatMessage deserializeHeartbeat(const std::string &json)
Definition serializer.cpp:97
static JoinGameRequest deserializeJoinGameRequest(const std::string &json)
Definition serializer.cpp:265
static MoveResult deserializeMoveResult(const std::string &json)
Definition serializer.cpp:134
static std::string serialize(const ConnectRequest &msg)
Definition serializer.cpp:39
static std::pair< MessageType, std::string > unwrapMessage(const std::string &json)
Definition serializer.cpp:401
static ListGamesResponse deserializeGameListResponse(const std::string &json)
Definition serializer.cpp:346
static DisconnectMessage deserializeDisconnect(const std::string &json)
Definition serializer.cpp:82
static ConnectRequest deserializeConnectRequest(const std::string &json)
Definition serializer.cpp:47
static MakeMoveRequest deserializeMakeMoveRequest(const std::string &json)
Definition serializer.cpp:117
static JoinGameResponse deserializeJoinGameResponse(const std::string &json)
Definition serializer.cpp:291
static std::string wrapMessage(MessageType type, const std::string &payload)
Definition serializer.cpp:393
static CreateGameRequest deserializeCreateGameRequest(const std::string &json)
Definition serializer.cpp:211
static ListGamesRequest deserializeListGamesRequest(const std::string &json)
Definition serializer.cpp:316
static GameStateUpdate deserializeGameStateUpdate(const std::string &json)
Definition serializer.cpp:158
MessageType
Definition messagetype.hpp:14
nlohmann::json json
Definition serializer.cpp:6
Definition messages.hpp:24
Definition messages.hpp:34
Definition messages.hpp:137
Definition messages.hpp:146
Definition messages.hpp:43
Definition messages.hpp:194
Definition messages.hpp:99
Definition messages.hpp:83
Definition messages.hpp:51
Definition messages.hpp:155
Definition messages.hpp:165
Definition messages.hpp:175
Definition messages.hpp:183
Definition messages.hpp:63
Definition messages.hpp:73