Packet

Functions

sfPacket *sfPacket_create(void)

Create a new packet.

Returns:

A new sfPacket object

sfPacket *sfPacket_copy(const sfPacket *packet)

Create a new packet by copying an existing one.

Parameters:
  • packet – Packet to copy

Returns:

A new sfPacket object which is a copy of packet

void sfPacket_destroy(sfPacket *packet)

Destroy a packet.

Parameters:
  • packet – Packet to destroy

void sfPacket_append(sfPacket *packet, const void *data, size_t sizeInBytes)

Append data to the end of a packet.

Parameters:
  • packet – Packet object

  • data – Pointer to the sequence of bytes to append

  • sizeInBytes – Number of bytes to append

size_t sfPacket_getReadPosition(const sfPacket *packet)

Get the current reading position in the packet.

The next read operation will read data from this position

See also

append

Returns:

The byte offset of the current read position

void sfPacket_clear(sfPacket *packet)

Clear a packet.

After calling Clear, the packet is empty.

Parameters:
  • packet – Packet object

const void *sfPacket_getData(const sfPacket *packet)

Get a pointer to the data contained in a packet.

Warning: the returned pointer may become invalid after you append data to the packet, therefore it should never be stored. The return pointer is NULL if the packet is empty.

Parameters:
  • packet – Packet object

Returns:

Pointer to the data

size_t sfPacket_getDataSize(const sfPacket *packet)

Get the size of the data contained in a packet.

This function returns the number of bytes pointed to by what sfPacket_getData returns.

Parameters:
  • packet – Packet object

Returns:

Data size, in bytes

sfBool sfPacket_endOfPacket(const sfPacket *packet)

Tell if the reading position has reached the end of a packet.

This function is useful to know if there is some data left to be read, without actually reading it.

Parameters:
  • packet – Packet object

Returns:

sfTrue if all data was read, sfFalse otherwise

sfBool sfPacket_canRead(const sfPacket *packet)

Test the validity of a packet, for reading.

This function allows to test the packet, to check if a reading operation was successful.

A packet will be in an invalid state if it has no more data to read.

Parameters:
  • packet – Packet object

Returns:

sfTrue if last data extraction from packet was successful

sfBool sfPacket_readBool(sfPacket *packet)

Functions to extract data from a packet.

Parameters:
  • packet – Packet object

sfInt8 sfPacket_readInt8(sfPacket *packet)
sfUint8 sfPacket_readUint8(sfPacket *packet)
sfInt16 sfPacket_readInt16(sfPacket *packet)
sfUint16 sfPacket_readUint16(sfPacket *packet)
sfInt32 sfPacket_readInt32(sfPacket *packet)
sfUint32 sfPacket_readUint32(sfPacket *packet)
float sfPacket_readFloat(sfPacket *packet)
double sfPacket_readDouble(sfPacket *packet)
void sfPacket_readString(sfPacket *packet, char *string)
void sfPacket_readWideString(sfPacket *packet, wchar_t *string)
void sfPacket_writeBool(sfPacket *packet, sfBool)

Functions to insert data into a packet.

Parameters:
  • packet – Packet object

void sfPacket_writeInt8(sfPacket *packet, sfInt8)
void sfPacket_writeUint8(sfPacket *packet, sfUint8)
void sfPacket_writeInt16(sfPacket *packet, sfInt16)
void sfPacket_writeUint16(sfPacket *packet, sfUint16)
void sfPacket_writeInt32(sfPacket *packet, sfInt32)
void sfPacket_writeUint32(sfPacket *packet, sfUint32)
void sfPacket_writeFloat(sfPacket *packet, float)
void sfPacket_writeDouble(sfPacket *packet, double)
void sfPacket_writeString(sfPacket *packet, const char *string)
void sfPacket_writeWideString(sfPacket *packet, const wchar_t *string)