72 lines
1.9 KiB
C++
Executable File
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
|