66 lines
1.6 KiB
C++
Executable File
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;
|
|
};
|
|
|
|
}
|