qbarray.h(3) | libqb | qbarray.h(3) |
qbarray.h - This is a dynamic array (it can grow, but without moving memory).
#include <stdint.h>
#include <unistd.h>
#include <qb/qbdefs.h>
#define QB_ARRAY_MAX_INDEX_BITS 16
#define QB_ARRAY_MAX_ELEMENTS (1 <<
QB_ARRAY_MAX_INDEX_BITS)
typedef struct qb_array qb_array_t
This is an opaque data type representing an instance of an array. typedef
void(* qb_array_new_bin_cb_fn) (qb_array_t *a, uint32_t bin)
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 by the array. size_t
qb_array_elems_per_bin_get (qb_array_t *a)
Get the number of elements per bin. int32_t qb_array_new_bin_cb_set
(qb_array_t *a, qb_array_new_bin_cb_fn fn)
Get a callback when a new bin is allocated. void qb_array_free
(qb_array_t *a)
Free all the memory used by the array.
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.
Currently, this dynamic array abstract data type can accommodate only 2^QB_ARRAY_MAX_INDEX_BITS elements, and with standard zero-based indexing, this gives a valid index range [0, QB_ARRAY_MAX_ELEMENTS), where the notation denotes the beginning of the interval is included and the end is excluded. In other words, client space shall avoid a pitfall of relying solely on the type of max_elements parameter to qb_array_create and/or of idx parameter to qb_array_index (these types conflict, anyway).
This is an opaque data type representing an instance of an array.
Create an array with fixed sized elements.
Parameters:
Returns:
Create an array with fixed sized elements.
Parameters:
Returns:
Get the number of elements per bin.
Free all the memory used by the array.
Parameters:
Grow the array.
Parameters:
Returns:
Get an element at a particular index.
Parameters:
Returns:
Get a callback when a new bin is allocated.
Get the number of bins used by the array.
Generated automatically by Doxygen for libqb from the source code.
Fri Apr 26 2019 | Version 1.0.5 |