Files
qt6-migration-pipeline/Lts/Common/LtsProjectionWorkstation/WebSocket/client_message.h
T

66 lines
1.6 KiB
C++
Executable File

#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)
{}
LtsWebSocket::AbstractClientMessage *createMessage(LtsWebSocket::ReplyHandler *client, const QString &message) override final;
private:
MessageHandler *m_messageHandler;
};
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 : 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 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;
};
}