list.h

00001 /*
00002 
00003  * Summary: lists interfaces
00004 
00005  * Description: this module implement the list support used in 
00006 
00007  * various place in the library.
00008 
00009  *
00010 
00011  * Copy: See Copyright for the status of this software.
00012 
00013  *
00014 
00015  * Author: Gary Pennington <Gary.Pennington@uk.sun.com>
00016 
00017  */
00018 
00019 
00020 
00021 #ifndef __XML_LINK_INCLUDE__
00022 
00023 #define __XML_LINK_INCLUDE__
00024 
00025 
00026 
00027 #include <libxml/xmlversion.h>
00028 
00029 
00030 
00031 #ifdef __cplusplus
00032 
00033 extern "C" {
00034 
00035 #endif
00036 
00037 
00038 
00039 typedef struct _xmlLink xmlLink;
00040 
00041 typedef xmlLink *xmlLinkPtr;
00042 
00043 
00044 
00045 typedef struct _xmlList xmlList;
00046 
00047 typedef xmlList *xmlListPtr;
00048 
00049 
00050 
00063 typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
00064 
00083 typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
00084 
00103 typedef int (*xmlListWalker) (const void *data, const void *user);
00104 
00105 
00106 
00107 /* Creation/Deletion */
00108 
00109 XMLPUBFUN xmlListPtr XMLCALL
00110 
00111                 xmlListCreate           (xmlListDeallocator deallocator,
00112 
00113                                          xmlListDataCompare compare);
00114 
00115 XMLPUBFUN void XMLCALL          
00116 
00117                 xmlListDelete           (xmlListPtr l);
00118 
00119 
00120 
00121 /* Basic Operators */
00122 
00123 XMLPUBFUN void * XMLCALL                
00124 
00125                 xmlListSearch           (xmlListPtr l,
00126 
00127                                          void *data);
00128 
00129 XMLPUBFUN void * XMLCALL                
00130 
00131                 xmlListReverseSearch    (xmlListPtr l,
00132 
00133                                          void *data);
00134 
00135 XMLPUBFUN int XMLCALL           
00136 
00137                 xmlListInsert           (xmlListPtr l,
00138 
00139                                          void *data) ;
00140 
00141 XMLPUBFUN int XMLCALL           
00142 
00143                 xmlListAppend           (xmlListPtr l,
00144 
00145                                          void *data) ;
00146 
00147 XMLPUBFUN int XMLCALL           
00148 
00149                 xmlListRemoveFirst      (xmlListPtr l,
00150 
00151                                          void *data);
00152 
00153 XMLPUBFUN int XMLCALL           
00154 
00155                 xmlListRemoveLast       (xmlListPtr l,
00156 
00157                                          void *data);
00158 
00159 XMLPUBFUN int XMLCALL           
00160 
00161                 xmlListRemoveAll        (xmlListPtr l,
00162 
00163                                          void *data);
00164 
00165 XMLPUBFUN void XMLCALL          
00166 
00167                 xmlListClear            (xmlListPtr l);
00168 
00169 XMLPUBFUN int XMLCALL           
00170 
00171                 xmlListEmpty            (xmlListPtr l);
00172 
00173 XMLPUBFUN xmlLinkPtr XMLCALL    
00174 
00175                 xmlListFront            (xmlListPtr l);
00176 
00177 XMLPUBFUN xmlLinkPtr XMLCALL    
00178 
00179                 xmlListEnd              (xmlListPtr l);
00180 
00181 XMLPUBFUN int XMLCALL           
00182 
00183                 xmlListSize             (xmlListPtr l);
00184 
00185 
00186 
00187 XMLPUBFUN void XMLCALL          
00188 
00189                 xmlListPopFront         (xmlListPtr l);
00190 
00191 XMLPUBFUN void XMLCALL          
00192 
00193                 xmlListPopBack          (xmlListPtr l);
00194 
00195 XMLPUBFUN int XMLCALL           
00196 
00197                 xmlListPushFront        (xmlListPtr l,
00198 
00199                                          void *data);
00200 
00201 XMLPUBFUN int XMLCALL           
00202 
00203                 xmlListPushBack         (xmlListPtr l,
00204 
00205                                          void *data);
00206 
00207 
00208 
00209 /* Advanced Operators */
00210 
00211 XMLPUBFUN void XMLCALL          
00212 
00213                 xmlListReverse          (xmlListPtr l);
00214 
00215 XMLPUBFUN void XMLCALL          
00216 
00217                 xmlListSort             (xmlListPtr l);
00218 
00219 XMLPUBFUN void XMLCALL          
00220 
00221                 xmlListWalk             (xmlListPtr l,
00222 
00223                                          xmlListWalker walker,
00224 
00225                                          const void *user);
00226 
00227 XMLPUBFUN void XMLCALL          
00228 
00229                 xmlListReverseWalk      (xmlListPtr l,
00230 
00231                                          xmlListWalker walker,
00232 
00233                                          const void *user);
00234 
00235 XMLPUBFUN void XMLCALL          
00236 
00237                 xmlListMerge            (xmlListPtr l1,
00238 
00239                                          xmlListPtr l2);
00240 
00241 XMLPUBFUN xmlListPtr XMLCALL    
00242 
00243                 xmlListDup              (const xmlListPtr old);
00244 
00245 XMLPUBFUN int XMLCALL           
00246 
00247                 xmlListCopy             (xmlListPtr cur,
00248 
00249                                          const xmlListPtr old);
00250 
00251 /* Link operators */
00252 
00253 XMLPUBFUN void * XMLCALL          
00254 
00255                 xmlLinkGetData          (xmlLinkPtr lk);
00256 
00257 
00258 
00259 /* xmlListUnique() */
00260 
00261 /* xmlListSwap */
00262 
00263 
00264 
00265 #ifdef __cplusplus
00266 
00267 }
00268 
00269 #endif
00270 
00271 
00272 
00273 #endif /* __XML_LINK_INCLUDE__ */
00274 

Generated on Wed Jul 26 13:30:46 2006 for XSB by  doxygen 1.4.5