• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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__
169