xref: /aosp_15_r20/external/libxml2/include/libxml/list.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /*
2*7c568831SAndroid Build Coastguard Worker  * Summary: lists interfaces
3*7c568831SAndroid Build Coastguard Worker  * Description: this module implement the list support used in
4*7c568831SAndroid Build Coastguard Worker  * various place in the library.
5*7c568831SAndroid Build Coastguard Worker  *
6*7c568831SAndroid Build Coastguard Worker  * Copy: See Copyright for the status of this software.
7*7c568831SAndroid Build Coastguard Worker  *
8*7c568831SAndroid Build Coastguard Worker  * Author: Gary Pennington <[email protected]>
9*7c568831SAndroid Build Coastguard Worker  */
10*7c568831SAndroid Build Coastguard Worker 
11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_LINK_INCLUDE__
12*7c568831SAndroid Build Coastguard Worker #define __XML_LINK_INCLUDE__
13*7c568831SAndroid Build Coastguard Worker 
14*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
15*7c568831SAndroid Build Coastguard Worker 
16*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
17*7c568831SAndroid Build Coastguard Worker extern "C" {
18*7c568831SAndroid Build Coastguard Worker #endif
19*7c568831SAndroid Build Coastguard Worker 
20*7c568831SAndroid Build Coastguard Worker typedef struct _xmlLink xmlLink;
21*7c568831SAndroid Build Coastguard Worker typedef xmlLink *xmlLinkPtr;
22*7c568831SAndroid Build Coastguard Worker 
23*7c568831SAndroid Build Coastguard Worker typedef struct _xmlList xmlList;
24*7c568831SAndroid Build Coastguard Worker typedef xmlList *xmlListPtr;
25*7c568831SAndroid Build Coastguard Worker 
26*7c568831SAndroid Build Coastguard Worker /**
27*7c568831SAndroid Build Coastguard Worker  * xmlListDeallocator:
28*7c568831SAndroid Build Coastguard Worker  * @lk:  the data to deallocate
29*7c568831SAndroid Build Coastguard Worker  *
30*7c568831SAndroid Build Coastguard Worker  * Callback function used to free data from a list.
31*7c568831SAndroid Build Coastguard Worker  */
32*7c568831SAndroid Build Coastguard Worker typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
33*7c568831SAndroid Build Coastguard Worker /**
34*7c568831SAndroid Build Coastguard Worker  * xmlListDataCompare:
35*7c568831SAndroid Build Coastguard Worker  * @data0: the first data
36*7c568831SAndroid Build Coastguard Worker  * @data1: the second data
37*7c568831SAndroid Build Coastguard Worker  *
38*7c568831SAndroid Build Coastguard Worker  * Callback function used to compare 2 data.
39*7c568831SAndroid Build Coastguard Worker  *
40*7c568831SAndroid Build Coastguard Worker  * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
41*7c568831SAndroid Build Coastguard Worker  */
42*7c568831SAndroid Build Coastguard Worker typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
43*7c568831SAndroid Build Coastguard Worker /**
44*7c568831SAndroid Build Coastguard Worker  * xmlListWalker:
45*7c568831SAndroid Build Coastguard Worker  * @data: the data found in the list
46*7c568831SAndroid Build Coastguard Worker  * @user: extra user provided data to the walker
47*7c568831SAndroid Build Coastguard Worker  *
48*7c568831SAndroid Build Coastguard Worker  * Callback function used when walking a list with xmlListWalk().
49*7c568831SAndroid Build Coastguard Worker  *
50*7c568831SAndroid Build Coastguard Worker  * Returns 0 to stop walking the list, 1 otherwise.
51*7c568831SAndroid Build Coastguard Worker  */
52*7c568831SAndroid Build Coastguard Worker typedef int (*xmlListWalker) (const void *data, void *user);
53*7c568831SAndroid Build Coastguard Worker 
54*7c568831SAndroid Build Coastguard Worker /* Creation/Deletion */
55*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlListPtr
56*7c568831SAndroid Build Coastguard Worker 		xmlListCreate		(xmlListDeallocator deallocator,
57*7c568831SAndroid Build Coastguard Worker 	                                 xmlListDataCompare compare);
58*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
59*7c568831SAndroid Build Coastguard Worker 		xmlListDelete		(xmlListPtr l);
60*7c568831SAndroid Build Coastguard Worker 
61*7c568831SAndroid Build Coastguard Worker /* Basic Operators */
62*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void *
63*7c568831SAndroid Build Coastguard Worker 		xmlListSearch		(xmlListPtr l,
64*7c568831SAndroid Build Coastguard Worker 					 void *data);
65*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void *
66*7c568831SAndroid Build Coastguard Worker 		xmlListReverseSearch	(xmlListPtr l,
67*7c568831SAndroid Build Coastguard Worker 					 void *data);
68*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
69*7c568831SAndroid Build Coastguard Worker 		xmlListInsert		(xmlListPtr l,
70*7c568831SAndroid Build Coastguard Worker 					 void *data) ;
71*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
72*7c568831SAndroid Build Coastguard Worker 		xmlListAppend		(xmlListPtr l,
73*7c568831SAndroid Build Coastguard Worker 					 void *data) ;
74*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
75*7c568831SAndroid Build Coastguard Worker 		xmlListRemoveFirst	(xmlListPtr l,
76*7c568831SAndroid Build Coastguard Worker 					 void *data);
77*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
78*7c568831SAndroid Build Coastguard Worker 		xmlListRemoveLast	(xmlListPtr l,
79*7c568831SAndroid Build Coastguard Worker 					 void *data);
80*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
81*7c568831SAndroid Build Coastguard Worker 		xmlListRemoveAll	(xmlListPtr l,
82*7c568831SAndroid Build Coastguard Worker 					 void *data);
83*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
84*7c568831SAndroid Build Coastguard Worker 		xmlListClear		(xmlListPtr l);
85*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
86*7c568831SAndroid Build Coastguard Worker 		xmlListEmpty		(xmlListPtr l);
87*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlLinkPtr
88*7c568831SAndroid Build Coastguard Worker 		xmlListFront		(xmlListPtr l);
89*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlLinkPtr
90*7c568831SAndroid Build Coastguard Worker 		xmlListEnd		(xmlListPtr l);
91*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
92*7c568831SAndroid Build Coastguard Worker 		xmlListSize		(xmlListPtr l);
93*7c568831SAndroid Build Coastguard Worker 
94*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
95*7c568831SAndroid Build Coastguard Worker 		xmlListPopFront		(xmlListPtr l);
96*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
97*7c568831SAndroid Build Coastguard Worker 		xmlListPopBack		(xmlListPtr l);
98*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
99*7c568831SAndroid Build Coastguard Worker 		xmlListPushFront	(xmlListPtr l,
100*7c568831SAndroid Build Coastguard Worker 					 void *data);
101*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
102*7c568831SAndroid Build Coastguard Worker 		xmlListPushBack		(xmlListPtr l,
103*7c568831SAndroid Build Coastguard Worker 					 void *data);
104*7c568831SAndroid Build Coastguard Worker 
105*7c568831SAndroid Build Coastguard Worker /* Advanced Operators */
106*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
107*7c568831SAndroid Build Coastguard Worker 		xmlListReverse		(xmlListPtr l);
108*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
109*7c568831SAndroid Build Coastguard Worker 		xmlListSort		(xmlListPtr l);
110*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
111*7c568831SAndroid Build Coastguard Worker 		xmlListWalk		(xmlListPtr l,
112*7c568831SAndroid Build Coastguard Worker 					 xmlListWalker walker,
113*7c568831SAndroid Build Coastguard Worker 					 void *user);
114*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
115*7c568831SAndroid Build Coastguard Worker 		xmlListReverseWalk	(xmlListPtr l,
116*7c568831SAndroid Build Coastguard Worker 					 xmlListWalker walker,
117*7c568831SAndroid Build Coastguard Worker 					 void *user);
118*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
119*7c568831SAndroid Build Coastguard Worker 		xmlListMerge		(xmlListPtr l1,
120*7c568831SAndroid Build Coastguard Worker 					 xmlListPtr l2);
121*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlListPtr
122*7c568831SAndroid Build Coastguard Worker 		xmlListDup		(xmlListPtr old);
123*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
124*7c568831SAndroid Build Coastguard Worker 		xmlListCopy		(xmlListPtr cur,
125*7c568831SAndroid Build Coastguard Worker 					 xmlListPtr old);
126*7c568831SAndroid Build Coastguard Worker /* Link operators */
127*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void *
128*7c568831SAndroid Build Coastguard Worker 		xmlLinkGetData          (xmlLinkPtr lk);
129*7c568831SAndroid Build Coastguard Worker 
130*7c568831SAndroid Build Coastguard Worker /* xmlListUnique() */
131*7c568831SAndroid Build Coastguard Worker /* xmlListSwap */
132*7c568831SAndroid Build Coastguard Worker 
133*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
134*7c568831SAndroid Build Coastguard Worker }
135*7c568831SAndroid Build Coastguard Worker #endif
136*7c568831SAndroid Build Coastguard Worker 
137*7c568831SAndroid Build Coastguard Worker #endif /* __XML_LINK_INCLUDE__ */
138