Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
single_instance_manager.h
Go to the documentation of this file.
1#ifndef COCKATRICE_SINGLE_INSTANCE_MANAGER_H
2#define COCKATRICE_SINGLE_INSTANCE_MANAGER_H
3
4#include <QObject>
5#include <QString>
6#include <QStringList>
7#include <qtmetamacros.h>
8
9class QLocalServer;
10
11class SingleInstanceManager : public QObject
12{
13 Q_OBJECT
14public:
15 explicit SingleInstanceManager(QObject *parent = nullptr);
16
17 // Returns true if this process became the primary instance, false if
18 // another instance is already running (and received our files).
19 bool tryRun(const QStringList &initialFiles);
20
21signals:
22 void filesReceived(const QStringList &files);
23
24private slots:
26
27private:
28 enum class ForwardResult
29 {
30 Delivered, // a live primary acknowledged the payload
31 NoPrimary, // no connectable primary socket exists
32 PrimaryBusy // a primary exists but did not acknowledge in time
33 };
34
35 ForwardResult forwardToPrimary(const QStringList &filesToSend);
36
37 QString serverName;
38 QLocalServer *server = nullptr;
39};
40
41#endif // COCKATRICE_SINGLE_INSTANCE_MANAGER_H
ForwardResult
Definition single_instance_manager.h:29
void filesReceived(const QStringList &files)
QLocalServer * server
Definition single_instance_manager.h:38
SingleInstanceManager(QObject *parent=nullptr)
Definition single_instance_manager.cpp:22
bool tryRun(const QStringList &initialFiles)
Definition single_instance_manager.cpp:26
void handleNewConnection()
Definition single_instance_manager.cpp:115
ForwardResult forwardToPrimary(const QStringList &filesToSend)
Definition single_instance_manager.cpp:74
QString serverName
Definition single_instance_manager.h:37