/** * @RDE_HEADER@ * The ClientMessage class is an abstract base class for concrete ClientMessage objects * $Id: client_message.h 58958 2023-02-13 11:26:20Z fritsche_h $ * $HeadURL: svn://slssvn/TDS/branches/product/stable/guez2/Lts/Services/WarehouseGuez/WsBiteInterface/Messages/client_message.h $ * $Author: fritsche_h $ * Created by Hannes Fritsche, SLSE, 2017-09-07 */ #pragma once #include #include "logger.h" namespace WarehouseGuez { namespace WsBiteInterface { class DataManager; namespace Messages { class MessageTransmitter; class ClientMessage { public: static ClientMessage *create(const QString &message, NGL::INGLLogger &logger); virtual void process(DataManager *dataManager, MessageTransmitter *transmitter) = 0; virtual bool hasValidData() const = 0; virtual ~ClientMessage() = default; ClientMessage(const QString &type, const QString &uuid, const QJsonObject &data = QJsonObject()); protected: // attributes const QString m_type; const QString m_uuid; const QJsonObject m_data; }; // class ClientMessage class GetBiteDataMessage final : public ClientMessage { public: void process(DataManager *dataManager, MessageTransmitter *transmitter) override; bool hasValidData() const override { return true; } using ClientMessage::ClientMessage; }; // class GetBiteDataMessage class InvalidMessage final : public ClientMessage { friend class ClientMessage; explicit InvalidMessage(const QString &uuid, const QString &errorText); public: void process(DataManager *dataManager, MessageTransmitter *transmitter) override; bool hasValidData() const override; using ClientMessage::ClientMessage; private: // attributes QString m_errorText; }; // class InvalidMessage } // namespace Messages } // namespace WsBiteInterface } // namespace WarehouseGuez