#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::io::Stream; int main() { auto handler = std::make_shared(); FileStream stream(sp::io::File{"test.txt", sp::io::FileTag::In | sp::io::FileTag::Out}); stream.GetDispatcher().RegisterHandler(PacketId::Disconnect, handler); stream.GetDispatcher().RegisterHandler(PacketId::KeepAlive, handler); auto zlibOptions = sp::option::ZlibCompress{}; stream.SendMessage(KeepAlivePacket{96}, zlibOptions); stream.SendMessage(KeepAlivePacket{69}, zlibOptions); stream.SendMessage( DisconnectPacket{ "This is in the " "fiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiile !"}, zlibOptions); stream.RecieveMessages(zlibOptions); return 0; }