libxml2 Reference Manual |
---|
list - lists interfaces
this module implement the list support used in various place in the library.
Author(s): Gary Pennington <Gary.Pennington@uk.sun.com>
typedef struct _xmlLink xmlLink; typedef xmlLink * xmlLinkPtr; typedef struct _xmlList xmlList; typedef xmlList * xmlListPtr; int xmlListInsert (xmlListPtr l,
void * data); int xmlListEmpty (xmlListPtr l); void xmlListSort (xmlListPtr l); typedef void xmlListDeallocator (xmlLinkPtr lk); void xmlListMerge (xmlListPtr l1,
xmlListPtr l2); xmlListPtr xmlListCreate (xmlListDeallocator deallocator,
xmlListDataCompare compare); xmlListPtr xmlListDup (const xmlListPtr old); int xmlListRemoveLast (xmlListPtr l,
void * data); void xmlListWalk (xmlListPtr l,
xmlListWalker walker,
void * user); int xmlListRemoveAll (xmlListPtr l,
void * data); int xmlListCopy (xmlListPtr cur,
const xmlListPtr old); void xmlListPopFront (xmlListPtr l); void * xmlListSearch (xmlListPtr l,
void * data); typedef int xmlListWalker (const void * data,
void * user); int xmlListRemoveFirst (xmlListPtr l,
void * data); void xmlListReverseWalk (xmlListPtr l,
xmlListWalker walker,
void * user); void * xmlLinkGetData (xmlLinkPtr lk); void xmlListClear (xmlListPtr l); int xmlListAppend (xmlListPtr l,
void * data); void xmlListReverse (xmlListPtr l); typedef int xmlListDataCompare (const void * data0,
const void * data1); int xmlListSize (xmlListPtr l); int xmlListPushFront (xmlListPtr l,
void * data); xmlLinkPtr xmlListEnd (xmlListPtr l); void xmlListPopBack (xmlListPtr l); void * xmlListReverseSearch (xmlListPtr l,
void * data); int xmlListPushBack (xmlListPtr l,
void * data); xmlLinkPtr xmlListFront (xmlListPtr l); void xmlListDelete (xmlListPtr l);
struct _xmlLink { The content of this structure is not made public by the API. } xmlLink;
struct _xmlList { The content of this structure is not made public by the API. } xmlList;
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 lk)
Callback function used to free data from a list.
lk: | the data to deallocate |
int xmlListWalker (const void * data,
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 lk)
See Returns.
lk: | a link |
Returns: | a pointer to the data referenced from this link |
int xmlListAppend (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 |
int xmlListCopy (xmlListPtr cur,
const 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 xmlListCreate (xmlListDeallocator deallocator,
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 |
xmlListPtr xmlListDup (const xmlListPtr old)
Duplicate the list
old: | the list |
Returns: | a new copy of the list or NULL in case of error |
int xmlListEmpty (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 xmlListEnd (xmlListPtr l)
Get the last element in the list
l: | a list |
Returns: | the last element in the list, or NULL |
xmlLinkPtr xmlListFront (xmlListPtr l)
Get the first element in the list
l: | a list |
Returns: | the first element in the list, or NULL |
int xmlListInsert (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 l1,
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 xmlListPopFront (xmlListPtr l)
Removes the first element in the list
l: | a list |
int xmlListPushBack (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 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 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 l,
void * data)
Remove the first instance associated to data in the list
l: | a list |
data: | list data |
Returns: | 1 if a deallocation occurred, or 0 if not found |
int xmlListRemoveLast (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 occurred, or 0 if not found |
void xmlListReverse (xmlListPtr l)
Reverse the order of the elements in the list
l: | a list |
void * xmlListReverseSearch (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 l,
xmlListWalker walker,
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 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 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 xmlListWalk (xmlListPtr l,
xmlListWalker walker,
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 |