mcl_list.h
Go to the documentation of this file.
1 
12 #ifndef MCL_LIST_H_
13 #define MCL_LIST_H_
14 
16 
17 #ifdef __cplusplus
18 extern "C"
19 {
20 #endif
21 
25 typedef struct mcl_list_node_t
26 {
27  void *data;
31 
35 typedef struct mcl_list_t
36 {
41 } mcl_list_t;
42 
54 typedef mcl_error_t (*mcl_list_compare_callback)(void *reference_item, const void *item_to_compare);
55 
61 typedef void (*mcl_list_item_destroy_callback)(void **item);
62 
75 
93 
110 
127 
144 
159 extern MCL_CORE_EXPORT mcl_error_t mcl_list_exist(mcl_list_t *list, const void *item_to_find, mcl_list_compare_callback compare_function, void **item);
160 
168 extern MCL_CORE_EXPORT void mcl_list_reset(mcl_list_t *list);
169 
180 extern MCL_CORE_EXPORT void mcl_list_destroy(mcl_list_t **list);
181 
192 
193 #ifdef __cplusplus
194 }
195 #endif
196 
197 #endif //MCL_LIST_H_
mcl_error_t(* mcl_list_compare_callback)(void *reference_item, const void *item_to_compare)
Definition: mcl_list.h:54
size_t mcl_size_t
MCL_CORE_EXPORT mcl_error_t mcl_list_remove(mcl_list_t *list, mcl_list_node_t *node)
Definition: list.c:117
mcl_int32_t mcl_error_t
void(* mcl_list_item_destroy_callback)(void **item)
Definition: mcl_list.h:61
MCL_CORE_EXPORT mcl_error_t mcl_list_next(mcl_list_t *list, mcl_list_node_t **node)
Definition: list.c:76
MCL_CORE_EXPORT mcl_error_t mcl_list_remove_with_content(mcl_list_t *list, mcl_list_node_t *node, mcl_list_item_destroy_callback callback)
Definition: list.c:214
struct mcl_list_node_t * next
Next node in the list.
Definition: mcl_list.h:29
mcl_list_node_t * head
Head node of the list.
Definition: mcl_list.h:37
MCL_CORE_EXPORT mcl_error_t mcl_list_add(mcl_list_t *list, void *data)
Definition: list.c:34
MCL_CORE_EXPORT void mcl_list_destroy_with_content(mcl_list_t **list, mcl_list_item_destroy_callback callback)
Definition: list.c:302
#define MCL_CORE_EXPORT
MCL_CORE_EXPORT void mcl_list_reset(mcl_list_t *list)
Definition: list.c:276
struct mcl_list_node_t * prev
Previous node in the list.
Definition: mcl_list.h:28
mcl_list_node_t * last
Last node of the list.
Definition: mcl_list.h:38
MCL_CORE_EXPORT mcl_error_t mcl_list_exist(mcl_list_t *list, const void *item_to_find, mcl_list_compare_callback compare_function, void **item)
Definition: list.c:239
mcl_list_node_t * current
Current node of the list.
Definition: mcl_list.h:39
MCL_CORE_EXPORT void mcl_list_destroy(mcl_list_t **list)
Definition: list.c:293
MCL_CORE_EXPORT mcl_error_t mcl_list_initialize(mcl_list_t **list)
Definition: list.c:13
mcl_size_t count
Node count of the list.
Definition: mcl_list.h:40
void * data
Data of the node.
Definition: mcl_list.h:27
Common module interface header file.