12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- (*
- * 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 <[email protected]>
- *)
- {$IFDEF POINTER}
- xmlLinkPtr = ^xmlLink;
- xmlListPtr = ^xmlList;
- {$ENDIF}
- {$IFDEF TYPE}
- xmlLink = record end;
- xmlList = record end;
- (**
- * xmlListDeallocator:
- * @lk: the data to deallocate
- *
- * Callback function used to free data from a list.
- *)
- xmlListDeallocator = procedure(lk: xmlLinkPtr); EXTDECL;
- (**
- * 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.
- *)
- xmlListDataCompare = function(data0, data1: pointer): cint; EXTDECL;
- (**
- * 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.
- *)
- xmlListWalker = function(data, user: pointer): cint; EXTDECL;
- {$ENDIF}
- {$IFDEF FUNCTION}
- (* Creation/Deletion *)
- function xmlListCreate(deallocator: xmlListDeallocator; compare: xmlListDataCompare): xmlListPtr; EXTDECL; external xml2lib;
- procedure xmlListDelete(l: xmlListPtr); EXTDECL; external xml2lib;
- (* Basic Operators *)
- function xmlListSearch(l: xmlListPtr; data: pointer): pointer; EXTDECL; external xml2lib;
- function xmlListReverseSearch(l: xmlListPtr; data: pointer): pointer; EXTDECL; external xml2lib;
- function xmlListInsert(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- function xmlListAppend(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- function xmlListRemoveFirst(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- function xmlListRemoveLast(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- function xmlListRemoveAll(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- procedure xmlListClear(l: xmlListPtr); EXTDECL; external xml2lib;
- function xmlListEmpty(l: xmlListPtr): cint; EXTDECL; external xml2lib;
- function xmlListFront(l: xmlListPtr): xmlLinkPtr; EXTDECL; external xml2lib;
- function xmlListEnd(l: xmlListPtr): xmlLinkPtr; EXTDECL; external xml2lib;
- function xmlListSize(l: xmlListPtr): cint; EXTDECL; external xml2lib;
- procedure xmlListPopFront(l: xmlListPtr); EXTDECL; external xml2lib;
- procedure xmlListPopBack(l: xmlListPtr); EXTDECL; external xml2lib;
- function xmlListPushFront(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- function xmlListPushBack(l: xmlListPtr; data: pointer): cint; EXTDECL; external xml2lib;
- (* Advanced Operators *)
- procedure xmlListReverse(l: xmlListPtr); EXTDECL; external xml2lib;
- procedure xmlListSort(l: xmlListPtr); EXTDECL; external xml2lib;
- procedure xmlListWalk(l: xmlListPtr; walker: xmlListWalker; user: pointer); EXTDECL; external xml2lib;
- procedure xmlListReverseWalk(l: xmlListPtr; walker: xmlListWalker; user: pointer); EXTDECL; external xml2lib;
- procedure xmlListMerge(l1, l2: xmlListPtr); EXTDECL; external xml2lib;
- function xmlListDup(old: xmlListPtr): xmlListPtr; EXTDECL; external xml2lib;
- function xmlListDup(cur, old: xmlListPtr): cint; EXTDECL; external xml2lib;
- (* Link operators *)
- function xmlLinkGetData(lk: xmlLinkPtr): cint; EXTDECL; external xml2lib;
- {$ENDIF}
|