123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- /*
- * Summary: lists interfaces
- * Description: this module implement the list support used in
- * various place in the library.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Gary Pennington <Gary.Pennington@uk.sun.com>
- */
- #ifndef __XML_LINK_INCLUDE__
- #define __XML_LINK_INCLUDE__
- #include <libxml/xmlversion.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct _xmlLink xmlLink;
- typedef xmlLink *xmlLinkPtr;
- typedef struct _xmlList xmlList;
- typedef xmlList *xmlListPtr;
- /**
- * xmlListDeallocator:
- * @lk: the data to deallocate
- *
- * Callback function used to free data from a list.
- */
- typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
- /**
- * xmlListDataCompare:
- * @data0: the first data
- * @data1: the second data
- *
- * Callback function used to compare 2 data.
- *
- * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
- */
- typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
- /**
- * xmlListWalker:
- * @data: the data found in the list
- * @user: extra user provided data to the walker
- *
- * Callback function used when walking a list with xmlListWalk().
- *
- * Returns 0 to stop walking the list, 1 otherwise.
- */
- typedef int (*xmlListWalker) (const void *data, void *user);
- /* Creation/Deletion */
- XMLPUBFUN xmlListPtr XMLCALL
- xmlListCreate (xmlListDeallocator deallocator,
- xmlListDataCompare compare);
- XMLPUBFUN void XMLCALL
- xmlListDelete (xmlListPtr l);
- /* Basic Operators */
- XMLPUBFUN void * XMLCALL
- xmlListSearch (xmlListPtr l,
- void *data);
- XMLPUBFUN void * XMLCALL
- xmlListReverseSearch (xmlListPtr l,
- void *data);
- XMLPUBFUN int XMLCALL
- xmlListInsert (xmlListPtr l,
- void *data) ;
- XMLPUBFUN int XMLCALL
- xmlListAppend (xmlListPtr l,
- void *data) ;
- XMLPUBFUN int XMLCALL
- xmlListRemoveFirst (xmlListPtr l,
- void *data);
- XMLPUBFUN int XMLCALL
- xmlListRemoveLast (xmlListPtr l,
- void *data);
- XMLPUBFUN int XMLCALL
- xmlListRemoveAll (xmlListPtr l,
- void *data);
- XMLPUBFUN void XMLCALL
- xmlListClear (xmlListPtr l);
- XMLPUBFUN int XMLCALL
- xmlListEmpty (xmlListPtr l);
- XMLPUBFUN xmlLinkPtr XMLCALL
- xmlListFront (xmlListPtr l);
- XMLPUBFUN xmlLinkPtr XMLCALL
- xmlListEnd (xmlListPtr l);
- XMLPUBFUN int XMLCALL
- xmlListSize (xmlListPtr l);
- XMLPUBFUN void XMLCALL
- xmlListPopFront (xmlListPtr l);
- XMLPUBFUN void XMLCALL
- xmlListPopBack (xmlListPtr l);
- XMLPUBFUN int XMLCALL
- xmlListPushFront (xmlListPtr l,
- void *data);
- XMLPUBFUN int XMLCALL
- xmlListPushBack (xmlListPtr l,
- void *data);
- /* Advanced Operators */
- XMLPUBFUN void XMLCALL
- xmlListReverse (xmlListPtr l);
- XMLPUBFUN void XMLCALL
- xmlListSort (xmlListPtr l);
- XMLPUBFUN void XMLCALL
- xmlListWalk (xmlListPtr l,
- xmlListWalker walker,
- void *user);
- XMLPUBFUN void XMLCALL
- xmlListReverseWalk (xmlListPtr l,
- xmlListWalker walker,
- void *user);
- XMLPUBFUN void XMLCALL
- xmlListMerge (xmlListPtr l1,
- xmlListPtr l2);
- XMLPUBFUN xmlListPtr XMLCALL
- xmlListDup (const xmlListPtr old);
- XMLPUBFUN int XMLCALL
- xmlListCopy (xmlListPtr cur,
- const xmlListPtr old);
- /* Link operators */
- XMLPUBFUN void * XMLCALL
- xmlLinkGetData (xmlLinkPtr lk);
- /* xmlListUnique() */
- /* xmlListSwap */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __XML_LINK_INCLUDE__ */
|