Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
server_protocolhandler.h
Go to the documentation of this file.
1#ifndef SERVER_PROTOCOLHANDLER_H
2#define SERVER_PROTOCOLHANDLER_H
3
4#include "server.h"
6
7#include <QObject>
8#include <libcockatrice/protocol/pb/response.pb.h>
9#include <libcockatrice/protocol/pb/server_message.pb.h>
10
11class Features;
13class Server_Player;
14class ServerInfo_User;
15class Server_Room;
16class QTimer;
17class FeatureSet;
18
19class ServerMessage;
20class Response;
21class SessionEvent;
23class RoomEvent;
25
27class SessionCommand;
29class AdminCommand;
30
31class Command_Ping;
32class Command_Login;
34class Command_Message;
41class Command_RoomSay;
44
46{
47 Q_OBJECT
48protected:
49 QMap<int, Server_Room *> rooms;
50
51 bool deleted;
58 virtual void logDebugMessage(const QString & /* message */)
59 {
60 }
61
62private:
65
66 virtual void transmitProtocolItem(const ServerMessage &item) = 0;
67
80
83 processExtendedSessionCommand(int /* cmdType */, const SessionCommand & /* cmd */, ResponseContainer & /* rc */)
84 {
86 }
91 processExtendedModeratorCommand(int /* cmdType */, const ModeratorCommand & /* cmd */, ResponseContainer & /* rc */)
92 {
94 }
97 processExtendedAdminCommand(int /* cmdType */, const AdminCommand & /* cmd */, ResponseContainer & /* rc */)
98 {
100 }
101
102 void resetIdleTimer();
103private slots:
104 void pingClockTimeout();
105public slots:
106 void prepareDestroy();
107
108public:
109 Server_ProtocolHandler(Server *_server, Server_DatabaseInterface *_databaseInterface, QObject *parent = 0);
111
113 {
115 }
117 {
119 }
120 virtual QString getAddress() const = 0;
121 virtual QString getConnectionType() const = 0;
126
128 {
130 }
131 bool addSaidMessageSize(int size);
133
134 void sendProtocolItem(const Response &item);
135 void sendProtocolItem(const SessionEvent &item);
136 void sendProtocolItem(const GameEventContainer &item);
137 void sendProtocolItem(const RoomEvent &item);
138};
139
140#endif
Definition featureset.h:9
Definition server_response_containers.h:89
Server_AbstractUserInterface(Server *_server)
Definition server_abstractuserinterface.h:28
Definition server_database_interface.h:9
Definition server_player.h:7
void sendProtocolItem(const Response &item)
Definition server_protocolhandler.cpp:98
bool acceptsRoomListChanges
Definition server_protocolhandler.h:56
Response::ResponseCode processRoomCommandContainer(const CommandContainer &cont, ResponseContainer &rc)
Definition server_protocolhandler.cpp:201
void prepareDestroy()
Definition server_protocolhandler.cpp:50
Response::ResponseCode cmdGetUserInfo(const Command_GetUserInfo &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:701
virtual QString getConnectionType() const =0
Response::ResponseCode cmdCreateGame(const Command_CreateGame &cmd, Server_Room *room, ResponseContainer &rc)
Definition server_protocolhandler.cpp:884
void resetIdleTimer()
Definition server_protocolhandler.cpp:960
Response::ResponseCode cmdLeaveRoom(const Command_LeaveRoom &cmd, Server_Room *room, ResponseContainer &rc)
Definition server_protocolhandler.cpp:829
bool getAcceptsRoomListChanges() const
Definition server_protocolhandler.h:116
virtual Response::ResponseCode processExtendedAdminCommand(int, const AdminCommand &, ResponseContainer &)
Definition server_protocolhandler.h:97
int getLastCommandTime() const
Definition server_protocolhandler.h:127
Response::ResponseCode cmdMessage(const Command_Message &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:624
QList< int > messageCountOverTime
Definition server_protocolhandler.h:63
virtual void logDebugMessage(const QString &)
Definition server_protocolhandler.h:58
Response::ResponseCode cmdJoinRoom(const Command_JoinRoom &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:754
Response::ResponseCode cmdListUsers(const Command_ListUsers &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:804
Response::ResponseCode processGameCommandContainer(const CommandContainer &cont, ResponseContainer &rc)
Definition server_protocolhandler.cpp:243
void processCommandContainer(const CommandContainer &cont)
Definition server_protocolhandler.cpp:391
virtual void transmitProtocolItem(const ServerMessage &item)=0
virtual Response::ResponseCode processExtendedSessionCommand(int, const SessionCommand &, ResponseContainer &)
Definition server_protocolhandler.h:83
Response::ResponseCode processSessionCommandContainer(const CommandContainer &cont, ResponseContainer &rc)
Definition server_protocolhandler.cpp:134
Response::ResponseCode cmdListRooms(const Command_ListRooms &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:737
QMap< int, Server_Room * > rooms
Definition server_protocolhandler.h:49
Response::ResponseCode cmdGetGamesOfUser(const Command_GetGamesOfUser &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:661
Server_DatabaseInterface * databaseInterface
Definition server_protocolhandler.h:52
Response::ResponseCode cmdJoinGame(const Command_JoinGame &cmd, Server_Room *room, ResponseContainer &rc)
Definition server_protocolhandler.cpp:951
Response::ResponseCode cmdLogin(const Command_Login &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:487
virtual QString getAddress() const =0
void pingClockTimeout()
Definition server_protocolhandler.cpp:422
AuthenticationResult authState
Definition server_protocolhandler.h:53
QList< int > commandCountOverTime
Definition server_protocolhandler.h:63
int lastActionReceived
Definition server_protocolhandler.h:64
bool usingRealPassword
Definition server_protocolhandler.h:54
int timeRunning
Definition server_protocolhandler.h:64
Response::ResponseCode cmdRoomSay(const Command_RoomSay &cmd, Server_Room *room, ResponseContainer &rc)
Definition server_protocolhandler.cpp:865
bool getAcceptsUserListChanges() const
Definition server_protocolhandler.h:112
bool deleted
Definition server_protocolhandler.h:51
bool idleClientWarningSent
Definition server_protocolhandler.h:57
Server_ProtocolHandler(Server *_server, Server_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition server_protocolhandler.cpp:32
Response::ResponseCode cmdPing(const Command_Ping &cmd, ResponseContainer &rc)
Definition server_protocolhandler.cpp:482
Response::ResponseCode processModeratorCommandContainer(const CommandContainer &cont, ResponseContainer &rc)
Definition server_protocolhandler.cpp:337
Response::ResponseCode processAdminCommandContainer(const CommandContainer &cont, ResponseContainer &rc)
Definition server_protocolhandler.cpp:364
virtual Response::ResponseCode processExtendedModeratorCommand(int, const ModeratorCommand &, ResponseContainer &)
Definition server_protocolhandler.h:91
QList< int > messageSizeOverTime
Definition server_protocolhandler.h:63
int lastDataReceived
Definition server_protocolhandler.h:64
Server_DatabaseInterface * getDatabaseInterface() const
Definition server_protocolhandler.h:122
~Server_ProtocolHandler()
Definition server_protocolhandler.cpp:43
bool addSaidMessageSize(int size)
Definition server_protocolhandler.cpp:836
bool acceptsUserListChanges
Definition server_protocolhandler.h:55
Definition server_room.h:27
Definition server.h:46
AuthenticationResult
Definition server.h:32
Definition admin_commands.proto:2
Definition commands.proto:7
Definition room_commands.proto:24
Definition session_commands.proto:73
Definition session_commands.proto:79
Definition room_commands.proto:71
Definition session_commands.proto:104
Definition room_commands.proto:11
Definition session_commands.proto:99
Definition session_commands.proto:68
Definition session_commands.proto:50
Definition session_commands.proto:61
Definition session_commands.proto:45
Definition session_commands.proto:112
Definition room_commands.proto:16
Definition game_event_container.proto:4
Definition moderator_commands.proto:2
Definition response.proto:11
ResponseCode
Definition response.proto:14
@ RespFunctionNotAllowed
Client tried to perform a restricted action.
Definition response.proto:24
Definition room_event.proto:2
Definition serverinfo_user.proto:2
Definition server_message.proto:6
Definition session_commands.proto:2
Definition session_event.proto:2