Binary Packet

Name

Binary Packet -- A binary data packet.

Synopsis



struct      GskPacket;
void        (*GskPacketDestroyFunc)         (gpointer destroy_data,
                                             GskPacket *packet);
GskPacket*  gsk_packet_new                  (gpointer data,
                                             guint length,
                                             GskPacketDestroyFunc destroy,
                                             gpointer destroy_data);
GskPacket*  gsk_packet_new_copy             (gconstpointer data,
                                             guint length);
void        gsk_packet_set_address          (GskPacket *packet,
                                             GskSocketAddress *address);
void        gsk_packet_unref                (GskPacket *packet);
GskPacket*  gsk_packet_ref                  (GskPacket *packet);

Description

A reference-counted binary piece of data with a destroy-notify to allow arbitrary memory management.

It may optionally have a GskSocketAddress to denote the remote host.

Details

struct GskPacket

struct GskPacket {

  /*< public: readonly >*/
  gpointer data;
  guint len;
  GskSocketAddress *address;
  GskPacketDestroyFunc destroy;
  gpointer destroy_data;

};

A packet of binary data, optionally associated with a particular host.

gpointer data

the raw binary data.

guint len

length of the raw data.

GskSocketAddress *address

remote address of this packet.

GskPacketDestroyFunc destroy

destroy notification.

gpointer destroy_data

data to invoke destroy on.


GskPacketDestroyFunc ()

void        (*GskPacketDestroyFunc)         (gpointer destroy_data,
                                             GskPacket *packet);

The actual function prototype of destroy. This is only useful if you want to examine the whole GskPacket from your destroy function.

destroy_data :

as passed to gsk_packet_new()

packet :

the whole packet.


gsk_packet_new ()

GskPacket*  gsk_packet_new                  (gpointer data,
                                             guint length,
                                             GskPacketDestroyFunc destroy,
                                             gpointer destroy_data);

Creates a new packet with the given data. The packet's ref-count is 1; it will be destroyed when it gets to 0.

data :

binary data in the packet

length :

length of binary data

destroy :

method to destroy the data.

destroy_data :

the argument to the destroy method.

Returns :

a new GskPacket


gsk_packet_new_copy ()

GskPacket*  gsk_packet_new_copy             (gconstpointer data,
                                             guint length);

Creates a new packet with a copy of the given data. The packet's ref-count is 1; it will be destroyed when it gets to 0.

data :

binary data to be copied into the packet

length :

length of binary data

Returns :

a new GskPacket


gsk_packet_set_address ()

void        gsk_packet_set_address          (GskPacket *packet,
                                             GskSocketAddress *address);

Change the address associated with a packet.

packet :

a packet whose address should be changed.

address :

the new address.


gsk_packet_unref ()

void        gsk_packet_unref                (GskPacket *packet);

Remove a reference-count from the packet, deleting the packet if it gets to 0.

packet :

a packet to remove a reference from.


gsk_packet_ref ()

GskPacket*  gsk_packet_ref                  (GskPacket *packet);

Add a reference-count to the packet.

packet :

a packet to add a reference to.

Returns :

the packet, for convenience.