Files
Simple-Protocol-Lib/include/sp/default/DefaultPacket.h
Persson-dev 10b49b34dd
All checks were successful
Linux arm64 / Build (push) Successful in 1m17s
working dispatcher + factory
2025-06-25 19:33:11 +02:00

32 lines
1.4 KiB
C++

#pragma once
#include <sp/protocol/GenericHandler.h>
#include <sp/protocol/Message.h>
namespace sp {
class PacketHandler;
using PacketID = std::uint8_t;
using PacketMessage = Message<
option::MsgIdType<PacketID>, // add id() operation
option::Handler<PacketHandler> // add dispatch() operation
>;
#define PacketConstructor(packetName) \
packetName##Packet() {} \
template <typename... Args> \
packetName##Packet(Args... args) { \
Construct(args...); \
}
#define DeclarePacket(packetName) \
class packetName##Packet : public sp::MessageBase<sp::PacketMessage, \
sp::option::DispatchImpl<packetName##Packet>, sp::option::FieldsImpl<packetName##Fields>>, \
sp::option::ToStringImpl<packetName##Packet>
} // namespace sp