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(const 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

Parameters:
  • packet – Packet object

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

bool 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:

true if all data was read, false otherwise

bool sfPacket_canRead(const sfPacket *packet)

Test the validity of a packet, for reading.

This function allows for testing 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:

true if last data extraction from packet was successful

bool sfPacket_readBool(sfPacket *packet)

Functions to extract data from a packet.

Parameters:
  • packet – Packet object

int8_t sfPacket_readInt8(sfPacket *packet)
uint8_t sfPacket_readUint8(sfPacket *packet)
int16_t sfPacket_readInt16(sfPacket *packet)
uint16_t sfPacket_readUint16(sfPacket *packet)
int32_t sfPacket_readInt32(sfPacket *packet)
uint32_t sfPacket_readUint32(sfPacket *packet)
int64_t sfPacket_readInt64(sfPacket *packet)
uint64_t sfPacket_readUint64(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, bool)

Functions to insert data into a packet.

Parameters:
  • packet – Packet object

void sfPacket_writeInt8(sfPacket *packet, int8_t)
void sfPacket_writeUint8(sfPacket *packet, uint8_t)
void sfPacket_writeInt16(sfPacket *packet, int16_t)
void sfPacket_writeUint16(sfPacket *packet, uint16_t)
void sfPacket_writeInt32(sfPacket *packet, int32_t)
void sfPacket_writeUint32(sfPacket *packet, uint32_t)
void sfPacket_writeInt64(sfPacket *packet, int64_t)
void sfPacket_writeUint64(sfPacket *packet, uint64_t)
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)