#include #include #include class CustomPacketHandler : public sp::PacketHandler { void Handle(const KeepAlivePacket& packet) { std::cout << "KeepAlive handled ! " << packet.GetKeepAliveId() << "\n"; } void Handle(const DisconnectPacket& packet) { std::cout << "Disconnect handled ! " << packet.GetReason() << "\n"; } void Handle(const UpgradeTowerPacket& packet) { std::cout << "UpgradeTower handled !\n"; } }; using FileStream = sp::IOStream; int main() { auto handler = std::make_shared(); FileStream stream(sp::FileIO{"test.txt"}); stream.GetDispatcher().RegisterHandler(PacketId::Disconnect, handler); stream.GetDispatcher().RegisterHandler(PacketId::KeepAlive, handler); stream.SendMessage(KeepAlivePacket{96}); stream.SendMessage(KeepAlivePacket{69}); stream.SendMessage(DisconnectPacket{"This is in the file !"}); stream.RecieveMessages(); return 0; }