deps/src/libxml2-2.9.1/doc/devhelp/libxml2-list.html
| | | | | libxml2 Reference Manual |
list - lists interfaces
this module implement the list support used in various place in the library.
Author(s): Gary Pennington <[email protected]>
typedef struct _xmlLink[xmlLink](#xmlLink);
typedef[xmlLink](libxml2-list.html#xmlLink)*[xmlLinkPtr](#xmlLinkPtr);
typedef struct _xmlList[xmlList](#xmlList);
typedef[xmlList](libxml2-list.html#xmlList)*[xmlListPtr](#xmlListPtr);
int[xmlListInsert](#xmlListInsert)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
int[xmlListEmpty](#xmlListEmpty)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
void[xmlListSort](#xmlListSort)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
typedef void[xmlListDeallocator](#xmlListDeallocator)([xmlLinkPtr](libxml2-list.html#xmlLinkPtr)lk);
void[xmlListMerge](#xmlListMerge)([xmlListPtr](libxml2-list.html#xmlListPtr)l1,
[xmlListPtr](libxml2-list.html#xmlListPtr)l2);[xmlListPtr](libxml2-list.html#xmlListPtr)[xmlListCreate](#xmlListCreate)([xmlListDeallocator](libxml2-list.html#xmlListDeallocator)deallocator,
[xmlListDataCompare](libxml2-list.html#xmlListDataCompare)compare);[xmlListPtr](libxml2-list.html#xmlListPtr)[xmlListDup](#xmlListDup)(const[xmlListPtr](libxml2-list.html#xmlListPtr)old);
int[xmlListRemoveLast](#xmlListRemoveLast)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
void[xmlListWalk](#xmlListWalk)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
[xmlListWalker](libxml2-list.html#xmlListWalker)walker,
const void * user);
int[xmlListRemoveAll](#xmlListRemoveAll)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
int[xmlListCopy](#xmlListCopy)([xmlListPtr](libxml2-list.html#xmlListPtr)cur,
const[xmlListPtr](libxml2-list.html#xmlListPtr)old);
void[xmlListPopFront](#xmlListPopFront)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
void *[xmlListSearch](#xmlListSearch)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
typedef int[xmlListWalker](#xmlListWalker)(const void * data,
const void * user);
int[xmlListRemoveFirst](#xmlListRemoveFirst)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
void[xmlListReverseWalk](#xmlListReverseWalk)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
[xmlListWalker](libxml2-list.html#xmlListWalker)walker,
const void * user);
void *[xmlLinkGetData](#xmlLinkGetData)([xmlLinkPtr](libxml2-list.html#xmlLinkPtr)lk);
void[xmlListClear](#xmlListClear)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
int[xmlListAppend](#xmlListAppend)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
void[xmlListReverse](#xmlListReverse)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
typedef int[xmlListDataCompare](#xmlListDataCompare)(const void * data0,
const void * data1);
int[xmlListSize](#xmlListSize)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
int[xmlListPushFront](#xmlListPushFront)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);[xmlLinkPtr](libxml2-list.html#xmlLinkPtr)[xmlListEnd](#xmlListEnd)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
void[xmlListPopBack](#xmlListPopBack)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
void *[xmlListReverseSearch](#xmlListReverseSearch)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);
int[xmlListPushBack](#xmlListPushBack)([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data);[xmlLinkPtr](libxml2-list.html#xmlLinkPtr)[xmlListFront](#xmlListFront)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
void[xmlListDelete](#xmlListDelete)([xmlListPtr](libxml2-list.html#xmlListPtr)l);
struct _xmlLink {
The content of this structure is not made public by the API.
} xmlLink;
[xmlLink](libxml2-list.html#xmlLink)* xmlLinkPtr;
struct _xmlList {
The content of this structure is not made public by the API.
} xmlList;
[xmlList](libxml2-list.html#xmlList)* xmlListPtr;
int xmlListDataCompare (const void * data0,
const void * data1)
Callback function used to compare 2 data.
| data0: | the first data | | data1: | the second data | | Returns: | 0 is equality, -1 or 1 otherwise depending on the ordering. |
void xmlListDeallocator ([xmlLinkPtr](libxml2-list.html#xmlLinkPtr)lk)
Callback function used to free data from a list.
| lk: | the data to deallocate |
int xmlListWalker (const void * data,
const void * user)
Callback function used when walking a list with xmlListWalk().
| data: | the data found in the list | | user: | extra user provided data to the walker | | Returns: | 0 to stop walking the list, 1 otherwise. |
void * xmlLinkGetData ([xmlLinkPtr](libxml2-list.html#xmlLinkPtr)lk)
See Returns.
| lk: | a link | | Returns: | a pointer to the data referenced from this link |
int xmlListAppend ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Insert data in the ordered list at the end for this value
| l: | a list | | data: | the data | | Returns: | 0 in case of success, 1 in case of failure |
void xmlListClear ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Remove the all data in the list
| l: | a list |
int xmlListCopy ([xmlListPtr](libxml2-list.html#xmlListPtr)cur,
const[xmlListPtr](libxml2-list.html#xmlListPtr)old)
Move all the element from the old list in the new list
| cur: | the new list | | old: | the old list | | Returns: | 0 in case of success 1 in case of error |
[xmlListPtr](libxml2-list.html#xmlListPtr)xmlListCreate ([xmlListDeallocator](libxml2-list.html#xmlListDeallocator)deallocator,
[xmlListDataCompare](libxml2-list.html#xmlListDataCompare)compare)
Create a new list
| deallocator: | an optional deallocator function | | compare: | an optional comparison function | | Returns: | the new list or NULL in case of error |
void xmlListDelete ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Deletes the list and its associated data
| l: | a list |
[xmlListPtr](libxml2-list.html#xmlListPtr)xmlListDup (const[xmlListPtr](libxml2-list.html#xmlListPtr)old)
Duplicate the list
| old: | the list | | Returns: | a new copy of the list or NULL in case of error |
int xmlListEmpty ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Is the list empty ?
| l: | a list | | Returns: | 1 if the list is empty, 0 if not empty and -1 in case of error |
[xmlLinkPtr](libxml2-list.html#xmlLinkPtr)xmlListEnd ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Get the last element in the list
| l: | a list | | Returns: | the last element in the list, or NULL |
[xmlLinkPtr](libxml2-list.html#xmlLinkPtr)xmlListFront ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Get the first element in the list
| l: | a list | | Returns: | the first element in the list, or NULL |
int xmlListInsert ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Insert data in the ordered list at the beginning for this value
| l: | a list | | data: | the data | | Returns: | 0 in case of success, 1 in case of failure |
void xmlListMerge ([xmlListPtr](libxml2-list.html#xmlListPtr)l1,
[xmlListPtr](libxml2-list.html#xmlListPtr)l2)
include all the elements of the second list in the first one and clear the second list
| l1: | the original list | | l2: | the new list |
void xmlListPopBack ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Removes the last element in the list
| l: | a list |
void xmlListPopFront ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Removes the first element in the list
| l: | a list |
int xmlListPushBack ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
add the new data at the end of the list
| l: | a list | | data: | new data | | Returns: | 1 if successful, 0 otherwise |
int xmlListPushFront ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
add the new data at the beginning of the list
| l: | a list | | data: | new data | | Returns: | 1 if successful, 0 otherwise |
int xmlListRemoveAll ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Remove the all instance associated to data in the list
| l: | a list | | data: | list data | | Returns: | the number of deallocation, or 0 if not found |
int xmlListRemoveFirst ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Remove the first instance associated to data in the list
| l: | a list | | data: | list data | | Returns: | 1 if a deallocation occured, or 0 if not found |
int xmlListRemoveLast ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Remove the last instance associated to data in the list
| l: | a list | | data: | list data | | Returns: | 1 if a deallocation occured, or 0 if not found |
void xmlListReverse ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Reverse the order of the elements in the list
| l: | a list |
void * xmlListReverseSearch ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Search the list in reverse order for an existing value of @data
| l: | a list | | data: | a search value | | Returns: | the value associated to @data or NULL in case of error |
void xmlListReverseWalk ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
[xmlListWalker](libxml2-list.html#xmlListWalker)walker,
const void * user)
Walk all the element of the list in reverse order and apply the walker function to it
| l: | a list | | walker: | a processing function | | user: | a user parameter passed to the walker function |
void * xmlListSearch ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
void * data)
Search the list for an existing value of @data
| l: | a list | | data: | a search value | | Returns: | the value associated to @data or NULL in case of error |
int xmlListSize ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Get the number of elements in the list
| l: | a list | | Returns: | the number of elements in the list or -1 in case of error |
void xmlListSort ([xmlListPtr](libxml2-list.html#xmlListPtr)l)
Sort all the elements in the list
| l: | a list |
void xmlListWalk ([xmlListPtr](libxml2-list.html#xmlListPtr)l,
[xmlListWalker](libxml2-list.html#xmlListWalker)walker,
const void * user)
Walk all the element of the first from first to last and apply the walker function to it
| l: | a list | | walker: | a processing function | | user: | a user parameter passed to the walker function |