add MessageDispatcher

This commit is contained in:
2025-02-25 20:29:59 +01:00
parent 8f32b09b17
commit a194774925
4 changed files with 113 additions and 3 deletions

View File

@@ -4,6 +4,7 @@
#include <memory>
#include <sp/extensions/Extensions.h>
#include <sp/default/DefaultPacketDispatcher.h>
class KeepAliveHandler : public sp::PacketHandler {
void Handle(const KeepAlivePacket& packet) {
@@ -24,8 +25,8 @@ int main() {
sp::PacketMessage* msg = upgradeTower.get();
KeepAliveHandler handler;
msg->Dispatch(handler);
auto handler = std::make_shared<KeepAliveHandler>();
msg->Dispatch(*handler);
sp::DataBuffer buffer;
msg->Write(buffer);
@@ -45,7 +46,13 @@ int main() {
return 1;
}
std::cout << (unsigned)packet->GetId() << std::endl;
packet->Dispatch(handler);
packet->Dispatch(*handler);
sp::PacketDispatcher dispatcher;
dispatcher.RegisterHandler(PacketId::KeepAlive, handler);
dispatcher.Dispatch(*packet);
dispatcher.UnregisterHandler(PacketId::KeepAlive, handler);
dispatcher.UnregisterHandler(handler);
return 0;
}