diff options
Diffstat (limited to 'os400/libxmlrpg/list.rpgle')
-rw-r--r-- | os400/libxmlrpg/list.rpgle | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/os400/libxmlrpg/list.rpgle b/os400/libxmlrpg/list.rpgle new file mode 100644 index 0000000..c62fcbd --- /dev/null +++ b/os400/libxmlrpg/list.rpgle @@ -0,0 +1,168 @@ + * 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: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. + + /if not defined(XML_LINK_INCLUDE__) + /define XML_LINK_INCLUDE__ + + /include "libxmlrpg/xmlversion" + + d xmlLinkPtr s * based(######typedef######) + + d xmlListPtr s * based(######typedef######) + + * xmlListDeallocator: + * @lk: the data to deallocate + * + * Callback function used to free data from a list. + + d xmlListDeallocator... + d s * based(######typedef######) + d procptr + + * 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. + + d xmlListDataCompare... + d s * based(######typedef######) + d procptr + + * 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. + + d xmlListWalker s * based(######typedef######) + d procptr + + * Creation/Deletion + + d xmlListCreate pr extproc('xmlListCreate') + d like(xmlListPtr) + d deallocator value like(xmlListDeallocator) + d compare value like(xmlListDataCompare) + + d xmlListDelete pr extproc('xmlListDelete') + d l value like(xmlListPtr) + + * Basic Operators + + d xmlListSearch pr * extproc('xmlListSearch') void * + d l value like(xmlListPtr) + d data * value void * + + d xmlListReverseSearch... + d pr * extproc('xmlListReverseSearch') void * + d l value like(xmlListPtr) + d data * value void * + + d xmlListInsert pr 10i 0 extproc('xmlListInsert') + d l value like(xmlListPtr) + d data * value void * + + d xmlListAppend pr 10i 0 extproc('xmlListAppend') + d l value like(xmlListPtr) + d data * value void * + + d xmlListRemoveFirst... + d pr 10i 0 extproc('xmlListRemoveFirst') + d l value like(xmlListPtr) + d data * value void * + + d xmlListRemoveLast... + d pr 10i 0 extproc('xmlListRemoveLast') + d l value like(xmlListPtr) + d data * value void * + + d xmlListRemoveAll... + d pr 10i 0 extproc('xmlListRemoveAll') + d l value like(xmlListPtr) + d data * value void * + + d xmlListClear pr extproc('xmlListClear') + d l value like(xmlListPtr) + + d xmlListEmpty pr 10i 0 extproc('xmlListEmpty') + d l value like(xmlListPtr) + + d xmlListFront pr extproc('xmlListFront') + d like(xmlLinkPtr) + d l value like(xmlListPtr) + + d xmlListEnd pr extproc('xmlListEnd') + d like(xmlLinkPtr) + d l value like(xmlListPtr) + + d xmlListSize pr 10i 0 extproc('xmlListSize') + d l value like(xmlListPtr) + + d xmlListPopFront... + d pr extproc('xmlListPopFront') + d l value like(xmlListPtr) + + d xmlListPopBack... + d pr extproc('xmlListPopBack') + d l value like(xmlListPtr) + + d xmlListPushFront... + d pr 10i 0 extproc('xmlListPushFront') + d l value like(xmlListPtr) + d data * value void * + + d xmlListPushBack... + d pr 10i 0 extproc('xmlListPushBack') + d l value like(xmlListPtr) + d data * value void * + + * Advanced Operators + + d xmlListReverse pr extproc('xmlListReverse') + d l value like(xmlListPtr) + + d xmlListSort pr extproc('xmlListSort') + d l value like(xmlListPtr) + + d xmlListWalk pr extproc('xmlListWalk') + d l value like(xmlListPtr) + d walker value like(xmlListWalker) + d user * value const void * + + d xmlListReverseWalk... + d pr extproc('xmlListReverseWalk') + d l value like(xmlListPtr) + d walker value like(xmlListWalker) + d user * value const void * + + d xmlListMerge pr extproc('xmlListMerge') + d l1 value like(xmlListPtr) + d l2 value like(xmlListPtr) + + d xmlListDup pr extproc('xmlListDup') + d like(xmlListPtr) + d old value like(xmlListPtr) + + d xmlListCopy pr 10i 0 extproc('xmlListCopy') + d cur value like(xmlListPtr) + d old value like(xmlListPtr) const + + * Link operators + + d xmlListGetData pr * extproc('xmlListGetData') void * + d lk value like(xmlLinkPtr) + + * xmlListUnique() + * xmlListSwap + + /endif XML_LINK_INCLUDE__ |