1*f4783a9fSFrançois Revol #ifndef _XDROUTPACKET_H 2*f4783a9fSFrançois Revol 3*f4783a9fSFrançois Revol #define _XDROUTPACKET_H 4*f4783a9fSFrançois Revol 5*f4783a9fSFrançois Revol #include <SupportDefs.h> 6*f4783a9fSFrançois Revol 7*f4783a9fSFrançois Revol #define XDROUTPACKET_BUFFER_INCREMENT 512 8*f4783a9fSFrançois Revol 9*f4783a9fSFrançois Revol struct XDROutPacket 10*f4783a9fSFrançois Revol { 11*f4783a9fSFrançois Revol uint8 *fBuffer; 12*f4783a9fSFrançois Revol size_t fSize; 13*f4783a9fSFrançois Revol size_t fLength; 14*f4783a9fSFrançois Revol }; 15*f4783a9fSFrançois Revol 16*f4783a9fSFrançois Revol void XDROutPacketInit (struct XDROutPacket *packet); 17*f4783a9fSFrançois Revol void XDROutPacketDestroy (struct XDROutPacket *packet); 18*f4783a9fSFrançois Revol 19*f4783a9fSFrançois Revol void XDROutPacketGrow (struct XDROutPacket *packet, size_t size); 20*f4783a9fSFrançois Revol void XDROutPacketAddInt32 (struct XDROutPacket *packet, int32 val); 21*f4783a9fSFrançois Revol void XDROutPacketAddDynamic (struct XDROutPacket *packet, const void *data, size_t size); 22*f4783a9fSFrançois Revol void XDROutPacketAddFixed (struct XDROutPacket *packet, const void *data, size_t size); 23*f4783a9fSFrançois Revol void XDROutPacketAddString (struct XDROutPacket *packet, const char *string); 24*f4783a9fSFrançois Revol void XDROutPacketAppend (struct XDROutPacket *me, const struct XDROutPacket *packet); 25*f4783a9fSFrançois Revol 26*f4783a9fSFrançois Revol const uint8 *XDROutPacketBuffer (struct XDROutPacket *packet); 27*f4783a9fSFrançois Revol size_t XDROutPacketLength (struct XDROutPacket *packet); 28*f4783a9fSFrançois Revol void XDROutPacketClear (struct XDROutPacket *packet); 29*f4783a9fSFrançois Revol 30*f4783a9fSFrançois Revol #endif 31