#include "xroad_common_fwd.h"
#include "xroad_common_types.h"
#include <stdint.h>
#include <stdlib.h>
Go to the source code of this file.
|
#define | xroad_list_create(...) |
|
#define | __xroad_list_dtor__ __dtor__(xroad_list_destructor) |
|
#define | xroad_list_push_back(list, val, size) xroad_list_insert(list, xroad_list_get_last(list), val, size) |
|
#define | xroad_list_push_front(list, val, size) xroad_list_insert(list, NULL, val, size) |
|
|
xroad_list_t * | xroad_list_create_ex (xroad_mem_pool_t *pool, xroad_list_free_func_t free_func) |
|
void | xroad_list_clear (xroad_list_t *list) |
|
void | xroad_list_destroy (xroad_list_t *list) |
|
void | xroad_list_destructor (void *list) |
|
uint32_t | xroad_list_get_size (xroad_list_t *list) |
|
xroad_list_entry_t * | xroad_list_insert (xroad_list_t *list, xroad_list_entry_t *entry, const void *val, uint32_t size) |
|
void | xroad_list_insert_at (xroad_list_t *list, xroad_list_entry_t *src, xroad_list_entry_t *dst) |
|
xroad_list_entry_t * | xroad_list_delete (xroad_list_t *list, xroad_list_entry_t *entry, xroad_list_free_func_t free_func) |
|
xroad_list_entry_t * | xroad_list_get_first (xroad_list_t *list) |
|
xroad_list_entry_t * | xroad_list_get_last (xroad_list_t *list) |
|
xroad_list_entry_t * | xroad_list_get_next (xroad_list_entry_t *entry) |
|
xroad_list_entry_t * | xroad_list_get_prev (xroad_list_entry_t *entry) |
|
void * | xroad_list_entry_get_value (xroad_list_entry_t *entry) |
|
uint32_t | xroad_list_entry_get_size (xroad_list_entry_t *entry) |
|
xroad_list_entry_t * | xroad_list_find (xroad_list_t *list, void *val, xroad_list_cmp_func_t cb) |
|
void | xroad_list_entry_set_value (xroad_list_entry_t *entry, const void *val, uint32_t size, xroad_list_free_func_t free_func) |
|
◆ xroad_list_create
#define xroad_list_create |
( |
|
... | ) |
|
Value:({ \
xroad_list_args_t args = {__VA_ARGS__}; \
xroad_list_create_ex(args.pool, args.dtor); \
})
◆ xroad_list_push_back
insert value at the end of list
- Parameters
-
[in] | list | - pointer to list container |
[in] | val | - pointer to inserted value |
[in] | size | - size of inserted value |
- Returns
- pointer to created entry
◆ xroad_list_push_front
#define xroad_list_push_front |
( |
|
list, |
|
|
|
val, |
|
|
|
size |
|
) |
| xroad_list_insert(list, NULL, val, size) |
insert value at the top of list
- Parameters
-
[in] | list | - pointer to list container |
[in] | val | - pointer to inserted value |
[in] | size | - size of inserted value |
- Returns
- pointer to created entry
◆ xroad_list_cmp_func_t
typedef int32_t(* xroad_list_cmp_func_t) (const void *, const void *) |
list entries compare function
◆ xroad_list_free_func_t
typedef void(* xroad_list_free_func_t) (void *, uint32_t) |
◆ xroad_list_clear()
clear list container
- Parameters
-
[in] | list | - list to clear |
[in] | free_func | - function for free list entries data, NULL - no free performed |
◆ xroad_list_create_ex()
create new list container
- Returns
- list object
◆ xroad_list_delete()
delete entry from list
- Parameters
-
[in] | list | - pointer to list container |
[in] | entry | - entry to delete |
[in] | free_func | - function for free list entries data, NULL - no free performed |
- Returns
- next entry
◆ xroad_list_destroy()
destroy list container
- Parameters
-
[in] | list | - container to destroy. If NULL, nothing happened |
◆ xroad_list_entry_get_size()
uint32_t xroad_list_entry_get_size |
( |
xroad_list_entry_t * |
entry | ) |
|
return entry data size
- Parameters
-
[in] | entry | - entry with required value |
- Returns
- entry value
◆ xroad_list_entry_get_value()
void* xroad_list_entry_get_value |
( |
xroad_list_entry_t * |
entry | ) |
|
return entry value
- Parameters
-
[in] | entry | - entry with required value |
- Returns
- entry value
◆ xroad_list_entry_set_value()
void xroad_list_entry_set_value |
( |
xroad_list_entry_t * |
entry, |
|
|
const void * |
val, |
|
|
uint32_t |
size, |
|
|
xroad_list_free_func_t |
free_func |
|
) |
| |
list entry set value
- Parameters
-
[in] | entry | - entry to replace value |
[in] | val | - new entry value |
[in] | size | - new entry size |
[in] | free_func | - free function |
◆ xroad_list_find()
return first found entry
- Parameters
-
[in] | list | - pointer to list container |
[in] | val | - searching value |
[in] | cb | - pointer to comparer callback |
- Returns
- entry value if found otherwise NULL
◆ xroad_list_get_first()
xroad_list_entry_t* xroad_list_get_first |
( |
xroad_list_t * |
list | ) |
|
return first entry of list
- Parameters
-
[in] | list | - pointer to list container |
- Returns
- first entry
◆ xroad_list_get_last()
xroad_list_entry_t* xroad_list_get_last |
( |
xroad_list_t * |
list | ) |
|
return last entry of list
- Parameters
-
[in] | list | - pointer to list container |
- Returns
- last entry
◆ xroad_list_get_next()
xroad_list_entry_t* xroad_list_get_next |
( |
xroad_list_entry_t * |
entry | ) |
|
return next entry of list
- Parameters
-
[in] | entry | - previous entry |
- Returns
- next entry
◆ xroad_list_get_prev()
xroad_list_entry_t* xroad_list_get_prev |
( |
xroad_list_entry_t * |
entry | ) |
|
return previous entry of list
- Parameters
-
- Returns
- previous entry
◆ xroad_list_get_size()
return list size
- Parameters
-
[in] | list | - pointer to list container |
◆ xroad_list_insert()
xroad_list_entry_t* xroad_list_insert |
( |
xroad_list_t * |
list, |
|
|
xroad_list_entry_t * |
entry, |
|
|
const void * |
val, |
|
|
uint32_t |
size |
|
) |
| |
insert value into list at specified position
- Parameters
-
[in] | list | - pointer to list container |
[in] | entry | - new value will be inserted right after this entry |
[in] | val | - pointer to inserted value |
[in] | size | - size of inserted value |
- Returns
- pointer to created entry
◆ xroad_list_insert_at()
void xroad_list_insert_at |
( |
xroad_list_t * |
list, |
|
|
xroad_list_entry_t * |
src, |
|
|
xroad_list_entry_t * |
dst |
|
) |
| |
inserts src entry after dst
- Parameters
-
[in] | list | - pointer to list container |
[in] | src | - moving entry |
[in] | dst | - if NULL than entry inserted to first place, otherwise inserted next after dst |