/** * @RDE_HEADER@ * LtsProjectionWorkstation Messages & Factory * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #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