Return to list.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
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__ */