Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
server_abstractuserinterface.h
Go to the documentation of this file.
1#ifndef SERVER_ABSTRACTUSERINTERFACE
2#define SERVER_ABSTRACTUSERINTERFACE
3
5
6#include <QMap>
7#include <QMutex>
8#include <QMutexLocker>
9#include <QPair>
10#include <libcockatrice/protocol/pb/response.pb.h>
11#include <libcockatrice/protocol/pb/server_message.pb.h>
12
13class SessionEvent;
15class RoomEvent;
17class Server;
18class Server_Game;
19namespace google
20{
21namespace protobuf
22{
23class Message;
24} // namespace protobuf
25} // namespace google
26
28{
29private:
30 mutable QMutex gameListMutex;
31 QMap<int, QPair<int, int>> games; // gameId -> (roomId, playerId)
32protected:
34
35public:
36 explicit Server_AbstractUserInterface(Server *_server) : server(_server)
37 {
38 }
40 : ServerInfo_User_Container(other), server(_server)
41 {
42 }
44 {
45 }
46
47 virtual int getLastCommandTime() const = 0;
48 virtual bool addSaidMessageSize(int size) = 0;
49
51 void playerAddedToGame(int gameId, int roomId, int playerId);
53 virtual void onLogin(ResponseContainer &rc);
54
56 {
57 QMutexLocker locker(&gameListMutex);
58 return games;
59 }
60
61 virtual void sendProtocolItem(const Response &item) = 0;
62 virtual void sendProtocolItem(const SessionEvent &item) = 0;
63 virtual void sendProtocolItem(const GameEventContainer &item) = 0;
64 virtual void sendProtocolItem(const RoomEvent &item) = 0;
65 void sendProtocolItemByType(ServerMessage::MessageType type, const ::google::protobuf::Message &item);
66
67 static SessionEvent *prepareSessionEvent(const ::google::protobuf::Message &sessionEvent);
68 void sendResponseContainer(const ResponseContainer &responseContainer, Response::ResponseCode responseCode);
69};
70
71#endif
Definition game.h:18
Definition server_response_containers.h:93
ServerInfo_User_Container(ServerInfo_User *_userInfo=nullptr)
Definition serverinfo_user_container.cpp:5
QMap< int, QPair< int, int > > getGames() const
Definition server_abstractuserinterface.h:55
QMap< int, QPair< int, int > > games
Definition server_abstractuserinterface.h:31
virtual void sendProtocolItem(const SessionEvent &item)=0
~Server_AbstractUserInterface() override
Definition server_abstractuserinterface.h:43
virtual bool addSaidMessageSize(int size)=0
void joinPersistentGames(ResponseContainer &rc)
Definition server_abstractuserinterface.cpp:103
virtual void onLogin(ResponseContainer &rc)
Definition server_abstractuserinterface.cpp:83
static SessionEvent * prepareSessionEvent(const ::google::protobuf::Message &sessionEvent)
Definition server_abstractuserinterface.cpp:45
virtual int getLastCommandTime() const =0
virtual void sendProtocolItem(const RoomEvent &item)=0
virtual void sendProtocolItem(const GameEventContainer &item)=0
Server_AbstractUserInterface(Server *_server)
Definition server_abstractuserinterface.h:36
void sendProtocolItemByType(ServerMessage::MessageType type, const ::google::protobuf::Message &item)
Definition server_abstractuserinterface.cpp:26
void playerRemovedFromGame(Server_Game *game)
Definition server_abstractuserinterface.cpp:87
void playerAddedToGame(int gameId, int roomId, int playerId)
Definition server_abstractuserinterface.cpp:95
QMutex gameListMutex
Definition server_abstractuserinterface.h:30
Server * server
Definition server_abstractuserinterface.h:33
virtual void sendProtocolItem(const Response &item)=0
Server_AbstractUserInterface(Server *_server, const ServerInfo_User_Container &other)
Definition server_abstractuserinterface.h:39
void sendResponseContainer(const ResponseContainer &responseContainer, Response::ResponseCode responseCode)
Definition server_abstractuserinterface.cpp:54
Definition server_game.h:67
Definition server.h:48
Definition game_event_handler.h:57
Definition game_event_handler.h:55
EmailType type
Definition smtpclient.cpp:30
Definition game_event_container.proto:4
Definition response.proto:11
ResponseCode
Definition response.proto:14
Definition room_event.proto:2
MessageType
Definition server_message.proto:7
Definition session_event.proto:2