Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
intent_open_server_room_by_name.h
Go to the documentation of this file.
1#ifndef COCKATRICE_INTENT_OPEN_SERVER_ROOM_BY_NAME_H
2#define COCKATRICE_INTENT_OPEN_SERVER_ROOM_BY_NAME_H
3
4#include "abstract_client.h"
6#include "intent.h"
7
8#include <QScopedPointer>
9#include <QString>
10#include <QTimer>
11#include <memory>
12#include <qtmetamacros.h>
13
14class TabSupervisor;
15class Event_ListRooms;
16class ServerInfo_Room;
17class RemoteClient;
18class Response;
19
32{
33 Q_OBJECT
34
35public:
37 RemoteClient *_remoteClient,
38 std::unique_ptr<ContextJoinRoom> _context,
39 const QString &_roomName);
40
41protected:
42 bool checkPrecondition() const override;
43 void onPreconditionSatisfied() override;
44 void onPreconditionNotSatisfied() override;
45
46private:
47 void processListRooms(const Event_ListRooms &event);
48 void openRoom(const ServerInfo_Room &roomInfo);
49 void handleJoinResponse(const Response &response);
51 bool selectOpenRoom();
52
55 QScopedPointer<ContextJoinRoom> context;
56 QString roomName;
57 bool listening = false;
58 bool joinPending = false;
59 QTimer checkTimer;
61};
62
63#endif // COCKATRICE_INTENT_OPEN_SERVER_ROOM_BY_NAME_H
ClientStatus
Definition abstract_client.h:58
bool selectOpenRoom()
Definition intent_open_server_room_by_name.cpp:117
void onPreconditionSatisfied() override
Definition intent_open_server_room_by_name.cpp:54
QString roomName
Definition intent_open_server_room_by_name.h:56
RemoteClient * remoteClient
Definition intent_open_server_room_by_name.h:54
QTimer refreshTimer
Definition intent_open_server_room_by_name.h:60
bool joinPending
Definition intent_open_server_room_by_name.h:58
QTimer checkTimer
Definition intent_open_server_room_by_name.h:59
void processListRooms(const Event_ListRooms &event)
Definition intent_open_server_room_by_name.cpp:131
bool checkPrecondition() const override
Definition intent_open_server_room_by_name.cpp:36
bool listening
Definition intent_open_server_room_by_name.h:57
TabSupervisor * tabSupervisor
Definition intent_open_server_room_by_name.h:53
void handleJoinResponse(const Response &response)
Definition intent_open_server_room_by_name.cpp:167
void onPreconditionNotSatisfied() override
Definition intent_open_server_room_by_name.cpp:105
IntentOpenServerRoomByName(TabSupervisor *_tabSupervisor, RemoteClient *_remoteClient, std::unique_ptr< ContextJoinRoom > _context, const QString &_roomName)
Definition intent_open_server_room_by_name.cpp:21
void onClientStatusChanged(ClientStatus status)
Definition intent_open_server_room_by_name.cpp:110
void openRoom(const ServerInfo_Room &roomInfo)
Definition intent_open_server_room_by_name.cpp:146
QScopedPointer< ContextJoinRoom > context
Definition intent_open_server_room_by_name.h:55
Intent(QObject *parent=nullptr)
Definition intent.cpp:3
Definition remote_client.h:34
Definition tab_supervisor.h:92
Definition event_list_rooms.proto:4
Definition response.proto:11
Definition serverinfo_room.proto:6