123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- #ifndef __LINKED_LIST_H__
- #define __LINKED_LIST_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <stdbool.h>
- #include <stdlib.h>
- typedef enum
- {
- eLINKED_LIST_SUCCESS = 0,
-
- eLINKED_LIST_FAILURE_GENERAL = -1,
-
- eLINKED_LIST_INVALID_PARAMETER = -2,
-
- eLINKED_LIST_INVALID_HANDLE = -3,
-
- eLINKED_LIST_UNAVAILABLE_RESOURCE = -4,
-
- eLINKED_LIST_INSUFFICIENT_BUFFER = -5,
-
- eLINKED_LIST_EMPTY = -6
-
- }linked_list_err_type;
- linked_list_err_type linked_list_init(void** list_data);
- linked_list_err_type linked_list_destroy(void** list_data);
- linked_list_err_type linked_list_add(void* list_data, void *data_obj, void (*dealloc)(void*));
- linked_list_err_type linked_list_remove(void* list_data, void **data_obj);
- int linked_list_empty(void* list_data);
- linked_list_err_type linked_list_flush(void* list_data);
- linked_list_err_type linked_list_search(void* list_data, void **data_p,
- bool (*equal)(void* data_0, void* data),
- void* data_0, bool rm_if_found);
- #ifdef __cplusplus
- }
- #endif
- #endif
|