libwget-list(3) | wget2 | libwget-list(3) |
libwget-list - Double linked list
typedef struct _wget_list_st wget_list_t
void * wget_list_append (wget_list_t **list, const
void *data, size_t size)
void * wget_list_prepend (wget_list_t **list, const void *data,
size_t size)
void wget_list_remove (wget_list_t **list, void *elem)
void * wget_list_getfirst (const wget_list_t *list)
void * wget_list_getlast (const wget_list_t *list)
void * wget_list_getnext (const void *elem)
int wget_list_browse (const wget_list_t *list,
wget_list_browse_t browse, void *context)
void wget_list_free (wget_list_t **list)
Double linked lists provide fast insertion, removal and iteration in either direction.
Each element has pointers to the next and the previous element.
Iteration can be done by calling the wget_list_browse() function, so
the list structure doesn't need to be exposed.
This datatype is used by the Wget tool to implement the job queue (append and remove).
See wget_list_append() for an example on how to use lists.
Type for double linked lists and list entries.
Parameters
Returns
Append an element to the end of the list.
size bytes at data will be copied and appended to the list.
A pointer to the new element will be returned.
Note
Example:
wget_list_t *list = NULL; struct mystruct mydata1 = { .x = 1, .y = 25 }; struct mystruct mydata2 = { .x = 5, .y = 99 }; struct mystruct *data; wget_list_append(&list, &mydata1, sizeof(mydata1)); // append mydata1 to list wget_list_append(&list, &mydata2, sizeof(mydata2)); // append mydata2 to list data = wget_list_getfirst(list); printf("data=(%d,%d)0, data->x, data->y); // prints 'data=(1,25)' wget_list_remove(&list, data); data = wget_list_getfirst(list); printf("data=(%d,%d)0, data->x, data->y); // prints 'data=(5,99)' wget_list_free(&list);
Parameters
Returns
Insert an entry at the beginning of the list. size bytes at data will be copied and prepended to the list.
A pointer to the new element will be returned. It must be freed by wget_list_remove() or implicitely by wget_list_free().
Parameters
Remove an element from the list.
Parameters
Returns
Get the first element of a list.
Parameters
Returns
Get the last element of a list.
Parameters
Returns
Get the next element of a list.
Parameters
Returns
Iterate through all entries of the list and call the function browse for each.
// assume that list contains C strings. wget_list_t *list = NULL; static int print_elem(void *context, const char *elem) {
printf("%s0,elem);
return 0; } void dump(WGET_LIST *list) {
wget_list_browse(list, (wget_list_browse_t)print_elem, NULL); }
Parameters
Freeing the list and it's entry.
Generated automatically by Doxygen for wget2 from the source code.
Tue Jan 26 2021 | Version 1.99.1 |