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>