2
* Summary: lists interfaces
3
* Description: this module implement the list support used in
4
* various place in the library.
6
* Copy: See Copyright for the status of this software.
8
* Author: Gary Pennington <Gary.Pennington@uk.sun.com>
11
#ifndef __XML_LINK_INCLUDE__
12
#define __XML_LINK_INCLUDE__
14
#include <libxml/xmlversion.h>
20
typedef struct _xmlLink xmlLink;
21
typedef xmlLink *xmlLinkPtr;
23
typedef struct _xmlList xmlList;
24
typedef xmlList *xmlListPtr;
28
* @lk: the data to deallocate
30
* Callback function used to free data from a list.
32
typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
35
* @data0: the first data
36
* @data1: the second data
38
* Callback function used to compare 2 data.
40
* Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
42
typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
45
* @data: the data found in the list
46
* @user: extra user provided data to the walker
48
* Callback function used when walking a list with xmlListWalk().
50
* Returns 0 to stop walking the list, 1 otherwise.
52
typedef int (*xmlListWalker) (const void *data, const void *user);
54
/* Creation/Deletion */
55
XMLPUBFUN xmlListPtr XMLCALL
56
xmlListCreate (xmlListDeallocator deallocator,
57
xmlListDataCompare compare);
58
XMLPUBFUN void XMLCALL
59
xmlListDelete (xmlListPtr l);
62
XMLPUBFUN void * XMLCALL
63
xmlListSearch (xmlListPtr l,
65
XMLPUBFUN void * XMLCALL
66
xmlListReverseSearch (xmlListPtr l,
69
xmlListInsert (xmlListPtr l,
72
xmlListAppend (xmlListPtr l,
75
xmlListRemoveFirst (xmlListPtr l,
78
xmlListRemoveLast (xmlListPtr l,
81
xmlListRemoveAll (xmlListPtr l,
83
XMLPUBFUN void XMLCALL
84
xmlListClear (xmlListPtr l);
86
xmlListEmpty (xmlListPtr l);
87
XMLPUBFUN xmlLinkPtr XMLCALL
88
xmlListFront (xmlListPtr l);
89
XMLPUBFUN xmlLinkPtr XMLCALL
90
xmlListEnd (xmlListPtr l);
92
xmlListSize (xmlListPtr l);
94
XMLPUBFUN void XMLCALL
95
xmlListPopFront (xmlListPtr l);
96
XMLPUBFUN void XMLCALL
97
xmlListPopBack (xmlListPtr l);
99
xmlListPushFront (xmlListPtr l,
101
XMLPUBFUN int XMLCALL
102
xmlListPushBack (xmlListPtr l,
105
/* Advanced Operators */
106
XMLPUBFUN void XMLCALL
107
xmlListReverse (xmlListPtr l);
108
XMLPUBFUN void XMLCALL
109
xmlListSort (xmlListPtr l);
110
XMLPUBFUN void XMLCALL
111
xmlListWalk (xmlListPtr l,
112
xmlListWalker walker,
114
XMLPUBFUN void XMLCALL
115
xmlListReverseWalk (xmlListPtr l,
116
xmlListWalker walker,
118
XMLPUBFUN void XMLCALL
119
xmlListMerge (xmlListPtr l1,
121
XMLPUBFUN xmlListPtr XMLCALL
122
xmlListDup (const xmlListPtr old);
123
XMLPUBFUN int XMLCALL
124
xmlListCopy (xmlListPtr cur,
125
const xmlListPtr old);
127
XMLPUBFUN void * XMLCALL
128
xmlLinkGetData (xmlLinkPtr lk);
130
/* xmlListUnique() */
137
#endif /* __XML_LINK_INCLUDE__ */