1 #ifndef __LNKLIST_H__
2 #define __LNKLIST_H__
3 
4 #include <stdio.h>
5 #include <sys/types.h>
6 
7 struct lnklist;
8 
9 extern struct lnklist *
10 lnklist_create(void);
11 extern void
12 lnklist_destroy(struct lnklist *obj);
13 extern void
14 lnklist_destroy_with_destructor(struct lnklist *obj, void (*destructor)(void *));
15 extern ssize_t
16 lnklist_size(struct lnklist *obj);
17 extern void *
18 lnklist_add(struct lnklist *obj, void *data, int index);
19 extern void *
20 lnklist_add_tail(struct lnklist *obj, void *data);
21 extern void *
22 lnklist_remove(struct lnklist *obj, int index);
23 extern void *
24 lnklist_get(struct lnklist *obj, int index);
25 extern void
26 lnklist_iter_init(struct lnklist *obj);
27 extern int
28 lnklist_iter_hasnext(struct lnklist *obj);
29 extern void *
30 lnklist_iter_next(struct lnklist *obj);
31 extern void *
32 lnklist_iter_remove(struct lnklist *obj);
33 extern void *
34 lnklist_iter_remove_next(struct lnklist *obj);
35 
36 #endif
37