Struct
GLibBytes
since: 2.32
Description [src]
struct GBytes {
/* No available fields */
}
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 g_malloc(), from memory slices, from a GMappedFile
or
memory from other allocators.
GBytes
work well as keys in GHashTable
. Use g_bytes_equal()
and
g_bytes_hash()
as parameters to g_hash_table_new()
or g_hash_table_new_full().
GBytes
can also be used as keys in a GTree
by passing the g_bytes_compare()
function to g_tree_new().
The data pointed to by this bytes must not be modified. For a mutable
array of bytes see GByteArray
. Use g_bytes_unref_to_array()
to create a
mutable array for a GBytes
sequence. To create an immutable GBytes
from
a mutable GByteArray
, use the g_byte_array_free_to_bytes()
function.
Available since: 2.32
Instance methods
g_bytes_equal
Compares the two GBytes
values being pointed to and returns
TRUE
if they are equal.
since: 2.32
g_bytes_new_from_bytes
Creates a GBytes
which is a subsection of another GBytes
. The offset
+
length
may not be longer than the size of bytes
.
since: 2.32
g_bytes_unref
Releases a reference on bytes
. This may result in the bytes being
freed. If bytes
is NULL
, it will return immediately.
since: 2.32
g_bytes_unref_to_array
Unreferences the bytes, and returns a new mutable GByteArray
containing
the same byte data.
since: 2.32
g_bytes_unref_to_data
Unreferences the bytes, and returns a pointer the same byte data contents.
since: 2.32