Functions | |
| piojo_list_t * | piojo_list_alloc (void) |
| piojo_list_t * | piojo_list_alloc_s (size_t esize) |
| piojo_list_t * | piojo_list_alloc_cb (size_t esize, piojo_alloc_if allocator) |
| piojo_list_t * | piojo_list_copy (const piojo_list_t *list) |
| void | piojo_list_free (const piojo_list_t *list) |
| void | piojo_list_clear (piojo_list_t *list) |
| size_t | piojo_list_size (const piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_insert (const void *data, piojo_list_node_t *next, piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_set (const void *data, piojo_list_node_t *node, piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_prepend (const void *data, piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_append (const void *data, piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_delete (const piojo_list_node_t *node, piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_first (const piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_last (const piojo_list_t *list) |
| piojo_list_node_t * | piojo_list_next (const piojo_list_node_t *node) |
| piojo_list_node_t * | piojo_list_prev (const piojo_list_node_t *node) |
| void * | piojo_list_entry (const piojo_list_node_t *node) |
| piojo_skiplist_t * | piojo_skiplist_alloc_i32k (size_t evsize) |
| piojo_skiplist_t * | piojo_skiplist_alloc_i64k (size_t evsize) |
| piojo_skiplist_t * | piojo_skiplist_alloc_sizk (size_t evsize) |
| piojo_skiplist_t * | piojo_skiplist_alloc_cb_i32k (size_t evsize, piojo_alloc_if allocator) |
| piojo_skiplist_t * | piojo_skiplist_alloc_cb_i64k (size_t evsize, piojo_alloc_if allocator) |
| piojo_skiplist_t * | piojo_skiplist_alloc_cb_sizk (size_t evsize, piojo_alloc_if allocator) |
| piojo_skiplist_t * | piojo_skiplist_alloc_cmp (size_t evsize, piojo_cmp_cb keycmp, size_t eksize) |
| piojo_skiplist_t * | piojo_skiplist_alloc_cb_cmp (size_t evsize, piojo_cmp_cb keycmp, size_t eksize, piojo_alloc_if allocator) |
| piojo_skiplist_t * | piojo_skiplist_copy (const piojo_skiplist_t *list) |
| void | piojo_skiplist_free (const piojo_skiplist_t *list) |
| void | piojo_skiplist_clear (piojo_skiplist_t *list) |
| size_t | piojo_skiplist_size (const piojo_skiplist_t *list) |
| bool | piojo_skiplist_insert (const void *key, const void *data, piojo_skiplist_t *list) |
| bool | piojo_skiplist_set (const void *key, const void *data, piojo_skiplist_t *list) |
| void * | piojo_skiplist_search (const void *key, const piojo_skiplist_t *list) |
| bool | piojo_skiplist_delete (const void *key, piojo_skiplist_t *list) |
| const void * | piojo_skiplist_first (const piojo_skiplist_t *list, void **data) |
| const void * | piojo_skiplist_last (const piojo_skiplist_t *list, void **data) |
| const void * | piojo_skiplist_next (const void *key, const piojo_skiplist_t *list, void **data) |
| const void * | piojo_skiplist_prev (const void *key, const piojo_skiplist_t *list, void **data) |
Variables | |
| const size_t | piojo_list_sizeof |
| const size_t | piojo_skiplist_sizeof |
Piojo List implementation.
Piojo Skip List implementation.
| piojo_list_t* piojo_list_alloc | ( | void | ) |
Allocates a new list. Uses default allocator and entry size of int.
| piojo_list_t* piojo_list_alloc_cb | ( | size_t | esize, |
| piojo_alloc_if | allocator | ||
| ) |
Allocates a new list.
| [in] | esize | Entry size in bytes. |
| [in] | allocator | Allocator to be used. |
| piojo_list_t* piojo_list_alloc_s | ( | size_t | esize | ) |
Allocates a new list. Uses default allocator.
| [in] | esize | Entry size in bytes. |
| piojo_list_node_t* piojo_list_append | ( | const void * | data, |
| piojo_list_t * | list | ||
| ) |
Inserts a new entry at the end of list.
| [in] | data | Entry value. |
| [out] | list | List being modified. |
| void piojo_list_clear | ( | piojo_list_t * | list | ) |
Deletes all entries in list.
| [out] | list | List being cleared. |
| piojo_list_t* piojo_list_copy | ( | const piojo_list_t * | list | ) |
Copies list and all its entries.
| [in] | list | List being copied. |
| piojo_list_node_t* piojo_list_delete | ( | const piojo_list_node_t * | node, |
| piojo_list_t * | list | ||
| ) |
Deletes a node.
| [in] | node | Node of the entry being deleted. |
| [out] | list | Non-empty list. |
| void* piojo_list_entry | ( | const piojo_list_node_t * | node | ) |
Reads entry from node.
| [in] | node |
| piojo_list_node_t* piojo_list_first | ( | const piojo_list_t * | list | ) |
Reads the first node in list.
| [in] | list |
| void piojo_list_free | ( | const piojo_list_t * | list | ) |
Frees list and all its entries.
| [in] | list | List being freed. |
| piojo_list_node_t* piojo_list_insert | ( | const void * | data, |
| piojo_list_node_t * | next, | ||
| piojo_list_t * | list | ||
| ) |
Inserts a new entry.
| [in] | data | Entry value. |
| [in] | next | Node following the entry being inserted. |
| [out] | list | List being modified. |
| piojo_list_node_t* piojo_list_last | ( | const piojo_list_t * | list | ) |
Reads the last node in list.
| [in] | list |
| piojo_list_node_t* piojo_list_next | ( | const piojo_list_node_t * | node | ) |
Reads the next node.
| [in] | node |
| piojo_list_node_t* piojo_list_prepend | ( | const void * | data, |
| piojo_list_t * | list | ||
| ) |
Inserts a new entry at the beginning of list.
| [in] | data | Entry value. |
| [out] | list | List being modified. |
| piojo_list_node_t* piojo_list_prev | ( | const piojo_list_node_t * | node | ) |
Reads the previous node.
| [in] | node |
| piojo_list_node_t* piojo_list_set | ( | const void * | data, |
| piojo_list_node_t * | node, | ||
| piojo_list_t * | list | ||
| ) |
Replaces an entry.
| [in] | data | Entry value. |
| [in] | node | Node being replaced. |
| [out] | list | List being modified. |
| size_t piojo_list_size | ( | const piojo_list_t * | list | ) |
Returns number of entries.
| [in] | list |
| piojo_skiplist_t* piojo_skiplist_alloc_cb_cmp | ( | size_t | evsize, |
| piojo_cmp_cb | keycmp, | ||
| size_t | eksize, | ||
| piojo_alloc_if | allocator | ||
| ) |
Allocates a new list.
| [in] | evsize | Entry size in bytes. |
| [in] | keycmp | Entry key comparison function. |
| [in] | eksize | Entry key size. |
| [in] | allocator | Allocator to be used. |
| piojo_skiplist_t* piojo_skiplist_alloc_cb_i32k | ( | size_t | evsize, |
| piojo_alloc_if | allocator | ||
| ) |
Allocates a new list. Uses key size of int32_t.
| [in] | evsize | Entry value size in bytes. |
| [in] | allocator | Allocator to be used. |
| piojo_skiplist_t* piojo_skiplist_alloc_cb_i64k | ( | size_t | evsize, |
| piojo_alloc_if | allocator | ||
| ) |
Allocates a new list. Uses key size of int64_t.
| [in] | evsize | Entry value size in bytes. |
| [in] | allocator | Allocator to be used. |
| piojo_skiplist_t* piojo_skiplist_alloc_cb_sizk | ( | size_t | evsize, |
| piojo_alloc_if | allocator | ||
| ) |
Allocates a new list. Uses key size of size_t.
| [in] | evsize | Entry value size in bytes. |
| [in] | allocator | Allocator to be used. |
| piojo_skiplist_t* piojo_skiplist_alloc_cmp | ( | size_t | evsize, |
| piojo_cmp_cb | keycmp, | ||
| size_t | eksize | ||
| ) |
Allocates a new list.
| [in] | evsize | Entry size in bytes. |
| [in] | keycmp | Entry key comparison function. |
| [in] | eksize | Entry key size. |
| piojo_skiplist_t* piojo_skiplist_alloc_i32k | ( | size_t | evsize | ) |
Allocates a new list. Uses default allocator and key size of int32_t.
| [in] | evsize | Entry value size in bytes. |
| piojo_skiplist_t* piojo_skiplist_alloc_i64k | ( | size_t | evsize | ) |
Allocates a new list. Uses default allocator and key size of int64_t.
| [in] | evsize | Entry value size in bytes. |
| piojo_skiplist_t* piojo_skiplist_alloc_sizk | ( | size_t | evsize | ) |
Allocates a new list. Uses default allocator and key size of size_t.
| [in] | evsize | Entry value size in bytes. |
| void piojo_skiplist_clear | ( | piojo_skiplist_t * | list | ) |
Deletes all entries in list.
| [out] | list | List being cleared. |
| piojo_skiplist_t* piojo_skiplist_copy | ( | const piojo_skiplist_t * | list | ) |
Copies list and all its entries.
| [in] | list | List being copied. |
| bool piojo_skiplist_delete | ( | const void * | key, |
| piojo_skiplist_t * | list | ||
| ) |
Deletes an entry by key.
| [in] | key | Entry key. |
| [out] | list |
| const void* piojo_skiplist_first | ( | const piojo_skiplist_t * | list, |
| void ** | data | ||
| ) |
Reads the first key in list (order given by keycmp function).
| [in] | list | |
| [out] | data | Entry value, can be NULL. |
| void piojo_skiplist_free | ( | const piojo_skiplist_t * | list | ) |
Frees list and all its entries.
| [in] | list | List being freed. |
| bool piojo_skiplist_insert | ( | const void * | key, |
| const void * | data, | ||
| piojo_skiplist_t * | list | ||
| ) |
Inserts a new entry. If data is NULL, the value is replaced with TRUE (useful for sets).
| [in] | key | Entry key. |
| [in] | data | Entry value. |
| [out] | list | List being modified. |
| const void* piojo_skiplist_last | ( | const piojo_skiplist_t * | list, |
| void ** | data | ||
| ) |
Reads the last key in list (order given by keycmp function).
| [in] | list | |
| [out] | data | Entry value, can be NULL. |
| const void* piojo_skiplist_next | ( | const void * | key, |
| const piojo_skiplist_t * | list, | ||
| void ** | data | ||
| ) |
Reads the next key (order given by keycmp function).
| [in] | key | |
| [in] | list | |
| [out] | data | Entry value, can be NULL. |
| const void* piojo_skiplist_prev | ( | const void * | key, |
| const piojo_skiplist_t * | list, | ||
| void ** | data | ||
| ) |
Reads the previous key (order given by keycmp function).
| [in] | key | |
| [in] | list | |
| [out] | data | Entry value, can be NULL. |
| void* piojo_skiplist_search | ( | const void * | key, |
| const piojo_skiplist_t * | list | ||
| ) |
Searches an entry by key.
| [in] | key | Entry key. |
| [in] | list |
| bool piojo_skiplist_set | ( | const void * | key, |
| const void * | data, | ||
| piojo_skiplist_t * | list | ||
| ) |
Replaces or inserts an entry. If data is NULL, the value is replaced with TRUE (useful for sets).
| [in] | key | Entry key. |
| [in] | data | Entry value. |
| [out] | list | List being modified. |
| size_t piojo_skiplist_size | ( | const piojo_skiplist_t * | list | ) |
Returns number of entries.
| [in] | list |
| const size_t piojo_list_sizeof |
Size of list in bytes
| const size_t piojo_skiplist_sizeof |
Size of list in bytes