fix concretemessage
All checks were successful
Linux arm64 / Build (push) Successful in 16s

This commit is contained in:
2025-07-18 17:27:58 +02:00
parent 143b2f357c
commit 45a3c427fb
3 changed files with 12 additions and 8 deletions

View File

@@ -133,7 +133,7 @@ namespace sp
{ {
public: public:
virtual ~GenericHandler() {} virtual ~GenericHandler() {}
// virtual void Handle(const TCommon&) {} //Nothing to do virtual void Handle() {} //Nothing to do
}; };
} // sp } // sp

View File

@@ -22,7 +22,7 @@ class ConcreteMessage : public MessageBase {
} }
virtual void Dispatch(HandlerType& handler) const override { virtual void Dispatch(HandlerType& handler) const override {
handler.Handle(static_cast<const DataType&>(m_Data)); handler.Handle(*this);
} }
virtual void Read(DataBuffer& a_Buffer) override { virtual void Read(DataBuffer& a_Buffer) override {
@@ -33,16 +33,16 @@ class ConcreteMessage : public MessageBase {
return details::WriteMessage(m_Data); return details::WriteMessage(m_Data);
} }
DataType* operator*() { DataType& operator*() {
return &m_Data; return m_Data;
} }
DataType* operator->() { DataType* operator->() {
return &m_Data; return &m_Data;
} }
const DataType* operator*() const { const DataType& operator*() const {
return &m_Data; return m_Data;
} }
const DataType* operator->() const { const DataType* operator->() const {

View File

@@ -12,7 +12,7 @@
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
enum class PacketID { KeepAlive = 0 }; enum class PacketID { KeepAlive = 0, MDC = 1 };
class PacketHandler; class PacketHandler;
@@ -27,8 +27,9 @@ struct KeepAlivePacket {
}; };
using KeepAliveMessage = Message<KeepAlivePacket, PacketID::KeepAlive>; using KeepAliveMessage = Message<KeepAlivePacket, PacketID::KeepAlive>;
using MDCMessage = Message<KeepAlivePacket, PacketID::MDC>;
using AllMessages = std::tuple<KeepAliveMessage>; using AllMessages = std::tuple<KeepAliveMessage, MDCMessage>;
class PacketHandler : public sp::GenericHandler<AllMessages> {}; class PacketHandler : public sp::GenericHandler<AllMessages> {};
@@ -37,6 +38,9 @@ class MyHandler : public PacketHandler {
virtual void Handle(const KeepAliveMessage& msg) override { virtual void Handle(const KeepAliveMessage& msg) override {
std::cout << "I recieved a keep alive : " << *msg->one << " : " << *msg->two << "\n"; std::cout << "I recieved a keep alive : " << *msg->one << " : " << *msg->two << "\n";
} }
virtual void Handle(const MDCMessage& msg) override {
std::cout << "I recieved a keep alive : " << *msg->one << " : " << *msg->two << "\n";
}
}; };
using PacketDispatcher = sp::MessageDispatcher<PacketBase>; using PacketDispatcher = sp::MessageDispatcher<PacketBase>;