Go to the documentation of this file.
51 #define list_create cctools_list_create
52 #define list_destroy cctools_list_destroy
53 #define list_length cctools_list_length
54 #define list_cursor_create cctools_list_cursor_create
55 #define list_cursor_destroy cctools_list_cursor_destroy
56 #define list_cursor_clone cctools_list_cursor_clone
57 #define list_reset cctools_list_reset
58 #define list_seek cctools_list_seek
59 #define list_tell cctools_list_tell
60 #define list_next cctools_list_next
61 #define list_prev cctools_list_prev
62 #define list_get cctools_list_get
63 #define list_set cctools_list_set
64 #define list_drop cctools_list_drop
65 #define list_insert cctools_list_insert
67 #define list_size cctools_list_size
68 #define list_delete cctools_list_delete
69 #define list_free cctools_list_free
70 #define list_pop_head cctools_list_pop_head
71 #define list_peek_head cctools_list_peek_head
72 #define list_pop_tail cctools_list_pop_tail
73 #define list_peek_tail cctools_list_peek_tail
74 #define list_peek_current cctools_list_peek_current
75 #define list_remove cctools_list_remove
76 #define list_find cctools_list_find
77 #define list_splice cctools_list_splice
78 #define list_split cctools_list_split
79 #define list_push_head cctools_list_push_head
80 #define list_push_tail cctools_list_push_tail
81 #define list_push_priority cctools_list_push_priority
82 #define list_iterate cctools_list_iterate
83 #define list_iterate_reverse cctools_list_iterate_reverse
84 #define list_first_item cctools_list_first_item
85 #define list_next_item cctools_list_next_item
152 bool list_seek(
struct list_cursor *cur,
int index);
165 bool list_tell(
struct list_cursor *cur,
unsigned *index);
190 bool list_get(
struct list_cursor *cur,
void **item);
200 bool list_set(
struct list_cursor *cur,
void *item);
219 void list_insert(
struct list_cursor *cur,
void *item);
224 typedef int (*list_op_t) (
void *item,
const void *arg);
225 typedef double (*list_priority_t) (
void *item);
265 void list_clear(
struct list *list,
void (*delete_func)(
void*item) );
273 struct list *
list_splice(
struct list *top,
struct list *bottom);
284 struct list *
list_split(
struct list *src, list_op_t cmp,
const void *arg);
358 void *
list_find(
struct list *list, list_op_t cmp,
const void *arg);
367 void *
list_remove(
struct list *list,
const void *value);
393 int list_iterate(
struct list *list, list_op_t op,
const void *arg);
408 struct list *
list_sort(
struct list *list,
int (*comparator) (
const void *,
const void *));
422 #define LIST_ITERATE( list, item ) list_first_item(list); while((item=list_next_item(list)))
int list_iterate(struct list *list, list_op_t op, const void *arg)
Apply a function to a list.
void list_first_item(struct list *list)
Begin traversing a list.
void list_reset(struct list_cursor *cur)
Reset the position of a cursor.
void * list_pop_head(struct list *list)
Pop an item off of the list head.
void list_free(struct list *list)
Free every item referred to by the list.
void list_clear(struct list *list, void(*delete_func)(void *item))
Delete every item contained within this list, using the provided function.
void * list_remove(struct list *list, const void *value)
Remove an item from the list This function searches the list for the item pointed to by value and rem...
bool list_destroy(struct list *list)
Delete an empty list.
void list_push_priority(struct list *list, list_priority_t p, void *item)
Push an item onto of a list in priority order.
void * list_pop_tail(struct list *list)
Pop an item off of the list tail.
struct list * list_duplicate(struct list *list)
Duplicate a linked list Returns a copy of the linked list.
void * list_rotate(struct list *list)
Move the list head to the tail.
int list_push_tail(struct list *list, void *item)
Push an item onto the list tail.
void * list_find(struct list *list, list_op_t cmp, const void *arg)
Find an element within a list This function searches the list, comparing each element in the list to ...
struct list * list_create(void)
Create an empty linked list.
void list_cursor_destroy(struct list_cursor *cur)
Delete a previously created cursor.
bool list_get(struct list_cursor *cur, void **item)
Get the item under a cursor.
bool list_set(struct list_cursor *cur, void *item)
Set the value under the cursor.
struct list * list_split(struct list *src, list_op_t cmp, const void *arg)
Split a list into two at the given item If arg is NULL or not found, list_split returns NULL and the ...
bool list_tell(struct list_cursor *cur, unsigned *index)
Get the position of a cursor within a list.
void * list_peek_current(struct list *list)
Peek at the current element in the iteration.
unsigned list_length(struct list *list)
Get the number of items in a list.
void * list_next_item(struct list *list)
Continue traversing a list.
bool list_next(struct list_cursor *cur)
Move a cursor to the next item.
void list_delete(struct list *list)
Delete a linked list.
int list_push_head(struct list *list, void *item)
Push an item onto the list head.
int list_size(struct list *list)
Count the elements in a list.
struct list_cursor * list_cursor_clone(struct list_cursor *cur)
Get a copy of an existing cursor.
bool list_seek(struct list_cursor *cur, int index)
Move a cursor to an item by index.
bool list_prev(struct list_cursor *cur)
Move a cursor to the previous item.
struct list_cursor * list_cursor_create(struct list *list)
Create a new cursor on a list.
void list_insert(struct list_cursor *cur, void *item)
Insert an item to the left of the cursor.
void * list_peek_head(struct list *list)
Peek at the list head.
struct list * list_splice(struct list *top, struct list *bottom)
Splice two lists together.
void * list_peek_tail(struct list *list)
Peek at the list tail.
int list_iterate_reverse(struct list *list, list_op_t op, const void *arg)
Apply a function to a list in reverse.
struct list * list_sort(struct list *list, int(*comparator)(const void *, const void *))
Sort a list using a comparator function.
bool list_drop(struct list_cursor *cur)
Remove the item under the cursor.