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