#pragma once #include #include "reply_message.h" #include #include namespace LtsWebSocket { class LTSWEBSOCKETCOMMON_EXPORT AbstractClientMessage { public: AbstractClientMessage(ReplyHandler *client, const QString &type, const int typeId, const QString &uuid, const QJsonValue &data = QJsonValue()) : m_type(type) , m_typeId(typeId) , m_uuid(uuid) , m_data(data) , m_client(client) {} virtual ~AbstractClientMessage() = default; virtual void process() = 0; virtual bool hasValidData() const = 0; void reply(ReplyMessage *reply) { m_client->addReply(reply); } protected: const QString m_type; const int m_typeId; const QString m_uuid; const QJsonValue m_data; ReplyHandler *m_client; }; class LTSWEBSOCKETCOMMON_EXPORT InvalidMessage final : public AbstractClientMessage { public: explicit InvalidMessage(ReplyHandler *client, const QString &uuid, const QString &errorText); void process() override; bool hasValidData() const override; private: QString m_errorText; }; }