|
piojo_array_t * | piojo_array_alloc (size_t esize) |
|
piojo_array_t * | piojo_array_alloc_cb (size_t esize, piojo_alloc_if allocator) |
|
piojo_array_t * | piojo_array_copy (const piojo_array_t *array) |
|
void | piojo_array_free (const piojo_array_t *array) |
|
void | piojo_array_clear (piojo_array_t *array) |
|
void | piojo_array_resize (size_t ecount, piojo_array_t *array) |
|
size_t | piojo_array_size (const piojo_array_t *array) |
|
void | piojo_array_insert (size_t idx, const void *data, piojo_array_t *array) |
|
void | piojo_array_set (size_t idx, const void *data, piojo_array_t *array) |
|
void | piojo_array_push (const void *data, piojo_array_t *array) |
|
size_t * | piojo_array_index (const void *data, piojo_cmp_cb cmp, const piojo_array_t *array, size_t *idx) |
|
void | piojo_array_sorted_insert (const void *data, piojo_cmp_cb cmp, piojo_array_t *array) |
|
size_t * | piojo_array_sorted_index (const void *data, piojo_cmp_cb cmp, const piojo_array_t *array, size_t *idx) |
|
void | piojo_array_delete (size_t idx, piojo_array_t *array) |
|
void | piojo_array_pop (piojo_array_t *array) |
|
void * | piojo_array_at (size_t idx, const piojo_array_t *array) |
|
void * | piojo_array_first (const piojo_array_t *array) |
|
void * | piojo_array_last (const piojo_array_t *array) |
|
Piojo Array implementation.
piojo_array_t* piojo_array_alloc |
( |
size_t |
esize | ) |
|
Allocates a new array. Uses default allocator.
- Parameters
-
[in] | esize | Entry size in bytes. |
- Returns
- New array.
piojo_array_t* piojo_array_alloc_cb |
( |
size_t |
esize, |
|
|
piojo_alloc_if |
allocator |
|
) |
| |
Allocates a new array.
- Parameters
-
[in] | esize | Entry size in bytes. |
[in] | allocator | Allocator to be used. |
- Returns
- New array.
void* piojo_array_at |
( |
size_t |
idx, |
|
|
const piojo_array_t * |
array |
|
) |
| |
Reads an entry.
- Parameters
-
[in] | idx | Index of entry being read (from 0 to array_size - 1). |
[in] | array | Non-empty array. |
- Returns
- Entry value.
void piojo_array_clear |
( |
piojo_array_t * |
array | ) |
|
Deletes all entries in array.
- Parameters
-
[out] | array | Array being cleared. |
piojo_array_t* piojo_array_copy |
( |
const piojo_array_t * |
array | ) |
|
Copies array and all its entries.
- Parameters
-
[in] | array | Array being copied. |
- Returns
- New array.
void piojo_array_delete |
( |
size_t |
idx, |
|
|
piojo_array_t * |
array |
|
) |
| |
Deletes an entry.
- Parameters
-
[in] | idx | Index of entry being deleted (from 0 to array_size - 1). |
[out] | array | Non-empty array. |
void* piojo_array_first |
( |
const piojo_array_t * |
array | ) |
|
Reads first entry.
- Parameters
-
[in] | array | Non-empty array. |
- Returns
- Entry value.
void piojo_array_free |
( |
const piojo_array_t * |
array | ) |
|
Frees array and all its entries.
- Parameters
-
[in] | array | Array being freed. |
size_t* piojo_array_index |
( |
const void * |
data, |
|
|
piojo_cmp_cb |
cmp, |
|
|
const piojo_array_t * |
array, |
|
|
size_t * |
idx |
|
) |
| |
Searches index of an entry (linear search).
- Parameters
-
[in] | data | Entry value. |
[in] | cmp | Entry comparison function. |
[in] | array | Array. |
[out] | idx | Index of data inside array. |
- Returns
- idx if data is present, NULL otherwise.
void piojo_array_insert |
( |
size_t |
idx, |
|
|
const void * |
data, |
|
|
piojo_array_t * |
array |
|
) |
| |
Inserts a new entry.
- Parameters
-
[in] | idx | Index of entry being inserted (from 0 to array_size) |
[in] | data | Entry value. |
[out] | array | Array being modified. |
void* piojo_array_last |
( |
const piojo_array_t * |
array | ) |
|
Reads last entry.
- Parameters
-
[in] | array | Non-empty array. |
- Returns
- Entry value.
void piojo_array_pop |
( |
piojo_array_t * |
array | ) |
|
Deletes the last entry.
- Parameters
-
[out] | array | Non-empty array. |
void piojo_array_push |
( |
const void * |
data, |
|
|
piojo_array_t * |
array |
|
) |
| |
Inserts a new entry at the end of array.
- Parameters
-
[in] | data | Entry value. |
[out] | array | Array being modified. |
void piojo_array_resize |
( |
size_t |
ecount, |
|
|
piojo_array_t * |
array |
|
) |
| |
Expands or shrinks allocated memory for ecount entries.
- Parameters
-
[in] | ecount | Must be equal or greater than the current size. |
[out] | array | Array being modified. |
void piojo_array_set |
( |
size_t |
idx, |
|
|
const void * |
data, |
|
|
piojo_array_t * |
array |
|
) |
| |
Replaces an entry.
- Parameters
-
[in] | idx | Index of entry being replaced (from 0 to array_size - 1) |
[in] | data | Entry value. |
[out] | array | Array being modified. |
size_t piojo_array_size |
( |
const piojo_array_t * |
array | ) |
|
Returns number of entries.
- Parameters
-
- Returns
- Number of entries in array.
size_t* piojo_array_sorted_index |
( |
const void * |
data, |
|
|
piojo_cmp_cb |
cmp, |
|
|
const piojo_array_t * |
array, |
|
|
size_t * |
idx |
|
) |
| |
Searches index of an entry (binary search).
- Parameters
-
[in] | data | Entry value. |
[in] | cmp | Entry comparison function. |
[in] | array | Array. |
[out] | idx | Index of data inside array. |
- Returns
- idx if data is present, NULL otherwise.
void piojo_array_sorted_insert |
( |
const void * |
data, |
|
|
piojo_cmp_cb |
cmp, |
|
|
piojo_array_t * |
array |
|
) |
| |
Inserts a new entry in order given by cmp.
- Parameters
-
[in] | data | Entry value. |
[in] | cmp | Entry comparison function. |
[out] | array | Array being modified. |
const size_t piojo_array_sizeof |