Cockatrice 2026-09-01-Development-3.1.0-beta.10
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
5#include "intent.h"
6#include "remote_client.h"
7
8#include <QScopedPointer>
9#include <QString>
10#include <QTimer>
11#include <memory>
12
13class TabRoom;
14class TabSupervisor;
15class Event_ListRooms;
16class ServerInfo_Room;
17
30{
31 Q_OBJECT
32
33public:
35 RemoteClient *_remoteClient,
36 std::unique_ptr<ContextJoinRoom> _context,
37 const QString &_roomName);
38
39protected:
40 bool checkPrecondition() const override;
41 void onPreconditionSatisfied() override;
42 void onPreconditionNotSatisfied() override;
43
44private:
45 void processListRooms(const Event_ListRooms &event);
46 void openRoom(const ServerInfo_Room &roomInfo);
47 void handleJoinResponse(const Response &response);
49 bool selectOpenRoom();
50
53 QScopedPointer<ContextJoinRoom> context;
54 QString roomName;
55 bool listening = false;
56 bool joinPending = false;
57 QTimer checkTimer;
59};
60
61#endif // COCKATRICE_INTENT_OPEN_SERVER_ROOM_BY_NAME_H
ClientStatus
Definition abstract_client.h:42
bool selectOpenRoom()
Definition intent_open_server_room_by_name.cpp:108
void onPreconditionSatisfied() override
Definition intent_open_server_room_by_name.cpp:45
QString roomName
Definition intent_open_server_room_by_name.h:54
RemoteClient * remoteClient
Definition intent_open_server_room_by_name.h:52
QTimer refreshTimer
Definition intent_open_server_room_by_name.h:58
bool joinPending
Definition intent_open_server_room_by_name.h:56
QTimer checkTimer
Definition intent_open_server_room_by_name.h:57
void processListRooms(const Event_ListRooms &event)
Definition intent_open_server_room_by_name.cpp:122
bool checkPrecondition() const override
Definition intent_open_server_room_by_name.cpp:27
bool listening
Definition intent_open_server_room_by_name.h:55
TabSupervisor * tabSupervisor
Definition intent_open_server_room_by_name.h:51
void handleJoinResponse(const Response &response)
Definition intent_open_server_room_by_name.cpp:158
void onPreconditionNotSatisfied() override
Definition intent_open_server_room_by_name.cpp:96
IntentOpenServerRoomByName(TabSupervisor *_tabSupervisor, RemoteClient *_remoteClient, std::unique_ptr< ContextJoinRoom > _context, const QString &_roomName)
Definition intent_open_server_room_by_name.cpp:12
void onClientStatusChanged(ClientStatus status)
Definition intent_open_server_room_by_name.cpp:101
void openRoom(const ServerInfo_Room &roomInfo)
Definition intent_open_server_room_by_name.cpp:137
QScopedPointer< ContextJoinRoom > context
Definition intent_open_server_room_by_name.h:53
Intent(QObject *parent=nullptr)
Definition intent.cpp:3
Definition remote_client.h:22
Definition tab_room.h:51
Definition tab_supervisor.h:84
Definition event_list_rooms.proto:4
Definition response.proto:11
Definition serverinfo_room.proto:5