/** * @RDE_HEADER@ * The ReplyMessage class is an abstract base class for all possible messages which are sent to the client * $Id: reply_message.h 58543 2022-12-05 13:40:10Z rathje $ * $HeadURL: svn://slssvn/TDS/branches/product/stable/guez2/Lts/Services/WarehouseGuez/WsBiteInterface/Messages/reply_message.h $ * $Author: rathje $ * Created by Hannes Fritsche, SLSE, 2017-09-07 */ #pragma once #include #include #include #include namespace WarehouseGuez { namespace WsBiteInterface { namespace Messages { class ReplyMessage { public: ReplyMessage() = default; //!< QVector requires this; don't use directly virtual ~ReplyMessage() = default; virtual QString toJsonString() const; protected: template static QJsonArray vecToPath(const QVector &data) { QJsonArray result; for (const T &p : data) result.append(p.toJson()); return result; } protected: // methods explicit ReplyMessage(const QString &type, const QString &uuid); protected: // attributes QJsonObject m_jsonRepresentation; }; // class Reply Message class ErrorMessage final : public ReplyMessage { public: struct ErrorData { int errorClass = 0; QString uuid; QString errorMessage; ErrorData() = default; explicit ErrorData(int errorClass_, const QString &uuid_, const QString &errorMessage_) : errorClass(errorClass_) , uuid(uuid_) , errorMessage(errorMessage_) {} }; explicit ErrorMessage(const ErrorData &data); explicit ErrorMessage(int errorClass, const QString &uuid, const QString &errorMessage) : ErrorMessage(ErrorData(errorClass, uuid, errorMessage)) {} }; // class ErrorMessage class OkMessage final : public ReplyMessage { public: struct OkData { QString uuid; QString messageType; QString info; }; explicit OkMessage(const OkData &data); }; // class OkMessage class BiteDataMessage final : public ReplyMessage { public: explicit BiteDataMessage(const QJsonObject &data, const QString &uuid); }; // BiteDataMessage } // namespace Messages } // namespace WsBiteInterface } // namespace WarehouseGuez