Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
server_database_interface.h
Go to the documentation of this file.
1#ifndef SERVER_DATABASE_INTERFACE_H
2#define SERVER_DATABASE_INTERFACE_H
3
4#include "server.h"
5
6#include <QObject>
7
8class Server_DatabaseInterface : public QObject
9{
10 Q_OBJECT
11public:
12 explicit Server_DatabaseInterface(QObject *parent = nullptr) : QObject(parent)
13 {
14 }
15
17 const QString &user,
18 const QString &password,
19 const QString &clientId,
20 QString &reasonStr,
21 int &secondsLeft,
22 bool passwordNeedsHash) = 0;
23 virtual bool checkUserIsBanned(const QString & /* ipAddress */,
24 const QString & /* userName */,
25 const QString & /* clientId */,
26 QString & /* banReason */,
27 int & /* banSecondsRemaining */)
28 {
29 return false;
30 }
31 virtual bool activeUserExists(const QString & /* user */)
32 {
33 return false;
34 }
35 virtual bool userExists(const QString & /* user */)
36 {
37 return false;
38 }
39 virtual QString getUserSalt(const QString & /* user */)
40 {
41 return {};
42 }
43 virtual QMap<QString, ServerInfo_User> getBuddyList(const QString & /* name */)
44 {
45 return QMap<QString, ServerInfo_User>();
46 }
47 virtual QMap<QString, ServerInfo_User> getIgnoreList(const QString & /* name */)
48 {
49 return QMap<QString, ServerInfo_User>();
50 }
51 virtual bool isInBuddyList(const QString & /* whoseList */, const QString & /* who */)
52 {
53 return false;
54 }
55 virtual bool isInIgnoreList(const QString & /* whoseList */, const QString & /* who */)
56 {
57 return false;
58 }
59 virtual ServerInfo_User getUserData(const QString &name, bool withId = false) = 0;
60 virtual void storeGameInformation(const QString & /* roomName */,
61 const QStringList & /* roomGameTypes */,
62 const ServerInfo_Game & /* gameInfo */,
63 const QSet<QString> & /* allPlayersEver */,
64 const QSet<QString> & /* allSpectatorsEver */,
65 const QList<GameReplay *> & /* replayList */)
66 {
67 }
68 virtual DeckList *getDeckFromDatabase(int /* deckId */, int /* userId */)
69 {
70 return 0;
71 }
72 virtual bool removeForgotPassword(const QString & /* user */)
73 {
74 return false;
75 }
76 virtual qint64 startSession(const QString & /* userName */,
77 const QString & /* address */,
78 const QString & /* clientId */,
79 const QString & /* connectionType */)
80 {
81 return 0;
82 }
83 virtual bool usernameIsValid(const QString & /*userName */, QString & /* error */)
84 {
85 return true;
86 }
87public slots:
88 virtual void endSession(qint64 /* sessionId */)
89 {
90 }
91
92public:
93 virtual int getNextGameId() = 0;
94 virtual int getNextReplayId() = 0;
95 virtual int getActiveUserCount(QString connectionType = QString()) = 0;
96
97 virtual void clearSessionTables()
98 {
99 }
100 virtual void lockSessionTables()
101 {
102 }
103 virtual void unlockSessionTables()
104 {
105 }
106 virtual bool userSessionExists(const QString & /* userName */)
107 {
108 return false;
109 }
110
112 {
113 return false;
114 }
115 virtual bool registerUser(const QString & /* userName */,
116 const QString & /* realName */,
117 const QString & /* password */,
118 bool /* passwordNeedsHash */,
119 const QString & /* emailAddress */,
120 const QString & /* country */,
121 bool /* active = false */)
122 {
123 return false;
124 }
125 virtual bool activateUser(const QString & /* userName */, const QString & /* token */)
126 {
127 return false;
128 }
129 virtual void updateUsersClientID(const QString & /* userName */, const QString & /* userClientID */)
130 {
131 }
132 virtual void updateUsersLastLoginData(const QString & /* userName */, const QString & /* clientVersion */)
133 {
134 }
135
143 virtual void logMessage(const int /* senderId */,
144 const QString & /* senderName */,
145 const QString & /* senderIp */,
146 const QString & /* logMessage */,
147 LogMessage_TargetType /* targetType */,
148 const int /* targetId */,
149 const QString & /* targetName */)
150 {
151 }
152 virtual bool checkUserIsBanned(Server_ProtocolHandler * /* session */,
153 QString & /* banReason */,
154 int & /* banSecondsRemaining */)
155 {
156 return false;
157 }
158 virtual int checkNumberOfUserAccounts(const QString & /* email */)
159 {
160 return 0;
161 }
162 virtual bool
163 changeUserPassword(const QString & /* user */, const QString & /* password */, bool /* passwordNeedsHash */)
164 {
165 return false;
166 }
167 virtual bool changeUserPassword(const QString & /* user */,
168 const QString & /* oldPassword */,
169 bool /* oldPasswordNeedsHash */,
170 const QString & /* newPassword */,
171 bool /* newPasswordNeedsHash */)
172 {
173 return false;
174 }
175};
176
177#endif
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:127
virtual bool activeUserExists(const QString &)
Definition server_database_interface.h:31
virtual bool getRequireRegistration()
Definition server_database_interface.h:111
virtual void storeGameInformation(const QString &, const QStringList &, const ServerInfo_Game &, const QSet< QString > &, const QSet< QString > &, const QList< GameReplay * > &)
Definition server_database_interface.h:60
virtual int getActiveUserCount(QString connectionType=QString())=0
virtual bool userSessionExists(const QString &)
Definition server_database_interface.h:106
virtual int checkNumberOfUserAccounts(const QString &)
Definition server_database_interface.h:158
virtual DeckList * getDeckFromDatabase(int, int)
Definition server_database_interface.h:68
virtual void endSession(qint64)
Definition server_database_interface.h:88
virtual ServerInfo_User getUserData(const QString &name, bool withId=false)=0
virtual int getNextGameId()=0
virtual bool isInIgnoreList(const QString &, const QString &)
Definition server_database_interface.h:55
virtual void logMessage(const int, const QString &, const QString &, const QString &, LogMessage_TargetType, const int, const QString &)
Definition server_database_interface.h:143
virtual void unlockSessionTables()
Definition server_database_interface.h:103
virtual QString getUserSalt(const QString &)
Definition server_database_interface.h:39
virtual int getNextReplayId()=0
virtual void clearSessionTables()
Definition server_database_interface.h:97
virtual qint64 startSession(const QString &, const QString &, const QString &, const QString &)
Definition server_database_interface.h:76
virtual void lockSessionTables()
Definition server_database_interface.h:100
virtual bool registerUser(const QString &, const QString &, const QString &, bool, const QString &, const QString &, bool)
Definition server_database_interface.h:115
virtual bool changeUserPassword(const QString &, const QString &, bool)
Definition server_database_interface.h:163
virtual void updateUsersClientID(const QString &, const QString &)
Definition server_database_interface.h:129
LogMessage_TargetType
Definition server_database_interface.h:137
@ MessageTargetIslRoom
Definition server_database_interface.h:141
@ MessageTargetGame
Definition server_database_interface.h:139
@ MessageTargetRoom
Definition server_database_interface.h:138
@ MessageTargetChat
Definition server_database_interface.h:140
virtual bool userExists(const QString &)
Definition server_database_interface.h:35
Server_DatabaseInterface(QObject *parent=nullptr)
Definition server_database_interface.h:12
virtual AuthenticationResult checkUserPassword(Server_ProtocolHandler *handler, const QString &user, const QString &password, const QString &clientId, QString &reasonStr, int &secondsLeft, bool passwordNeedsHash)=0
virtual bool checkUserIsBanned(const QString &, const QString &, const QString &, QString &, int &)
Definition server_database_interface.h:23
virtual bool checkUserIsBanned(Server_ProtocolHandler *, QString &, int &)
Definition server_database_interface.h:152
virtual bool removeForgotPassword(const QString &)
Definition server_database_interface.h:72
virtual QMap< QString, ServerInfo_User > getBuddyList(const QString &)
Definition server_database_interface.h:43
virtual bool changeUserPassword(const QString &, const QString &, bool, const QString &, bool)
Definition server_database_interface.h:167
virtual bool activateUser(const QString &, const QString &)
Definition server_database_interface.h:125
virtual bool usernameIsValid(const QString &, QString &)
Definition server_database_interface.h:83
virtual void updateUsersLastLoginData(const QString &, const QString &)
Definition server_database_interface.h:132
virtual bool isInBuddyList(const QString &, const QString &)
Definition server_database_interface.h:51
virtual QMap< QString, ServerInfo_User > getIgnoreList(const QString &)
Definition server_database_interface.h:47
Definition server_protocolhandler.h:46
AuthenticationResult
Definition server.h:32