71 lines
1.9 KiB
C++
Executable File
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
|