A simple refcounted data type representing an immutable sequence of zero or
more bytes from an unspecified origin.
The purpose of a #GBytes is to keep the memory region that it holds
alive for as long as anyone holds a reference to the bytes. When
the last reference count is dropped, the memory is released. Multiple
unrelated callers can use byte data in the #GBytes without coordinating
their activities, resting assured that the byte data will not change or
move while they hold a reference.
A #GBytes can come from many different origins that may have
different procedures for freeing the memory region. Examples are
memory from glib.global.gmalloc, from memory slices, from a #GMappedFile or
memory from other allocators.
The data pointed to by this bytes must not be modified. For a mutable
array of bytes see #GByteArray. Use glib.bytes.Bytes.unrefToArray to create a
mutable array for a #GBytes sequence. To create an immutable #GBytes from
a mutable #GByteArray, use the glib.byte_array.ByteArray.freeToBytes function.
A simple refcounted data type representing an immutable sequence of zero or more bytes from an unspecified origin.
The purpose of a #GBytes is to keep the memory region that it holds alive for as long as anyone holds a reference to the bytes. When the last reference count is dropped, the memory is released. Multiple unrelated callers can use byte data in the #GBytes without coordinating their activities, resting assured that the byte data will not change or move while they hold a reference.
A #GBytes can come from many different origins that may have different procedures for freeing the memory region. Examples are memory from glib.global.gmalloc, from memory slices, from a #GMappedFile or memory from other allocators.
#GBytes work well as keys in #GHashTable. Use glib.bytes.Bytes.equal and glib.bytes.Bytes.hash as parameters to glib.hash_table.HashTable.new_ or glib.hash_table.HashTable.newFull. #GBytes can also be used as keys in a #GTree by passing the glib.bytes.Bytes.compare function to glib.tree.Tree.new_.
The data pointed to by this bytes must not be modified. For a mutable array of bytes see #GByteArray. Use glib.bytes.Bytes.unrefToArray to create a mutable array for a #GBytes sequence. To create an immutable #GBytes from a mutable #GByteArray, use the glib.byte_array.ByteArray.freeToBytes function.