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