Annotation of embedaddon/libxml2/include/libxml/list.h, revision 1.1.1.2

1.1       misho       1: /*
                      2:  * Summary: lists interfaces
1.1.1.2 ! misho       3:  * Description: this module implement the list support used in
1.1       misho       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);
1.1.1.2 ! misho      58: XMLPUBFUN void XMLCALL
1.1       misho      59:                xmlListDelete           (xmlListPtr l);
                     60: 
                     61: /* Basic Operators */
1.1.1.2 ! misho      62: XMLPUBFUN void * XMLCALL
1.1       misho      63:                xmlListSearch           (xmlListPtr l,
                     64:                                         void *data);
1.1.1.2 ! misho      65: XMLPUBFUN void * XMLCALL
1.1       misho      66:                xmlListReverseSearch    (xmlListPtr l,
                     67:                                         void *data);
1.1.1.2 ! misho      68: XMLPUBFUN int XMLCALL
1.1       misho      69:                xmlListInsert           (xmlListPtr l,
                     70:                                         void *data) ;
1.1.1.2 ! misho      71: XMLPUBFUN int XMLCALL
1.1       misho      72:                xmlListAppend           (xmlListPtr l,
                     73:                                         void *data) ;
1.1.1.2 ! misho      74: XMLPUBFUN int XMLCALL
1.1       misho      75:                xmlListRemoveFirst      (xmlListPtr l,
                     76:                                         void *data);
1.1.1.2 ! misho      77: XMLPUBFUN int XMLCALL
1.1       misho      78:                xmlListRemoveLast       (xmlListPtr l,
                     79:                                         void *data);
1.1.1.2 ! misho      80: XMLPUBFUN int XMLCALL
1.1       misho      81:                xmlListRemoveAll        (xmlListPtr l,
                     82:                                         void *data);
1.1.1.2 ! misho      83: XMLPUBFUN void XMLCALL
1.1       misho      84:                xmlListClear            (xmlListPtr l);
1.1.1.2 ! misho      85: XMLPUBFUN int XMLCALL
1.1       misho      86:                xmlListEmpty            (xmlListPtr l);
1.1.1.2 ! misho      87: XMLPUBFUN xmlLinkPtr XMLCALL
1.1       misho      88:                xmlListFront            (xmlListPtr l);
1.1.1.2 ! misho      89: XMLPUBFUN xmlLinkPtr XMLCALL
1.1       misho      90:                xmlListEnd              (xmlListPtr l);
1.1.1.2 ! misho      91: XMLPUBFUN int XMLCALL
1.1       misho      92:                xmlListSize             (xmlListPtr l);
                     93: 
1.1.1.2 ! misho      94: XMLPUBFUN void XMLCALL
1.1       misho      95:                xmlListPopFront         (xmlListPtr l);
1.1.1.2 ! misho      96: XMLPUBFUN void XMLCALL
1.1       misho      97:                xmlListPopBack          (xmlListPtr l);
1.1.1.2 ! misho      98: XMLPUBFUN int XMLCALL
1.1       misho      99:                xmlListPushFront        (xmlListPtr l,
                    100:                                         void *data);
1.1.1.2 ! misho     101: XMLPUBFUN int XMLCALL
1.1       misho     102:                xmlListPushBack         (xmlListPtr l,
                    103:                                         void *data);
                    104: 
                    105: /* Advanced Operators */
1.1.1.2 ! misho     106: XMLPUBFUN void XMLCALL
1.1       misho     107:                xmlListReverse          (xmlListPtr l);
1.1.1.2 ! misho     108: XMLPUBFUN void XMLCALL
1.1       misho     109:                xmlListSort             (xmlListPtr l);
1.1.1.2 ! misho     110: XMLPUBFUN void XMLCALL
1.1       misho     111:                xmlListWalk             (xmlListPtr l,
                    112:                                         xmlListWalker walker,
                    113:                                         const void *user);
1.1.1.2 ! misho     114: XMLPUBFUN void XMLCALL
1.1       misho     115:                xmlListReverseWalk      (xmlListPtr l,
                    116:                                         xmlListWalker walker,
                    117:                                         const void *user);
1.1.1.2 ! misho     118: XMLPUBFUN void XMLCALL
1.1       misho     119:                xmlListMerge            (xmlListPtr l1,
                    120:                                         xmlListPtr l2);
1.1.1.2 ! misho     121: XMLPUBFUN xmlListPtr XMLCALL
1.1       misho     122:                xmlListDup              (const xmlListPtr old);
1.1.1.2 ! misho     123: XMLPUBFUN int XMLCALL
1.1       misho     124:                xmlListCopy             (xmlListPtr cur,
                    125:                                         const xmlListPtr old);
                    126: /* Link operators */
1.1.1.2 ! misho     127: XMLPUBFUN void * XMLCALL
1.1       misho     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>