Implemented new command-response-based interface for the TargetController

This commit is contained in:
Nav
2022-04-17 23:55:34 +01:00
parent 8d26340c41
commit 13f5c13065
9 changed files with 440 additions and 111 deletions

View File

@@ -0,0 +1,22 @@
#pragma once
#include "Response.hpp"
namespace Bloom::TargetController::Responses
{
class Error: public Response
{
public:
static constexpr ResponseType type = ResponseType::ERROR;
std::string errorMessage;
explicit Error(const std::string& errorMessage)
: errorMessage(errorMessage)
{}
[[nodiscard]] ResponseType getType() const override {
return Error::type;
}
};
}

View File

@@ -0,0 +1,25 @@
#pragma once
#include "ResponseTypes.hpp"
namespace Bloom::TargetController::Responses
{
class Response
{
public:
static constexpr ResponseType type = ResponseType::GENERIC;
Response() = default;
virtual ~Response() = default;
Response(const Response& other) = default;
Response(Response&& other) = default;
Response& operator = (const Response& other) = default;
Response& operator = (Response&& other) = default;
[[nodiscard]] virtual ResponseType getType() const {
return Response::type;
}
};
}

View File

@@ -0,0 +1,12 @@
#pragma once
#include <cstdint>
namespace Bloom::TargetController::Responses
{
enum class ResponseType: std::uint8_t
{
GENERIC,
ERROR,
};
}