list.h
993 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
typedef struct _list *fd_list;
typedef struct node *fd_list_iterator;
fd_list fd_list_new(void);
int fd_list_empty(fd_list);
int fd_list_insert(fd_list, void *);
int fd_list_append(fd_list, void *);
int fd_list_sorted_insert(fd_list, void *, int (*)(void *, void *));
void *fd_list_remove(fd_list);
void *fd_list_head(fd_list);
void *fd_list_tail(fd_list);
void fd_list_iterate(fd_list);
int fd_list_has_next(fd_list);
void *fd_list_next_element(fd_list);
fd_list_iterator fd_list_iterate2(fd_list);
int fd_list_has_next2(fd_list_iterator);
void *fd_list_next_element2(fd_list_iterator *);
void fd_list_dispose(fd_list);
void fd_list_dispose_deep(fd_list, void (*)(void *));
void fd_list_empty_list(fd_list);
void fd_list_empty_list_deep(fd_list, void (*)(void *));
int fd_list_length(fd_list list); // XXX
#if 0
// XXX
typedef struct node *node;
struct _list {
node head, tail;
node state; // allows one iterator per list
};
struct node {
void *element;
node next;
};
#endif