aboutsummaryrefslogtreecommitdiff
path: root/libxml2-2.9.10/os400/libxmlrpg/list.rpgle
blob: ce2fa1c1b8f1c25b007733df3521819401ce3c64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
      * 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"
      /include "libxmlrpg/xmlTypesC"

     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                  extproc('xmlListInsert')
     d                                     like(xmlCint)
     d  l                                  value like(xmlListPtr)
     d  data                           *   value                                void *

     d xmlListAppend   pr                  extproc('xmlListAppend')
     d                                     like(xmlCint)
     d  l                                  value like(xmlListPtr)
     d  data                           *   value                                void *

     d xmlListRemoveFirst...
     d                 pr                  extproc('xmlListRemoveFirst')
     d                                     like(xmlCint)
     d  l                                  value like(xmlListPtr)
     d  data                           *   value                                void *

     d xmlListRemoveLast...
     d                 pr                  extproc('xmlListRemoveLast')
     d                                     like(xmlCint)
     d  l                                  value like(xmlListPtr)
     d  data                           *   value                                void *

     d xmlListRemoveAll...
     d                 pr                  extproc('xmlListRemoveAll')
     d                                     like(xmlCint)
     d  l                                  value like(xmlListPtr)
     d  data                           *   value                                void *

     d xmlListClear    pr                  extproc('xmlListClear')
     d  l                                  value like(xmlListPtr)

     d xmlListEmpty    pr                  extproc('xmlListEmpty')
     d                                     like(xmlCint)
     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                  extproc('xmlListSize')
     d                                     like(xmlCint)
     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                  extproc('xmlListPushFront')
     d                                     like(xmlCint)
     d  l                                  value like(xmlListPtr)
     d  data                           *   value                                void *

     d xmlListPushBack...
     d                 pr                  extproc('xmlListPushBack')
     d                                     like(xmlCint)
     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                  extproc('xmlListCopy')
     d                                     like(xmlCint)
     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__