Files
qt5-legatus-legacy/Lts/Services/WarehouseGuez/WsBiteInterface/Messages/ws_client_message.h
T
2026-08-13 18:33:10 +02:00

72 lines
1.9 KiB
C++
Executable File

/**
* @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 <QtCore/QJsonObject>
#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