12#ifndef WSFXIO_PACKET_HPP
13#define WSFXIO_PACKET_HPP
15#include "wsf_export.h"
17#include "GenUniqueId.hpp"
18#include "PakPacket.hpp"
58 : PakPacket(aPacketId)
86#define XIO_DEFINE_PACKET_CTOR(PACKET_NAME__, BASE_TYPE__, PACKET_ID__) \
87 typedef BASE_TYPE__ BaseType; \
88 static const int cPACKET_ID = PACKET_ID__; \
89 PACKET_NAME__(int aPacketId = cPACKET_ID) \
90 : BASE_TYPE__(aPacketId)
92#define XIO_DEFINE_PACKET_SERIALIZE() \
93 template<typename T> \
94 void Serialize(T& aBuff) \
96 BaseType::Serialize(aBuff); \
99 template<typename T> \
100 void DoSerialize(T& aBuff)
107#define XIO_DEFINE_PACKET(PACKET_NAME__, BASE_TYPE__, PACKET_ID__) \
108 XIO_DEFINE_PACKET_CTOR(PACKET_NAME__, BASE_TYPE__, PACKET_ID__) {} \
109 XIO_DEFINE_PACKET_SERIALIZE()
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
static const int cXIO_WSF_LAST_PACKET_ID
Definition WsfXIO_Packet.hpp:25
static const int cXIO_WSF_EXTENDED_FIRST_PACKET_ID
Definition WsfXIO_Packet.hpp:27
static const int cXIO_WSF_EXTENDED_LAST_PACKET_ID
Definition WsfXIO_Packet.hpp:28
static const int cXIO_WSF_EXTENDED_LAST_TYPE_ID
Definition WsfXIO_Packet.hpp:42
static const int cXIO_APP_1_LAST_PACKET_ID
Definition WsfXIO_Packet.hpp:31
static const int cXIO_WSF_SIM_LAST_TYPE_ID
Definition WsfXIO_Packet.hpp:40
static const int cXIO_APP_1_FIRST_PACKET_ID
Definition WsfXIO_Packet.hpp:30
static const int cXIO_WSF_EXTENDED_FIRST_TYPE_ID
Definition WsfXIO_Packet.hpp:41
static const int cXIO_WSF_LAST_TYPE_ID
Class type registry for polymorphic serialization.
Definition WsfXIO_Packet.hpp:39
static const int cXIO_APP_2_FIRST_PACKET_ID
Definition WsfXIO_Packet.hpp:34
static const int cXIO_APP_2_LAST_PACKET_ID
Definition WsfXIO_Packet.hpp:35
GenUniqueId mApplicationId
Definition WsfXIO_Packet.hpp:77
float GetTimeStamp() const
Definition WsfXIO_Packet.hpp:70
void Serialize(T &aBuff)
Serializes the packet header. Must be called first from derived class Serialize().
Definition WsfXIO_Packet.hpp:65
PacketFlags
Definition WsfXIO_Packet.hpp:52
@ cSYNCHRONIZED
Indicates the packet should be synchronized if possible.
Definition WsfXIO_Packet.hpp:54
static const int cPACKET_ID
Definition WsfXIO_Packet.hpp:49
WsfXIO_Packet(int aPacketId)
Definition WsfXIO_Packet.hpp:57
bool BaseType
Definition WsfXIO_Packet.hpp:48
void AddFlags(uint32_t aFlags)
Definition WsfXIO_Packet.hpp:74
uint32_t mFlags
Definition WsfXIO_Packet.hpp:80
void SetTimeStamp(float aTimeStamp)
Definition WsfXIO_Packet.hpp:71
void SetFlags(uint32_t aFlags)
Definition WsfXIO_Packet.hpp:73
float mTimeStamp
Definition WsfXIO_Packet.hpp:81
uint32_t GetFlags() const
Definition WsfXIO_Packet.hpp:75