mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-03-21 17:55:21 -05:00
Some checks are pending
Build Desktop / Configure (push) Waiting to run
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Debian, DEB, 12) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Debian, DEB, skip, 11) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Fedora, RPM, 41) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Fedora, RPM, skip, 40) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Ubuntu, DEB, 24.04) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Ubuntu, DEB, skip, 20.04) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (Ubuntu, DEB, skip, 22.04) (push) Blocked by required conditions
Build Desktop / ${{matrix.distro}} ${{matrix.version}} (yes, Arch, skip) (push) Blocked by required conditions
Build Desktop / macOS ${{matrix.target}}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }} (3, 1, macos-14, Apple, 14, Release, 15.4) (push) Blocked by required conditions
Build Desktop / macOS ${{matrix.target}}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }} (3, 1, macos-15, Apple, 15, Release, 16.2) (push) Blocked by required conditions
Build Desktop / macOS ${{matrix.target}}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }} (3, macos-15, Apple, 15, Debug, 16.2) (push) Blocked by required conditions
Build Desktop / macOS ${{matrix.target}}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }} (4, 1, macos-13, Intel, 13, Release, 14.3.1) (push) Blocked by required conditions
Build Desktop / Windows ${{matrix.target}} (msvc2019_64, 5.15.*, 7) (push) Blocked by required conditions
Build Desktop / Windows ${{matrix.target}} (msvc2019_64, qtimageformats qtmultimedia qtwebsockets, 6.6.*, 10) (push) Blocked by required conditions
64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
#ifndef SERVER_ABSTRACTUSERINTERFACE
|
|
#define SERVER_ABSTRACTUSERINTERFACE
|
|
|
|
#include "pb/response.pb.h"
|
|
#include "pb/server_message.pb.h"
|
|
#include "serverinfo_user_container.h"
|
|
|
|
#include <QMap>
|
|
#include <QMutex>
|
|
#include <QPair>
|
|
|
|
class SessionEvent;
|
|
class GameEventContainer;
|
|
class RoomEvent;
|
|
class ResponseContainer;
|
|
|
|
class Server;
|
|
class Server_Game;
|
|
|
|
class Server_AbstractUserInterface : public ServerInfo_User_Container
|
|
{
|
|
private:
|
|
mutable QMutex gameListMutex;
|
|
QMap<int, QPair<int, int>> games; // gameId -> (roomId, playerId)
|
|
protected:
|
|
Server *server;
|
|
|
|
public:
|
|
explicit Server_AbstractUserInterface(Server *_server) : server(_server)
|
|
{
|
|
}
|
|
Server_AbstractUserInterface(Server *_server, const ServerInfo_User_Container &other)
|
|
: ServerInfo_User_Container(other), server(_server)
|
|
{
|
|
}
|
|
~Server_AbstractUserInterface() override
|
|
{
|
|
}
|
|
|
|
virtual int getLastCommandTime() const = 0;
|
|
virtual bool addSaidMessageSize(int size) = 0;
|
|
|
|
void playerRemovedFromGame(Server_Game *game);
|
|
void playerAddedToGame(int gameId, int roomId, int playerId);
|
|
void joinPersistentGames(ResponseContainer &rc);
|
|
|
|
QMap<int, QPair<int, int>> getGames() const
|
|
{
|
|
QMutexLocker locker(&gameListMutex);
|
|
return games;
|
|
}
|
|
|
|
virtual void sendProtocolItem(const Response &item) = 0;
|
|
virtual void sendProtocolItem(const SessionEvent &item) = 0;
|
|
virtual void sendProtocolItem(const GameEventContainer &item) = 0;
|
|
virtual void sendProtocolItem(const RoomEvent &item) = 0;
|
|
void sendProtocolItemByType(ServerMessage::MessageType type, const ::google::protobuf::Message &item);
|
|
|
|
static SessionEvent *prepareSessionEvent(const ::google::protobuf::Message &sessionEvent);
|
|
void sendResponseContainer(const ResponseContainer &responseContainer, Response::ResponseCode responseCode);
|
|
};
|
|
|
|
#endif
|