SYNOPSIS

#include <stdint.h>

#include <unistd.h>

#include <qb/qbdefs.h>

Typedefs

typedef struct qb_array qb_array_t

This is an opaque data type representing an instance of an array.

Functions

qb_array_t * qb_array_create (size_t max_elements, size_t element_size)

Create an array with fixed sized elements. qb_array_t * qb_array_create_2 (size_t max_elements, size_t element_size, size_t autogrow_elements)

Create an array with fixed sized elements. int32_t qb_array_index (qb_array_t *a, int32_t idx, void **element_out)

Get an element at a particular index. int32_t qb_array_grow (qb_array_t *a, size_t max_elements)

Grow the array. size_t qb_array_num_bins_get (qb_array_t *a)

Get the number of bins used or the array. size_t qb_array_elems_per_bin_get (qb_array_t *a)

Get the number of elements per bin. void qb_array_free (qb_array_t *a)

Free all the memory used by the array.

Detailed Description

This is a dynamic array (it can grow, but without moving memory).

 arr = qb_array_create_2(64, sizeof(struct my_struct), 256);
 ...
 res = qb_array_index(arr, idx, (void**)&my_ptr);
 if (res < 0) {
        return res;
 }
 // use my_ptr, now even if there is a grow, this pointer will be valid.

Typedef Documentation

typedef struct qb_array \fBqb_array_t\fP

This is an opaque data type representing an instance of an array.

Function Documentation

\fBqb_array_t\fP* \fBqb_array_create\fP (size_tmax_elements, size_telement_size)

Create an array with fixed sized elements. Parameters:

max_elements initial max elements.

element_size size of each element.

Returns:

array instance.

\fBqb_array_t\fP* \fBqb_array_create_2\fP (size_tmax_elements, size_telement_size, size_tautogrow_elements)

Create an array with fixed sized elements. Parameters:

max_elements initial max elements.

element_size size of each element.

autogrow_elements the number of elements to grow automatically by.

Returns:

array instance.

size_t \fBqb_array_elems_per_bin_get\fP (\fBqb_array_t\fP *a)

Get the number of elements per bin.

void \fBqb_array_free\fP (\fBqb_array_t\fP *a)

Free all the memory used by the array. Parameters:

a array instance.

int32_t \fBqb_array_grow\fP (\fBqb_array_t\fP *a, size_tmax_elements)

Grow the array. Parameters:

a array instance.

max_elements the new maximum size of the array.

Returns:

(0 == success, else -errno)

int32_t \fBqb_array_index\fP (\fBqb_array_t\fP *a, int32_tidx, void **element_out)

Get an element at a particular index. Parameters:

a array instance.

idx the index

element_out the pointer to the element data.

Returns:

(0 == success, else -errno)

size_t \fBqb_array_num_bins_get\fP (\fBqb_array_t\fP *a)

Get the number of bins used or the array.

Author

Generated automatically by Doxygen for libqb from the source code.