| /* |
| * list.h: lists interfaces |
| * |
| * Copyright (C) 2000 Gary Pennington and Daniel Veillard. |
| * |
| * Permission to use, copy, modify, and distribute this software for any |
| * purpose with or without fee is hereby granted, provided that the above |
| * copyright notice and this permission notice appear in all copies. |
| * |
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED |
| * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF |
| * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND |
| * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. |
| * |
| * Author: Gary.Pennington@uk.sun.com |
| */ |
| |
| #ifndef __XML_LINK_INCLUDE__ |
| #define __XML_LINK_INCLUDE__ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef struct _xmlLink xmlLink; |
| typedef xmlLink *xmlLinkPtr; |
| |
| typedef struct _xmlList xmlList; |
| typedef xmlList *xmlListPtr; |
| |
| typedef void (*xmlListDeallocator) (xmlLinkPtr lk); |
| typedef int (*xmlListDataCompare) (const void *data0, const void *data1); |
| typedef int (*xmlListWalker) (const void *data, const void *user); |
| |
| /* Creation/Deletion */ |
| xmlListPtr xmlListCreate (xmlListDeallocator deallocator, |
| xmlListDataCompare compare); |
| void xmlListDelete (xmlListPtr l); |
| |
| /* Basic Operators */ |
| void * xmlListSearch (xmlListPtr l, |
| void *data); |
| void * xmlListReverseSearch (xmlListPtr l, |
| void *data); |
| int xmlListInsert (xmlListPtr l, |
| void *data) ; |
| int xmlListAppend (xmlListPtr l, |
| void *data) ; |
| int xmlListRemoveFirst (xmlListPtr l, |
| void *data); |
| int xmlListRemoveLast (xmlListPtr l, |
| void *data); |
| int xmlListRemoveAll (xmlListPtr l, |
| void *data); |
| void xmlListClear (xmlListPtr l); |
| int xmlListEmpty (xmlListPtr l); |
| xmlLinkPtr xmlListFront (xmlListPtr l); |
| xmlLinkPtr xmlListEnd (xmlListPtr l); |
| int xmlListSize (xmlListPtr l); |
| |
| void xmlListPopFront (xmlListPtr l); |
| void xmlListPopBack (xmlListPtr l); |
| int xmlListPushFront (xmlListPtr l, |
| void *data); |
| int xmlListPushBack (xmlListPtr l, |
| void *data); |
| |
| /* Advanced Operators */ |
| void xmlListReverse (xmlListPtr l); |
| void xmlListSort (xmlListPtr l); |
| void xmlListWalk (xmlListPtr l, |
| xmlListWalker walker, |
| const void *user); |
| void xmlListReverseWalk (xmlListPtr l, |
| xmlListWalker walker, |
| const void *user); |
| void xmlListMerge (xmlListPtr l1, |
| xmlListPtr l2); |
| xmlListPtr xmlListDup (const xmlListPtr old); |
| int xmlListCopy (xmlListPtr cur, |
| const xmlListPtr old); |
| /* Link operators */ |
| void * xmlLinkGetData (xmlLinkPtr lk); |
| |
| /* xmlListUnique() */ |
| /* xmlListSwap */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __XML_LINK_INCLUDE__ */ |