This commit is contained in:
@@ -133,7 +133,7 @@ namespace sp
|
||||
{
|
||||
public:
|
||||
virtual ~GenericHandler() {}
|
||||
// virtual void Handle(const TCommon&) {} //Nothing to do
|
||||
virtual void Handle() {} //Nothing to do
|
||||
};
|
||||
|
||||
} // sp
|
||||
@@ -22,7 +22,7 @@ class ConcreteMessage : public MessageBase {
|
||||
}
|
||||
|
||||
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 {
|
||||
@@ -33,16 +33,16 @@ class ConcreteMessage : public MessageBase {
|
||||
return details::WriteMessage(m_Data);
|
||||
}
|
||||
|
||||
DataType* operator*() {
|
||||
return &m_Data;
|
||||
DataType& operator*() {
|
||||
return m_Data;
|
||||
}
|
||||
|
||||
DataType* operator->() {
|
||||
return &m_Data;
|
||||
}
|
||||
|
||||
const DataType* operator*() const {
|
||||
return &m_Data;
|
||||
const DataType& operator*() const {
|
||||
return m_Data;
|
||||
}
|
||||
|
||||
const DataType* operator->() const {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
enum class PacketID { KeepAlive = 0 };
|
||||
enum class PacketID { KeepAlive = 0, MDC = 1 };
|
||||
|
||||
class PacketHandler;
|
||||
|
||||
@@ -27,8 +27,9 @@ struct KeepAlivePacket {
|
||||
};
|
||||
|
||||
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> {};
|
||||
|
||||
@@ -37,6 +38,9 @@ class MyHandler : public PacketHandler {
|
||||
virtual void Handle(const KeepAliveMessage& msg) override {
|
||||
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>;
|
||||
|
||||
Reference in New Issue
Block a user