#pragma once #include #include namespace sp { class PacketHandler; using PacketMessage = Message< option::MsgIdType, // add id() operation option::ReadOperations, // add read() operation option::WriteOperations, // add write() operation option::Handler // add dispatch() operation >; #define DeclarePacket(packetName) class packetName##Packet : public sp::MessageBase, \ sp::option::DispatchImpl, \ sp::option::FieldsImpl \ > {} } // namespace sp