LTKCPP-- LLRP Toolkit C Plus Plus Library
list.h
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 
32 typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
42 typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
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__ */