111 lines
2.4 KiB
C++
Executable File
111 lines
2.4 KiB
C++
Executable File
|
|
|
|
#pragma once
|
|
|
|
#include <QtCore/QJsonObject>
|
|
|
|
#include "logger.h"
|
|
|
|
namespace CombatNetRadio
|
|
{
|
|
class ExerciseManager;
|
|
|
|
namespace WebSocketInterface
|
|
{
|
|
|
|
namespace Messages
|
|
{
|
|
class MessageTransmitter;
|
|
|
|
class ClientMessage
|
|
{
|
|
public:
|
|
static ClientMessage *create(const QString &message, NGL::INGLLogger &logger);
|
|
|
|
virtual void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) = 0;
|
|
virtual bool hasValidData() const = 0;
|
|
virtual ~ClientMessage() = default;
|
|
ClientMessage(const QString &type, const QString &uuid, const QJsonObject &data = QJsonObject());
|
|
|
|
protected:
|
|
const QString m_type;
|
|
const QString m_uuid;
|
|
const QJsonObject m_data;
|
|
|
|
};
|
|
|
|
|
|
class GetEssentialsMessage final : public ClientMessage
|
|
{
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override { return true; }
|
|
|
|
using ClientMessage::ClientMessage;
|
|
};
|
|
|
|
class GetConfigCnrMessage final : public ClientMessage
|
|
{
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override { return true; }
|
|
|
|
using ClientMessage::ClientMessage;
|
|
};
|
|
|
|
class GetPositionsCnrMessage final : public ClientMessage
|
|
{
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override;
|
|
|
|
using ClientMessage::ClientMessage;
|
|
};
|
|
|
|
class AliveRequest final : public ClientMessage
|
|
{
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override { return true; }
|
|
|
|
using ClientMessage::ClientMessage;
|
|
};
|
|
|
|
|
|
class OkMessageC final : public ClientMessage
|
|
{
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override { return true; }
|
|
|
|
using ClientMessage::ClientMessage;
|
|
};
|
|
|
|
class ConfigCnrMessageC final : public ClientMessage
|
|
{
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override { return true; }
|
|
|
|
using ClientMessage::ClientMessage;
|
|
};
|
|
|
|
class InvalidMessage final : public ClientMessage
|
|
{
|
|
friend class ClientMessage;
|
|
|
|
public:
|
|
void process(ExerciseManager *exerciseManager, MessageTransmitter *transmitter) override;
|
|
bool hasValidData() const override;
|
|
|
|
using ClientMessage::ClientMessage;
|
|
|
|
private:
|
|
QString m_errorText;
|
|
|
|
};
|
|
|
|
}
|
|
}
|
|
}
|