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