Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
server_response_containers.h
Go to the documentation of this file.
1#ifndef SERVER_RESPONSE_CONTAINERS_H
2#define SERVER_RESPONSE_CONTAINERS_H
3
4#include <QList>
5#include <QPair>
6#include <libcockatrice/protocol/pb/server_message.pb.h>
7
8namespace google
9{
10namespace protobuf
11{
12class Message;
13}
14} // namespace google
15class Server_Game;
16
18{
19public:
21 {
24 };
25 Q_DECLARE_FLAGS(EventRecipients, EventRecipient)
26private:
27 GameEvent *event;
28 EventRecipients recipients;
29
30public:
31 GameEventStorageItem(const ::google::protobuf::Message &_event, int _playerId, EventRecipients _recipients);
33
34 [[nodiscard]] const GameEvent &getGameEvent() const
35 {
36 return *event;
37 }
38 [[nodiscard]] EventRecipients getRecipients() const
39 {
40 return recipients;
41 }
42};
43Q_DECLARE_OPERATORS_FOR_FLAGS(GameEventStorageItem::EventRecipients)
44
46{
47private:
48 ::google::protobuf::Message *gameEventContext;
49 QList<GameEventStorageItem *> gameEventList;
51 int forcedByJudge = -1;
52 bool overwriteOwnership = false;
53
54public:
57
58 void setGameEventContext(const ::google::protobuf::Message &_gameEventContext);
59 [[nodiscard]] ::google::protobuf::Message *getGameEventContext() const
60 {
61 return gameEventContext;
62 }
63 [[nodiscard]] const QList<GameEventStorageItem *> &getGameEventList() const
64 {
65 return gameEventList;
66 }
67 [[nodiscard]] int getPrivatePlayerId() const
68 {
69 return privatePlayerId;
70 }
71 void setForcedByJudge(int playerId)
72 {
73 forcedByJudge = playerId;
74 }
75 void setOverwriteOwnership(bool shouldOverwriteOwnership)
76 {
77 overwriteOwnership = shouldOverwriteOwnership;
78 }
79
80 void enqueueGameEvent(const ::google::protobuf::Message &event,
81 int playerId,
82 GameEventStorageItem::EventRecipients recipients = GameEventStorageItem::SendToPrivate |
84 int _privatePlayerId = -1);
85 void sendToGame(Server_Game *game);
86};
87
89{
90private:
91 int cmdId;
92 ::google::protobuf::Message *responseExtension;
93 QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> preResponseQueue, postResponseQueue;
94
95public:
96 ResponseContainer(int _cmdId);
98
99 [[nodiscard]] int getCmdId() const
100 {
101 return cmdId;
102 }
103 void setResponseExtension(::google::protobuf::Message *_responseExtension)
104 {
105 responseExtension = _responseExtension;
106 }
107 [[nodiscard]] ::google::protobuf::Message *getResponseExtension() const
108 {
109 return responseExtension;
110 }
111 void enqueuePreResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
112 {
113 preResponseQueue.append(qMakePair(type, item));
114 }
115 void enqueuePostResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
116 {
117 postResponseQueue.append(qMakePair(type, item));
118 }
119 [[nodiscard]] const QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> &
121 {
122 return preResponseQueue;
123 }
124 [[nodiscard]] const QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> &
126 {
127 return postResponseQueue;
128 }
129};
130
131#endif
~GameEventStorageItem()
Definition server_response_containers.cpp:16
EventRecipient
Definition server_response_containers.h:21
@ SendToPrivate
Definition server_response_containers.h:22
@ SendToOthers
Definition server_response_containers.h:23
EventRecipients recipients
Definition server_response_containers.h:28
GameEvent * event
Definition server_response_containers.h:27
EventRecipients getRecipients() const
Definition server_response_containers.h:38
GameEventStorageItem(const ::google::protobuf::Message &_event, int _playerId, EventRecipients _recipients)
Definition server_response_containers.cpp:7
const GameEvent & getGameEvent() const
Definition server_response_containers.h:34
const QList< GameEventStorageItem * > & getGameEventList() const
Definition server_response_containers.h:63
bool overwriteOwnership
Definition server_response_containers.h:52
QList< GameEventStorageItem * > gameEventList
Definition server_response_containers.h:49
::google::protobuf::Message * gameEventContext
Definition server_response_containers.h:48
int getPrivatePlayerId() const
Definition server_response_containers.h:67
void setOverwriteOwnership(bool shouldOverwriteOwnership)
Definition server_response_containers.h:75
::google::protobuf::Message * getGameEventContext() const
Definition server_response_containers.h:59
void setGameEventContext(const ::google::protobuf::Message &_gameEventContext)
Definition server_response_containers.cpp:32
int forcedByJudge
Definition server_response_containers.h:51
void setForcedByJudge(int playerId)
Definition server_response_containers.h:71
int privatePlayerId
Definition server_response_containers.h:50
GameEventStorage()
Definition server_response_containers.cpp:21
int getCmdId() const
Definition server_response_containers.h:99
ResponseContainer(int _cmdId)
Definition server_response_containers.cpp:84
~ResponseContainer()
Definition server_response_containers.cpp:88
void setResponseExtension(::google::protobuf::Message *_responseExtension)
Definition server_response_containers.h:103
::google::protobuf::Message * responseExtension
Definition server_response_containers.h:92
QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > postResponseQueue
Definition server_response_containers.h:93
::google::protobuf::Message * getResponseExtension() const
Definition server_response_containers.h:107
void enqueuePreResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
Definition server_response_containers.h:111
int cmdId
Definition server_response_containers.h:91
QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > preResponseQueue
Definition server_response_containers.h:93
const QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > & getPreResponseQueue() const
Definition server_response_containers.h:120
void enqueuePostResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
Definition server_response_containers.h:115
const QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > & getPostResponseQueue() const
Definition server_response_containers.h:125
Definition server_game.h:47
Definition phases_toolbar.h:20
Definition phases_toolbar.h:18