Continues migration with DDS, Common
This commit is contained in:
1 parent
9b15cee841
commit
fa48db111e
668 files changed
+111841
-2
No files matched your search
@@ -0,0 +1,84 @@
|
||||
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "lts_projection_workstation_export.h"
|
||||
#include "vnc_server_manager.h"
|
||||
#include "WebSocket/messages.h"
|
||||
#include "logger.h"
|
||||
|
||||
#include <LtsWebSocket/client_connection.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QPair>
|
||||
|
||||
namespace LtsWebSocket { class LtsWebSocketServer; }
|
||||
namespace LtsProjectionWorkstation
|
||||
{
|
||||
|
||||
struct LoginInformation
|
||||
{
|
||||
LoginInformation() = default;
|
||||
LoginInformation(int userId, int priority, int exerciseId, const QByteArray &settingsData)
|
||||
: m_settingsData(settingsData), m_userId(userId), m_priority(priority), m_exerciseId(exerciseId) {}
|
||||
|
||||
QByteArray m_settingsData;
|
||||
int m_userId = 0;
|
||||
int m_priority = 0;
|
||||
int m_exerciseId = 0;
|
||||
};
|
||||
|
||||
class MessageFactory;
|
||||
class LTSPROJECTIONWORKSTATION_EXPORT LtsProjectionWorkstation : public QObject, public AbstractMessageHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static LtsProjectionWorkstation *getInstance();
|
||||
static bool hasInstance();
|
||||
|
||||
const LoginInformation &lastLoginRequest() const { return m_lastLoginRequest; }
|
||||
LoginInformation pendingLoginRequest();
|
||||
bool hasPendingLoginRequest() const { return !!m_pendingLoginRequest; }
|
||||
void setProjectionOperatorPreset(const QString &operatorName, const QString &operatorPassword);
|
||||
const QPair<QString, QString> &projectionOperatorPreset() const { return m_projectionOperatorPreset; }
|
||||
|
||||
|
||||
void handleMessage(LtsWebSocket::AbstractClientMessage *message) override final;
|
||||
|
||||
public slots:
|
||||
void slotLoginRequestReceived(int userId, int exerciseId);
|
||||
void slotLogoutRequestReceived();
|
||||
|
||||
void slotLogoffDone();
|
||||
|
||||
signals:
|
||||
void signalLoginRequestReceived(int userId, int exerciseId);
|
||||
void signalLogoutRequestReceived();
|
||||
|
||||
private slots:
|
||||
void clientDisconnected(LtsWebSocket::ClientConnection* client);
|
||||
void clientConnected(LtsWebSocket::ClientConnection* client);
|
||||
|
||||
private:
|
||||
explicit LtsProjectionWorkstation(QObject *parent = nullptr);
|
||||
~LtsProjectionWorkstation();
|
||||
static void cleanupLtsProjectionWorkstation();
|
||||
|
||||
LOGGER_T m_logger;
|
||||
MessageFactory *m_messageFactory;
|
||||
LtsWebSocket::LtsWebSocketServer *m_webSocketServer;
|
||||
|
||||
|
||||
LoginInformation m_lastLoginRequest;
|
||||
|
||||
LoginInformation *m_pendingLoginRequest;
|
||||
QPair<QString , QString > m_projectionOperatorPreset;
|
||||
|
||||
QVector<LtsWebSocket::ClientConnection*> m_connections;
|
||||
|
||||
VncServerManager *m_vncManager;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user