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