1*7c568831SAndroid Build Coastguard Worker /* 2*7c568831SAndroid Build Coastguard Worker * Summary: lists interfaces 3*7c568831SAndroid Build Coastguard Worker * Description: this module implement the list support used in 4*7c568831SAndroid Build Coastguard Worker * various place in the library. 5*7c568831SAndroid Build Coastguard Worker * 6*7c568831SAndroid Build Coastguard Worker * Copy: See Copyright for the status of this software. 7*7c568831SAndroid Build Coastguard Worker * 8*7c568831SAndroid Build Coastguard Worker * Author: Gary Pennington <[email protected]> 9*7c568831SAndroid Build Coastguard Worker */ 10*7c568831SAndroid Build Coastguard Worker 11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_LINK_INCLUDE__ 12*7c568831SAndroid Build Coastguard Worker #define __XML_LINK_INCLUDE__ 13*7c568831SAndroid Build Coastguard Worker 14*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h> 15*7c568831SAndroid Build Coastguard Worker 16*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 17*7c568831SAndroid Build Coastguard Worker extern "C" { 18*7c568831SAndroid Build Coastguard Worker #endif 19*7c568831SAndroid Build Coastguard Worker 20*7c568831SAndroid Build Coastguard Worker typedef struct _xmlLink xmlLink; 21*7c568831SAndroid Build Coastguard Worker typedef xmlLink *xmlLinkPtr; 22*7c568831SAndroid Build Coastguard Worker 23*7c568831SAndroid Build Coastguard Worker typedef struct _xmlList xmlList; 24*7c568831SAndroid Build Coastguard Worker typedef xmlList *xmlListPtr; 25*7c568831SAndroid Build Coastguard Worker 26*7c568831SAndroid Build Coastguard Worker /** 27*7c568831SAndroid Build Coastguard Worker * xmlListDeallocator: 28*7c568831SAndroid Build Coastguard Worker * @lk: the data to deallocate 29*7c568831SAndroid Build Coastguard Worker * 30*7c568831SAndroid Build Coastguard Worker * Callback function used to free data from a list. 31*7c568831SAndroid Build Coastguard Worker */ 32*7c568831SAndroid Build Coastguard Worker typedef void (*xmlListDeallocator) (xmlLinkPtr lk); 33*7c568831SAndroid Build Coastguard Worker /** 34*7c568831SAndroid Build Coastguard Worker * xmlListDataCompare: 35*7c568831SAndroid Build Coastguard Worker * @data0: the first data 36*7c568831SAndroid Build Coastguard Worker * @data1: the second data 37*7c568831SAndroid Build Coastguard Worker * 38*7c568831SAndroid Build Coastguard Worker * Callback function used to compare 2 data. 39*7c568831SAndroid Build Coastguard Worker * 40*7c568831SAndroid Build Coastguard Worker * Returns 0 is equality, -1 or 1 otherwise depending on the ordering. 41*7c568831SAndroid Build Coastguard Worker */ 42*7c568831SAndroid Build Coastguard Worker typedef int (*xmlListDataCompare) (const void *data0, const void *data1); 43*7c568831SAndroid Build Coastguard Worker /** 44*7c568831SAndroid Build Coastguard Worker * xmlListWalker: 45*7c568831SAndroid Build Coastguard Worker * @data: the data found in the list 46*7c568831SAndroid Build Coastguard Worker * @user: extra user provided data to the walker 47*7c568831SAndroid Build Coastguard Worker * 48*7c568831SAndroid Build Coastguard Worker * Callback function used when walking a list with xmlListWalk(). 49*7c568831SAndroid Build Coastguard Worker * 50*7c568831SAndroid Build Coastguard Worker * Returns 0 to stop walking the list, 1 otherwise. 51*7c568831SAndroid Build Coastguard Worker */ 52*7c568831SAndroid Build Coastguard Worker typedef int (*xmlListWalker) (const void *data, void *user); 53*7c568831SAndroid Build Coastguard Worker 54*7c568831SAndroid Build Coastguard Worker /* Creation/Deletion */ 55*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlListPtr 56*7c568831SAndroid Build Coastguard Worker xmlListCreate (xmlListDeallocator deallocator, 57*7c568831SAndroid Build Coastguard Worker xmlListDataCompare compare); 58*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 59*7c568831SAndroid Build Coastguard Worker xmlListDelete (xmlListPtr l); 60*7c568831SAndroid Build Coastguard Worker 61*7c568831SAndroid Build Coastguard Worker /* Basic Operators */ 62*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void * 63*7c568831SAndroid Build Coastguard Worker xmlListSearch (xmlListPtr l, 64*7c568831SAndroid Build Coastguard Worker void *data); 65*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void * 66*7c568831SAndroid Build Coastguard Worker xmlListReverseSearch (xmlListPtr l, 67*7c568831SAndroid Build Coastguard Worker void *data); 68*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 69*7c568831SAndroid Build Coastguard Worker xmlListInsert (xmlListPtr l, 70*7c568831SAndroid Build Coastguard Worker void *data) ; 71*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 72*7c568831SAndroid Build Coastguard Worker xmlListAppend (xmlListPtr l, 73*7c568831SAndroid Build Coastguard Worker void *data) ; 74*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 75*7c568831SAndroid Build Coastguard Worker xmlListRemoveFirst (xmlListPtr l, 76*7c568831SAndroid Build Coastguard Worker void *data); 77*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 78*7c568831SAndroid Build Coastguard Worker xmlListRemoveLast (xmlListPtr l, 79*7c568831SAndroid Build Coastguard Worker void *data); 80*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 81*7c568831SAndroid Build Coastguard Worker xmlListRemoveAll (xmlListPtr l, 82*7c568831SAndroid Build Coastguard Worker void *data); 83*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 84*7c568831SAndroid Build Coastguard Worker xmlListClear (xmlListPtr l); 85*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 86*7c568831SAndroid Build Coastguard Worker xmlListEmpty (xmlListPtr l); 87*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlLinkPtr 88*7c568831SAndroid Build Coastguard Worker xmlListFront (xmlListPtr l); 89*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlLinkPtr 90*7c568831SAndroid Build Coastguard Worker xmlListEnd (xmlListPtr l); 91*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 92*7c568831SAndroid Build Coastguard Worker xmlListSize (xmlListPtr l); 93*7c568831SAndroid Build Coastguard Worker 94*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 95*7c568831SAndroid Build Coastguard Worker xmlListPopFront (xmlListPtr l); 96*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 97*7c568831SAndroid Build Coastguard Worker xmlListPopBack (xmlListPtr l); 98*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 99*7c568831SAndroid Build Coastguard Worker xmlListPushFront (xmlListPtr l, 100*7c568831SAndroid Build Coastguard Worker void *data); 101*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 102*7c568831SAndroid Build Coastguard Worker xmlListPushBack (xmlListPtr l, 103*7c568831SAndroid Build Coastguard Worker void *data); 104*7c568831SAndroid Build Coastguard Worker 105*7c568831SAndroid Build Coastguard Worker /* Advanced Operators */ 106*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 107*7c568831SAndroid Build Coastguard Worker xmlListReverse (xmlListPtr l); 108*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 109*7c568831SAndroid Build Coastguard Worker xmlListSort (xmlListPtr l); 110*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 111*7c568831SAndroid Build Coastguard Worker xmlListWalk (xmlListPtr l, 112*7c568831SAndroid Build Coastguard Worker xmlListWalker walker, 113*7c568831SAndroid Build Coastguard Worker void *user); 114*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 115*7c568831SAndroid Build Coastguard Worker xmlListReverseWalk (xmlListPtr l, 116*7c568831SAndroid Build Coastguard Worker xmlListWalker walker, 117*7c568831SAndroid Build Coastguard Worker void *user); 118*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 119*7c568831SAndroid Build Coastguard Worker xmlListMerge (xmlListPtr l1, 120*7c568831SAndroid Build Coastguard Worker xmlListPtr l2); 121*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlListPtr 122*7c568831SAndroid Build Coastguard Worker xmlListDup (xmlListPtr old); 123*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 124*7c568831SAndroid Build Coastguard Worker xmlListCopy (xmlListPtr cur, 125*7c568831SAndroid Build Coastguard Worker xmlListPtr old); 126*7c568831SAndroid Build Coastguard Worker /* Link operators */ 127*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void * 128*7c568831SAndroid Build Coastguard Worker xmlLinkGetData (xmlLinkPtr lk); 129*7c568831SAndroid Build Coastguard Worker 130*7c568831SAndroid Build Coastguard Worker /* xmlListUnique() */ 131*7c568831SAndroid Build Coastguard Worker /* xmlListSwap */ 132*7c568831SAndroid Build Coastguard Worker 133*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 134*7c568831SAndroid Build Coastguard Worker } 135*7c568831SAndroid Build Coastguard Worker #endif 136*7c568831SAndroid Build Coastguard Worker 137*7c568831SAndroid Build Coastguard Worker #endif /* __XML_LINK_INCLUDE__ */ 138