c62fcbd10ee45c71e6224187a42bd9e7252cf6ec
[platform/upstream/libxml2.git] / os400 / libxmlrpg / list.rpgle
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
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__