GLib.ByteArray

Fields

Name

Type

Access

Description

data

int

r/w

a pointer to the element data. The data may be moved as elements are added to the GByteArray

len

int

r/w

the number of elements in the GByteArray

Methods

class

append (array, data)

class

free (array, free_segment)

class

free_to_bytes (array)

class

new ()

class

new_take (data)

class

prepend (array, data)

class

ref (array)

class

remove_index (array, index_)

class

remove_index_fast (array, index_)

class

remove_range (array, index_, length)

class

set_size (array, length)

class

sized_new (reserved_size)

class

sort (array, compare_func)

class

sort_with_data (array, compare_func, *user_data)

class

steal (array)

class

unref (array)

Details

class GLib.ByteArray

Contains the public fields of a GByteArray.

classmethod append(array, data)[source]
Parameters:
  • array (bytes) – a byte array

  • data (bytes) – the byte data to be added

Returns:

The GByteArray

Return type:

bytes

Adds the given bytes to the end of the GByteArray. The array will grow in size automatically if necessary.

classmethod free(array, free_segment)[source]
Parameters:
  • array (bytes) – a byte array

  • free_segment (bool) – if true, the actual byte data is freed as well

Returns:

The allocated element data if free_segment is false, otherwise NULL.

Return type:

bytes or None

Frees the memory allocated by the GByteArray. If free_segment is true it frees the actual byte data. If the reference count of array is greater than one, the GByteArray wrapper is preserved but the size of array will be set to zero.

classmethod free_to_bytes(array)[source]
Parameters:

array (bytes) – a byte array

Returns:

The new immutable [struct`GLib`.Bytes] representing same byte data that was in the array

Return type:

GLib.Bytes

Transfers the data from the GByteArray into a new immutable [struct`GLib`.Bytes].

The GByteArray is freed unless the reference count of array is greater than one, in which the GByteArray wrapper is preserved but the size of array will be set to zero.

This is identical to using [ctor`GLib`.Bytes.new_take] and [func`GLib`.ByteArray.free] together.

New in version 2.32.

classmethod new()[source]
Returns:

The new GByteArray

Return type:

bytes

Creates a new GByteArray with a reference count of 1.

classmethod new_take(data)[source]
Parameters:

data (bytes) – the byte data for the array

Returns:

The new GByteArray

Return type:

bytes

Creates a byte array containing the data. After this call, data belongs to the GByteArray and may no longer be modified by the caller. The memory of data has to be dynamically allocated and will eventually be freed with [func`GLib`.free].

Do not use it if len is greater than G_MAXUINT. GByteArray stores the length of its data in guint, which may be shorter than gsize.

New in version 2.32.

classmethod prepend(array, data)[source]
Parameters:
  • array (bytes) – a byte array

  • data (bytes) – the byte data to be added

Returns:

The GByteArray

Return type:

bytes

Adds the given data to the start of the GByteArray. The array will grow in size automatically if necessary.

classmethod ref(array)[source]
Parameters:

array (bytes) – a byte array

Returns:

The passed in GByteArray

Return type:

bytes

Atomically increments the reference count of array by one. This function is thread-safe and may be called from any thread.

New in version 2.22.

classmethod remove_index(array, index_)[source]
Parameters:
  • array (bytes) – a byte array

  • index (int) – the index of the byte to remove

Returns:

The GByteArray

Return type:

bytes

Removes the byte at the given index from a GByteArray. The following bytes are moved down one place.

classmethod remove_index_fast(array, index_)[source]
Parameters:
  • array (bytes) – a byte array

  • index (int) – the index of the byte to remove

Returns:

The GByteArray

Return type:

bytes

Removes the byte at the given index from a GByteArray. The last element in the array is used to fill in the space, so this function does not preserve the order of the GByteArray. But it is faster than [func`GLib`.ByteArray.remove_index].

classmethod remove_range(array, index_, length)[source]
Parameters:
  • array (bytes) – a byte array

  • index (int) – the index of the first byte to remove

  • length (int) – the number of bytes to remove

Returns:

The GByteArray

Return type:

bytes

Removes the given number of bytes starting at the given index from a GByteArray. The following elements are moved to close the gap.

New in version 2.4.

classmethod set_size(array, length)[source]
Parameters:
  • array (bytes) – a byte array

  • length (int) – the new size of the GByteArray

Returns:

The GByteArray

Return type:

bytes

Sets the size of the GByteArray, expanding it if necessary.

classmethod sized_new(reserved_size)[source]
Parameters:

reserved_size (int) – the number of bytes preallocated

Returns:

The new GByteArray

Return type:

bytes

Creates a new GByteArray with reserved_size bytes preallocated. This avoids frequent reallocation, if you are going to add many bytes to the array. Note however that the size of the array is still 0.

classmethod sort(array, compare_func)[source]
Parameters:

Sorts a byte array, using compare_func which should be a qsort()-style comparison function (returns less than zero for first arg is less than second arg, zero for equal, greater than zero if first arg is greater than second arg).

If two array elements compare equal, their order in the sorted array is undefined. If you want equal elements to keep their order (i.e. you want a stable sort) you can write a comparison function that, if two elements would otherwise compare equal, compares them by their addresses.

classmethod sort_with_data(array, compare_func, *user_data)[source]
Parameters:

Like [func`GLib`.ByteArray.sort], but the comparison function takes an extra user data argument.

classmethod steal(array)[source]
Parameters:

array (bytes) – a byte array

Returns:

The allocated element data

Return type:

bytes

Frees the data in the array and resets the size to zero, while the underlying array is preserved for use elsewhere and returned to the caller.

New in version 2.64.

classmethod unref(array)[source]
Parameters:

array (bytes) – a byte array

Atomically decrements the reference count of array by one. If the reference count drops to 0, all memory allocated by the array is released. This function is thread-safe and may be called from any thread.

New in version 2.22.