working dispatcher + factory
All checks were successful
Linux arm64 / Build (push) Successful in 1m17s

This commit is contained in:
2025-06-25 19:33:11 +02:00
parent 392fcb3d17
commit 10b49b34dd
35 changed files with 315 additions and 1472 deletions

View File

@@ -0,0 +1,29 @@
#pragma once
#include <sp/protocol/MessageBase.h>
namespace sp {
template <typename TData, typename TMessageID, TMessageID ID, typename THandler>
class ConcreteMessage : public MessageBase<TMessageID, THandler> {
public:
using DataType = TData;
template <typename... T>
ConcreteMessage(const T&... args) : m_Data{args...} {}
virtual ~ConcreteMessage() {}
virtual constexpr TMessageID GetId() const override {
return ID;
}
virtual void Dispatch(THandler& handler) const override {
handler.Handle(static_cast<const ConcreteMessage<TData, TMessageID, ID, THandler>&>(*this));
}
private:
DataType m_Data;
};
} // namespace sp