1 #ifndef _DRAGONSTD_LIST_H_
2 #define _DRAGONSTD_LIST_H_
6 #define ITERATE_LIST(list, pair) for (ListPair *pair = (list)->first; pair != NULL; pair = pair->next)
8 typedef struct ListPair
10 struct ListPair *next;
15 typedef bool (*ListComparator)(void *v1, void *v2);
23 bool list_compare_default(void *v1, void *v2);
24 bool list_compare_string(void *v1, void *v2);
26 List list_create(ListComparator cmp);
27 void list_clear(List *list);
28 void list_clear_func(List *list, void (*func)(void *key, void *value, void *arg), void *arg);
30 bool list_put(List *list, void *key, void *value);
31 void *list_get_cached(List *list, void *key, void *(*provider)(void *key));
32 void list_set(List *list, void *key, void *value);
33 void *list_get(List *list, void *key);
34 void *list_delete(List *list, void *key);
36 bool list_serialize(int fd, List *list); // ToDo
37 bool list_deserialize(int fd, List *list); // ToDo