1 * Summary: lists interfaces 2 * Description: this module implement the list support used in 3 * various place in the library. 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A. 8 9 /if not defined(XML_LINK_INCLUDE__) 10 /define XML_LINK_INCLUDE__ 11 12 /include "libxmlrpg/xmlversion" 13 14 d xmlLinkPtr s * based(######typedef######) 15 16 d xmlListPtr s * based(######typedef######) 17 18 * xmlListDeallocator: 19 * @lk: the data to deallocate 20 * 21 * Callback function used to free data from a list. 22 23 d xmlListDeallocator... 24 d s * based(######typedef######) 25 d procptr 26 27 * xmlListDataCompare: 28 * @data0: the first data 29 * @data1: the second data 30 * 31 * Callback function used to compare 2 data. 32 * 33 * Returns 0 is equality, -1 or 1 otherwise depending on the ordering. 34 35 d xmlListDataCompare... 36 d s * based(######typedef######) 37 d procptr 38 39 * xmlListWalker: 40 * @data: the data found in the list 41 * @user: extra user provided data to the walker 42 * 43 * Callback function used when walking a list with xmlListWalk(). 44 * 45 * Returns 0 to stop walking the list, 1 otherwise. 46 47 d xmlListWalker s * based(######typedef######) 48 d procptr 49 50 * Creation/Deletion 51 52 d xmlListCreate pr extproc('xmlListCreate') 53 d like(xmlListPtr) 54 d deallocator value like(xmlListDeallocator) 55 d compare value like(xmlListDataCompare) 56 57 d xmlListDelete pr extproc('xmlListDelete') 58 d l value like(xmlListPtr) 59 60 * Basic Operators 61 62 d xmlListSearch pr * extproc('xmlListSearch') void * 63 d l value like(xmlListPtr) 64 d data * value void * 65 66 d xmlListReverseSearch... 67 d pr * extproc('xmlListReverseSearch') void * 68 d l value like(xmlListPtr) 69 d data * value void * 70 71 d xmlListInsert pr 10i 0 extproc('xmlListInsert') 72 d l value like(xmlListPtr) 73 d data * value void * 74 75 d xmlListAppend pr 10i 0 extproc('xmlListAppend') 76 d l value like(xmlListPtr) 77 d data * value void * 78 79 d xmlListRemoveFirst... 80 d pr 10i 0 extproc('xmlListRemoveFirst') 81 d l value like(xmlListPtr) 82 d data * value void * 83 84 d xmlListRemoveLast... 85 d pr 10i 0 extproc('xmlListRemoveLast') 86 d l value like(xmlListPtr) 87 d data * value void * 88 89 d xmlListRemoveAll... 90 d pr 10i 0 extproc('xmlListRemoveAll') 91 d l value like(xmlListPtr) 92 d data * value void * 93 94 d xmlListClear pr extproc('xmlListClear') 95 d l value like(xmlListPtr) 96 97 d xmlListEmpty pr 10i 0 extproc('xmlListEmpty') 98 d l value like(xmlListPtr) 99 100 d xmlListFront pr extproc('xmlListFront') 101 d like(xmlLinkPtr) 102 d l value like(xmlListPtr) 103 104 d xmlListEnd pr extproc('xmlListEnd') 105 d like(xmlLinkPtr) 106 d l value like(xmlListPtr) 107 108 d xmlListSize pr 10i 0 extproc('xmlListSize') 109 d l value like(xmlListPtr) 110 111 d xmlListPopFront... 112 d pr extproc('xmlListPopFront') 113 d l value like(xmlListPtr) 114 115 d xmlListPopBack... 116 d pr extproc('xmlListPopBack') 117 d l value like(xmlListPtr) 118 119 d xmlListPushFront... 120 d pr 10i 0 extproc('xmlListPushFront') 121 d l value like(xmlListPtr) 122 d data * value void * 123 124 d xmlListPushBack... 125 d pr 10i 0 extproc('xmlListPushBack') 126 d l value like(xmlListPtr) 127 d data * value void * 128 129 * Advanced Operators 130 131 d xmlListReverse pr extproc('xmlListReverse') 132 d l value like(xmlListPtr) 133 134 d xmlListSort pr extproc('xmlListSort') 135 d l value like(xmlListPtr) 136 137 d xmlListWalk pr extproc('xmlListWalk') 138 d l value like(xmlListPtr) 139 d walker value like(xmlListWalker) 140 d user * value const void * 141 142 d xmlListReverseWalk... 143 d pr extproc('xmlListReverseWalk') 144 d l value like(xmlListPtr) 145 d walker value like(xmlListWalker) 146 d user * value const void * 147 148 d xmlListMerge pr extproc('xmlListMerge') 149 d l1 value like(xmlListPtr) 150 d l2 value like(xmlListPtr) 151 152 d xmlListDup pr extproc('xmlListDup') 153 d like(xmlListPtr) 154 d old value like(xmlListPtr) 155 156 d xmlListCopy pr 10i 0 extproc('xmlListCopy') 157 d cur value like(xmlListPtr) 158 d old value like(xmlListPtr) const 159 160 * Link operators 161 162 d xmlListGetData pr * extproc('xmlListGetData') void * 163 d lk value like(xmlLinkPtr) 164 165 * xmlListUnique() 166 * xmlListSwap 167 168 /endif XML_LINK_INCLUDE__ 169