Imported Upstream version 2.9.4
[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       /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__