|
libcstl
|
Go to the source code of this file.
Data Structures | |
| struct | cstl_array_t |
| The array object. More... | |
Macros | |
| #define | CSTL_ARRAY_INITIALIZER(NAME) |
| Initialize an array object at the time of declaration. | |
| #define | DECLARE_CSTL_ARRAY(NAME) |
| Declare (and initialize) an array object at compile time. | |
Functions | |
| static void | cstl_array_init (cstl_array_t *const a) |
| Initialize a previously declared/allocated array object. | |
| static size_t | cstl_array_size (const cstl_array_t *const a) |
| Get the number of elements in the array. | |
| void | cstl_array_alloc (cstl_array_t *a, size_t nm, size_t sz) |
| Allocate an array to be managed. | |
| static void | cstl_array_reset (cstl_array_t *const a) |
| Drop a reference to memory managed by this object. | |
| const void * | cstl_array_data_const (const cstl_array_t *a) |
| Return a pointer to the underlying array. | |
| static void * | cstl_array_data (cstl_array_t *const a) |
| Return a pointer to the underlying array. | |
| const void * | cstl_array_at_const (const cstl_array_t *a, size_t i) |
| Return a pointer to an element in the array. | |
| static void * | cstl_array_at (cstl_array_t *const a, const size_t i) |
| Return a pointer to an element in the array. | |
| void | cstl_array_slice (cstl_array_t *a, size_t beg, size_t end, cstl_array_t *s) |
| Create an array object referring to a slice of another. | |
| void | cstl_array_unslice (cstl_array_t *s, cstl_array_t *a) |
| Create an array object referring to the entire underlying array. | |
Danger Zone | |
Functions requiring extra careful handling Callers can use cstl_array_set() to use an externally allocated array, but the caller must cstl_array_release() that array. Otherwise, the code will try to return the array to the heap when the last reference to it goes away. | |
| void | cstl_array_set (cstl_array_t *const a, void *buf, size_t nm, size_t sz) |
| Manage an externally allocated array. | |
| void | cstl_array_release (cstl_array_t *const a, void **buf) |
| Release an externally allocated array. | |
Raw Array Functions | |
| void | cstl_raw_array_reverse (void *arr, size_t count, size_t size, cstl_swap_func_t *swap, void *tmp) |
| Reverse the contents of an array. | |
| ssize_t | cstl_raw_array_search (const void *arr, size_t count, size_t size, const void *ex, cstl_compare_func_t *cmp, void *priv) |
| Perform a binary search of the array. | |
| ssize_t | cstl_raw_array_find (const void *arr, size_t count, size_t size, const void *ex, cstl_compare_func_t *cmp, void *priv) |
| Perform a linear search of the array. | |
| void | cstl_raw_array_sort (void *arr, size_t count, size_t size, cstl_compare_func_t *cmp, void *priv, cstl_swap_func_t *swap, void *tmp, cstl_sort_algorithm_t algo) |
| Sort the array using the specified algorithm. | |