This commit is contained in:
@@ -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
|
||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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>;
|
||||||
|
|||||||
Reference in New Issue
Block a user