Cockatrice 2026-10-19-Development-3.1.2-beta.2
A 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 <QFlags>
5#include <QList>
6#include <QPair>
7#include <algorithm>
8#include <libcockatrice/protocol/pb/server_message.pb.h>
9
10class GameEvent;
11
12namespace google
13{
14namespace protobuf
15{
16class Message;
17}
18} // namespace google
19class Server_Game;
20
22{
23public:
25 {
28 };
29 Q_DECLARE_FLAGS(EventRecipients, EventRecipient)
30private:
32 EventRecipients recipients;
33
34public:
35 GameEventStorageItem(const ::google::protobuf::Message &_event, int _playerId, EventRecipients _recipients);
37
38 [[nodiscard]] const GameEvent &getGameEvent() const
39 {
40 return *event;
41 }
42 [[nodiscard]] EventRecipients getRecipients() const
43 {
44 return recipients;
45 }
46};
47Q_DECLARE_OPERATORS_FOR_FLAGS(GameEventStorageItem::EventRecipients)
48
50{
51private:
52 ::google::protobuf::Message *gameEventContext;
55 int forcedByJudge = -1;
56 bool overwriteOwnership = false;
57
58public:
61
62 void setGameEventContext(const ::google::protobuf::Message &_gameEventContext);
63 [[nodiscard]] ::google::protobuf::Message *getGameEventContext() const
64 {
65 return gameEventContext;
66 }
68 {
69 return gameEventList;
70 }
71 [[nodiscard]] int getPrivatePlayerId() const
72 {
73 return privatePlayerId;
74 }
75 void setForcedByJudge(int playerId)
76 {
77 forcedByJudge = playerId;
78 }
79 void setOverwriteOwnership(bool shouldOverwriteOwnership)
80 {
81 overwriteOwnership = shouldOverwriteOwnership;
82 }
83
84 void enqueueGameEvent(const ::google::protobuf::Message &event,
85 int playerId,
86 GameEventStorageItem::EventRecipients recipients = GameEventStorageItem::SendToPrivate |
88 int _privatePlayerId = -1);
89 void sendToGame(Server_Game *game);
90};
91
93{
94private:
95 int cmdId;
96 ::google::protobuf::Message *responseExtension;
98
99public:
100 ResponseContainer(int _cmdId);
102
103 [[nodiscard]] int getCmdId() const
104 {
105 return cmdId;
106 }
107 void setResponseExtension(::google::protobuf::Message *_responseExtension)
108 {
109 responseExtension = _responseExtension;
110 }
111 [[nodiscard]] ::google::protobuf::Message *getResponseExtension() const
112 {
113 return responseExtension;
114 }
115 void enqueuePreResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
116 {
117 preResponseQueue.append(qMakePair(type, item));
118 }
119 void enqueuePostResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
120 {
121 postResponseQueue.append(qMakePair(type, item));
122 }
125 {
126 return preResponseQueue;
127 }
130 {
131 return postResponseQueue;
132 }
133};
134
135#endif
EventRecipient
Definition server_response_containers.h:25
@ SendToPrivate
Definition server_response_containers.h:26
@ SendToOthers
Definition server_response_containers.h:27
EventRecipients recipients
Definition server_response_containers.h:32
GameEvent * event
Definition server_response_containers.h:31
EventRecipients getRecipients() const
Definition server_response_containers.h:42
GameEventStorageItem(const ::google::protobuf::Message &_event, int _playerId, EventRecipients _recipients)
Definition server_response_containers.cpp:12
const GameEvent & getGameEvent() const
Definition server_response_containers.h:38
const QList< GameEventStorageItem * > & getGameEventList() const
Definition server_response_containers.h:67
bool overwriteOwnership
Definition server_response_containers.h:56
QList< GameEventStorageItem * > gameEventList
Definition server_response_containers.h:53
::google::protobuf::Message * gameEventContext
Definition server_response_containers.h:52
int getPrivatePlayerId() const
Definition server_response_containers.h:71
void setOverwriteOwnership(bool shouldOverwriteOwnership)
Definition server_response_containers.h:79
::google::protobuf::Message * getGameEventContext() const
Definition server_response_containers.h:63
void setGameEventContext(const ::google::protobuf::Message &_gameEventContext)
Definition server_response_containers.cpp:38
int forcedByJudge
Definition server_response_containers.h:55
void setForcedByJudge(int playerId)
Definition server_response_containers.h:75
int privatePlayerId
Definition server_response_containers.h:54
GameEventStorage()
Definition server_response_containers.cpp:26
Definition remote_connection_controller.h:20
int getCmdId() const
Definition server_response_containers.h:103
ResponseContainer(int _cmdId)
Definition server_response_containers.cpp:94
void setResponseExtension(::google::protobuf::Message *_responseExtension)
Definition server_response_containers.h:107
::google::protobuf::Message * responseExtension
Definition server_response_containers.h:96
QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > postResponseQueue
Definition server_response_containers.h:97
::google::protobuf::Message * getResponseExtension() const
Definition server_response_containers.h:111
void enqueuePreResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
Definition server_response_containers.h:115
int cmdId
Definition server_response_containers.h:95
QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > preResponseQueue
Definition server_response_containers.h:97
const QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > & getPreResponseQueue() const
Definition server_response_containers.h:124
void enqueuePostResponseItem(ServerMessage::MessageType type, ::google::protobuf::Message *item)
Definition server_response_containers.h:119
const QList< QPair< ServerMessage::MessageType, ::google::protobuf::Message * > > & getPostResponseQueue() const
Definition server_response_containers.h:129
Definition server_game.h:67
Definition game_event_handler.h:57
Definition game_event_handler.h:55
EmailType type
Definition smtpclient.cpp:30
Definition game_event.proto:4
MessageType
Definition server_message.proto:7