Files
qt5-legatus-legacy/Lts/Common/LtsProjectionWorkstation/WebSocket/client_message.h
T
2026-08-13 18:33:10 +02:00

71 lines
1.9 KiB
C++
Executable File

/**
* @RDE_HEADER@
* LtsProjectionWorkstation Messages & Factory
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <LtsWebSocket/client_message_factory.h>
#include "logger.h"
namespace LtsProjectionWorkstation
{
class MessageHandler;
class ClientMessageFactory : public LtsWebSocket::AbstractClientMessageFactory
{
public:
explicit ClientMessageFactory(MessageHandler *messageHandler)
: LtsWebSocket::AbstractClientMessageFactory(getLogger("ClientMessageFactory"))
, m_messageHandler(messageHandler)
{}
// AbstractClientMessageFactory interface
LtsWebSocket::AbstractClientMessage *createMessage(LtsWebSocket::ReplyHandler *client, const QString &message) override final;
private:
MessageHandler *m_messageHandler;
}; // class ClientMessageFactory
class ClientMessage : public LtsWebSocket::AbstractClientMessage
{
public:
explicit ClientMessage(MessageHandler *messageHandler, LtsWebSocket::ReplyHandler *client, const QString &type, const QString &uuid, const QJsonValue &data)
: AbstractClientMessage(client, type, uuid, data)
, m_messageHandler(messageHandler)
{}
protected:
MessageHandler *m_messageHandler;
}; // class LoginRequest
class LoginRequest : public ClientMessage
{
public:
explicit LoginRequest(MessageHandler *messageHandler, LtsWebSocket::ReplyHandler *client, const QString &type, const QString &uuid, const QJsonValue &data)
: ClientMessage(messageHandler, client, type, uuid, data)
{}
void process();
bool hasValidData() const;
}; // class LoginRequest
class LogoutRequest : public ClientMessage
{
public:
explicit LogoutRequest(MessageHandler *messageHandler, LtsWebSocket::ReplyHandler *client, const QString &type, const QString &uuid, const QJsonValue &data)
: ClientMessage(messageHandler, client, type, uuid, data)
{}
void process();
bool hasValidData() const;
}; // class LogoutRequest
} // LtsProjectionWorkstation