Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

list.h

Go to the documentation of this file.
00001 /*
00002  * list.h: lists interfaces
00003  *
00004  * Copyright (C) 2000 Gary Pennington and Daniel Veillard.
00005  *
00006  * Permission to use, copy, modify, and distribute this software for any
00007  * purpose with or without fee is hereby granted, provided that the above
00008  * copyright notice and this permission notice appear in all copies.
00009  *
00010  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
00011  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
00012  * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
00013  * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
00014  *
00015  * Author: Gary.Pennington@uk.sun.com
00016  */
00017 
00018 #ifndef __XML_LINK_INCLUDE__
00019 #define __XML_LINK_INCLUDE__
00020 
00021 #include <libxml/xmlversion.h>
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 typedef struct _xmlLink xmlLink;
00028 typedef xmlLink *xmlLinkPtr;
00029 
00030 typedef struct _xmlList xmlList;
00031 typedef xmlList *xmlListPtr;
00032 
00039 typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
00049 typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
00059 typedef int (*xmlListWalker) (const void *data, const void *user);
00060 
00061 /* Creation/Deletion */
00062 XMLPUBFUN xmlListPtr XMLCALL
00063                 xmlListCreate           (xmlListDeallocator deallocator,
00064                                          xmlListDataCompare compare);
00065 XMLPUBFUN void XMLCALL          
00066                 xmlListDelete           (xmlListPtr l);
00067 
00068 /* Basic Operators */
00069 XMLPUBFUN void * XMLCALL                
00070                 xmlListSearch           (xmlListPtr l,
00071                                          void *data);
00072 XMLPUBFUN void * XMLCALL                
00073                 xmlListReverseSearch    (xmlListPtr l,
00074                                          void *data);
00075 XMLPUBFUN int XMLCALL           
00076                 xmlListInsert           (xmlListPtr l,
00077                                          void *data) ;
00078 XMLPUBFUN int XMLCALL           
00079                 xmlListAppend           (xmlListPtr l,
00080                                          void *data) ;
00081 XMLPUBFUN int XMLCALL           
00082                 xmlListRemoveFirst      (xmlListPtr l,
00083                                          void *data);
00084 XMLPUBFUN int XMLCALL           
00085                 xmlListRemoveLast       (xmlListPtr l,
00086                                          void *data);
00087 XMLPUBFUN int XMLCALL           
00088                 xmlListRemoveAll        (xmlListPtr l,
00089                                          void *data);
00090 XMLPUBFUN void XMLCALL          
00091                 xmlListClear            (xmlListPtr l);
00092 XMLPUBFUN int XMLCALL           
00093                 xmlListEmpty            (xmlListPtr l);
00094 XMLPUBFUN xmlLinkPtr XMLCALL    
00095                 xmlListFront            (xmlListPtr l);
00096 XMLPUBFUN xmlLinkPtr XMLCALL    
00097                 xmlListEnd              (xmlListPtr l);
00098 XMLPUBFUN int XMLCALL           
00099                 xmlListSize             (xmlListPtr l);
00100 
00101 XMLPUBFUN void XMLCALL          
00102                 xmlListPopFront         (xmlListPtr l);
00103 XMLPUBFUN void XMLCALL          
00104                 xmlListPopBack          (xmlListPtr l);
00105 XMLPUBFUN int XMLCALL           
00106                 xmlListPushFront        (xmlListPtr l,
00107                                          void *data);
00108 XMLPUBFUN int XMLCALL           
00109                 xmlListPushBack         (xmlListPtr l,
00110                                          void *data);
00111 
00112 /* Advanced Operators */
00113 XMLPUBFUN void XMLCALL          
00114                 xmlListReverse          (xmlListPtr l);
00115 XMLPUBFUN void XMLCALL          
00116                 xmlListSort             (xmlListPtr l);
00117 XMLPUBFUN void XMLCALL          
00118                 xmlListWalk             (xmlListPtr l,
00119                                          xmlListWalker walker,
00120                                          const void *user);
00121 XMLPUBFUN void XMLCALL          
00122                 xmlListReverseWalk      (xmlListPtr l,
00123                                          xmlListWalker walker,
00124                                          const void *user);
00125 XMLPUBFUN void XMLCALL          
00126                 xmlListMerge            (xmlListPtr l1,
00127                                          xmlListPtr l2);
00128 XMLPUBFUN xmlListPtr XMLCALL    
00129                 xmlListDup              (const xmlListPtr old);
00130 XMLPUBFUN int XMLCALL           
00131                 xmlListCopy             (xmlListPtr cur,
00132                                          const xmlListPtr old);
00133 /* Link operators */
00134 XMLPUBFUN void * XMLCALL          
00135                 xmlLinkGetData          (xmlLinkPtr lk);
00136 
00137 /* xmlListUnique() */
00138 /* xmlListSwap */
00139 
00140 #ifdef __cplusplus
00141 }
00142 #endif
00143 
00144 #endif /* __XML_LINK_INCLUDE__ */
00145 

Generated on Wed Mar 16 00:10:27 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1