Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+84
@@ -0,0 +1,84 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* LTS web socket server - Abstract Client Message
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Philipp Dassow, SLST, 2017-11-28
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <LtsWebSocket/ltswebsocketcommon_export.h>
|
||||
#include "reply_message.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QJsonValue>
|
||||
|
||||
namespace LtsWebSocket
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief API for client message implementations that are needed by the LtsWebSocketServer
|
||||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
* @brief process Processes the messages data
|
||||
*/
|
||||
virtual void process() = 0;
|
||||
|
||||
/**
|
||||
* @brief hasValidData Validates the content of the message
|
||||
* @return True if the message is ICD conform, otherwise false
|
||||
*/
|
||||
virtual bool hasValidData() const = 0;
|
||||
|
||||
/**
|
||||
* @brief reply Send a Reply to the client that has send this message
|
||||
* @param reply
|
||||
*/
|
||||
void reply(ReplyMessage *reply)
|
||||
{
|
||||
m_client->addReply(reply);
|
||||
}
|
||||
|
||||
protected: // attributes
|
||||
const QString m_type;
|
||||
const int m_typeId;
|
||||
const QString m_uuid;
|
||||
const QJsonValue m_data;
|
||||
ReplyHandler *m_client;
|
||||
|
||||
}; // class AbstractClientMessage
|
||||
|
||||
// #################### basic error messages ####################
|
||||
|
||||
/**
|
||||
* @brief The InvalidMessage class represents any message from the client which either could
|
||||
* not be validated, is not JSON conform or has no type or uuid
|
||||
*/
|
||||
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: // attributes
|
||||
QString m_errorText;
|
||||
|
||||
}; // class InvalidMessage
|
||||
|
||||
} // namespace LtsWebSocket
|
||||
Reference in new issue
Block a user