2 * Copyright (c) 1995, Index Data.
3 * See the file LICENSE for details.
4 * Sebastian Hammer, Adam Dickmeiss
7 * Revision 1.5 1997-04-30 08:52:02 quinn
10 * Revision 1.4 1996/10/10 12:35:12 quinn
11 * Added Update extended service.
13 * Revision 1.3 1995/09/29 17:11:54 quinn
16 * Revision 1.2 1995/09/27 15:02:41 quinn
17 * Modified function heads & prototypes.
19 * Revision 1.1 1995/08/21 09:16:32 quinn
20 * Added Extended services + Item Order
27 int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt)
29 if (!odr_sequence_begin(o, p, sizeof(**p)))
30 return opt && odr_ok(o);
32 odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 1, 0) &&
33 odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT,
35 odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
37 odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 4, 1) &&
38 odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 5, 1) &&
39 odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT,
41 odr_implicit(o, odr_octetstring, &(*p)->targetReference, ODR_CONTEXT,
43 odr_implicit(o, odr_generalizedtime, &(*p)->creationDateTime,
46 odr_implicit(o, odr_integer, &(*p)->taskStatus, ODR_CONTEXT, 9, 0) &&
47 odr_implicit_settag(o, ODR_CONTEXT, 10) &&
48 (odr_sequence_of(o, z_DiagRec, &(*p)->packageDiagnostics,
49 &(*p)->num_packageDiagnostics) || odr_ok(o)) &&
50 odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT,
55 /* ----------------------- ITEM ORDER --------------------- */
57 int z_IOTargetPart(ODR o, Z_IOTargetPart **p, int opt)
59 if (!odr_sequence_begin(o, p, sizeof(**p)))
60 return opt && odr_ok(o);
62 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 1, 1) &&
63 odr_implicit(o, z_External, &(*p)->statusOrErrorReport, ODR_CONTEXT,
65 odr_implicit(o, odr_integer, &(*p)->auxiliaryStatus, ODR_CONTEXT,
70 int z_IOResultSetItem(ODR o, Z_IOResultSetItem **p, int opt)
72 if (!odr_sequence_begin(o, p, sizeof(**p)))
73 return opt && odr_ok(o);
75 odr_implicit(o, z_InternationalString, &(*p)->resultSetId, ODR_CONTEXT,
77 odr_implicit(o, odr_integer, &(*p)->item, ODR_CONTEXT, 2, 1) &&
81 int z_IOOriginPartNotToKeep(ODR o, Z_IOOriginPartNotToKeep **p, int opt)
83 if (!odr_sequence_begin(o, p, sizeof(**p)))
84 return opt && odr_ok(o);
86 odr_implicit(o, z_IOResultSetItem, &(*p)->resultSetItem, ODR_CONTEXT,
88 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 2, 1) &&
92 int z_IOContact(ODR o, Z_IOContact **p, int opt)
94 if (!odr_sequence_begin(o, p, sizeof(**p)))
95 return opt && odr_ok(o);
97 odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
99 odr_implicit(o, z_InternationalString, &(*p)->phone, ODR_CONTEXT,
101 odr_implicit(o, z_InternationalString, &(*p)->email, ODR_CONTEXT,
106 int z_IOCreditCardInfo(ODR o, Z_IOCreditCardInfo **p, int opt)
108 if (!odr_sequence_begin(o, p, sizeof(**p)))
109 return opt && odr_ok(o);
111 odr_implicit(o, z_InternationalString, &(*p)->nameOnCard, ODR_CONTEXT,
113 odr_implicit(o, z_InternationalString, &(*p)->expirationDate,
114 ODR_CONTEXT, 2, 0) &&
115 odr_implicit(o, z_InternationalString, &(*p)->cardNumber, ODR_CONTEXT,
120 int z_IOBilling(ODR o, Z_IOBilling **p, int opt)
122 static Odr_arm arm[] =
124 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, odr_null},
125 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, odr_null},
126 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, odr_null},
127 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard,
129 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied,
131 {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, odr_null},
132 {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown,
137 if (!odr_sequence_begin(o, p, sizeof(**p)))
138 return opt && odr_ok(o);
140 odr_constructed_begin(o, &(*p)->paymentMethod,
142 odr_choice(o, arm, &(*p)->paymentMethod, &(*p)->which) &&
143 odr_constructed_end(o) &&
144 odr_implicit(o, z_InternationalString, &(*p)->customerReference,
145 ODR_CONTEXT, 2, 1) &&
146 odr_implicit(o, z_InternationalString, &(*p)->customerPONumber,
147 ODR_CONTEXT, 3, 1) &&
151 int z_IOOriginPartToKeep(ODR o, Z_IOOriginPartToKeep **p, int opt)
153 if (!odr_sequence_begin(o, p, sizeof(**p)))
154 return opt && odr_ok(o);
156 odr_implicit(o, z_External, &(*p)->supplDescription, ODR_CONTEXT,
158 odr_implicit(o, z_IOContact, &(*p)->contact, ODR_CONTEXT, 2, 1) &&
159 odr_implicit(o, z_IOBilling, &(*p)->addlBilling, ODR_CONTEXT,
164 int z_IORequest(ODR o, Z_IORequest **p, int opt)
166 if (!odr_sequence_begin(o, p, sizeof(**p)))
167 return opt && odr_ok(o);
169 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->toKeep, ODR_CONTEXT,
171 odr_implicit(o, z_IOOriginPartNotToKeep, &(*p)->notToKeep, ODR_CONTEXT,
176 int z_IOTaskPackage(ODR o, Z_IOTaskPackage **p, int opt)
178 if (!odr_sequence_begin(o, p, sizeof(**p)))
179 return opt && odr_ok(o);
181 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->originPart, ODR_CONTEXT,
183 odr_implicit(o, z_IOTargetPart, &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
187 int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt)
189 static Odr_arm arm[] =
191 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ItemOrder_esRequest, z_IORequest},
192 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ItemOrder_taskPackage,
197 if (o->direction == ODR_DECODE)
198 *p = odr_malloc(o, sizeof(**p));
201 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
204 return opt && odr_ok(o);
207 /* ----------------------- ITEM UPDATE -------------------- */
209 int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt)
211 static Odr_arm arm[] = {
212 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecordsId_timeStamp,
213 odr_generalizedtime},
214 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecordsId_versionNumber,
215 z_InternationalString},
216 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecordsId_previousVersion,
220 if (!odr_initmember(o, p, sizeof(**p)))
221 return opt && odr_ok(o);
222 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
225 return opt && odr_ok(o);
228 int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt)
230 if (!odr_sequence_begin (o, p, sizeof(**p)))
231 return opt && odr_ok (o);
233 odr_implicit (o, z_InternationalString,
234 &(*p)->note, ODR_CONTEXT, 1, 1) &&
235 odr_implicit (o, odr_integer,
236 &(*p)->id, ODR_CONTEXT, 2, 1) &&
237 odr_sequence_end (o);
240 int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt)
242 static Odr_arm arm[] = {
243 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecords_number,
245 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecords_string,
246 z_InternationalString},
247 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecords_opaque,
251 if (!odr_sequence_begin (o, p, sizeof(**p)))
252 return opt && odr_ok (o);
254 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
255 odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
256 odr_constructed_end (o)) || odr_ok(o)) &&
257 odr_explicit (o, z_IUSuppliedRecordsId,
258 &(*p)->supplementalId, ODR_CONTEXT, 2, 1) &&
259 odr_implicit (o, z_IUCorrelationInfo,
260 &(*p)->correlationInfo, ODR_CONTEXT, 3, 1) &&
261 odr_implicit (o, odr_external,
262 &(*p)->record, ODR_CONTEXT, 4, 0) &&
263 odr_sequence_end (o);
266 int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt)
268 if (odr_initmember (o, p, sizeof(**p)))
269 return opt && odr_ok(o);
270 if (odr_sequence_of (o, z_IUSuppliedRecords_elem, &(*p)->elements,
274 return opt && odr_ok(o);
277 int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p,
280 static Odr_arm arm[] = {
281 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUTaskPackageRecordStructure_record,
283 {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_IUTaskPackageRecordStructure_diagnostic,
287 if (!odr_sequence_begin (o, p, sizeof(**p)))
288 return opt && odr_ok (o);
290 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
291 odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
292 odr_constructed_end (o)) || odr_ok(o)) &&
293 odr_implicit (o, z_IUCorrelationInfo,
294 &(*p)->correlationInfo, ODR_CONTEXT, 2, 1) &&
295 odr_implicit (o, odr_integer,
296 &(*p)->recordStatus, ODR_CONTEXT, 3, 0) &&
297 odr_sequence_end (o);
300 int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt)
302 if (!odr_sequence_begin (o, p, sizeof(**p)))
303 return opt && odr_ok (o);
305 odr_implicit (o, odr_integer,
306 &(*p)->action, ODR_CONTEXT, 1, 0) &&
307 odr_implicit (o, z_InternationalString,
308 &(*p)->databaseName, ODR_CONTEXT, 2, 0) &&
309 odr_implicit (o, odr_oid,
310 &(*p)->schema, ODR_CONTEXT, 3, 1) &&
311 odr_implicit (o, z_InternationalString,
312 &(*p)->elementSetName, ODR_CONTEXT, 4, 1) &&
313 odr_sequence_end (o);
316 int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt)
318 if (!odr_sequence_begin (o, p, sizeof(**p)))
319 return opt && odr_ok (o);
321 odr_implicit (o, odr_integer,
322 &(*p)->updateStatus, ODR_CONTEXT, 1, 0) &&
323 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
324 (odr_sequence_of(o, z_DiagRec, &(*p)->globalDiagnostics,
325 &(*p)->num_globalDiagnostics) || odr_ok(o)) &&
326 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
327 odr_sequence_of(o, z_IUTaskPackageRecordStructure, &(*p)->taskPackageRecords,
328 &(*p)->num_taskPackageRecords) &&
329 odr_sequence_end (o);
332 int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt)
334 if (!odr_sequence_begin (o, p, sizeof(**p)))
335 return opt && odr_ok (o);
337 odr_explicit (o, z_IUOriginPartToKeep,
338 &(*p)->toKeep, ODR_CONTEXT, 1, 0) &&
339 odr_explicit (o, z_IUSuppliedRecords,
340 &(*p)->notToKeep, ODR_CONTEXT, 2, 0) &&
341 odr_sequence_end (o);
344 int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt)
346 if (!odr_sequence_begin (o, p, sizeof(**p)))
347 return opt && odr_ok (o);
349 odr_explicit (o, z_IUOriginPartToKeep,
350 &(*p)->originPart, ODR_CONTEXT, 1, 0) &&
351 odr_explicit (o, z_IUTargetPart,
352 &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
353 odr_sequence_end (o);
356 int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt)
358 static Odr_arm arm[] = {
359 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUUpdate_esRequest,
360 z_IUUpdateEsRequest},
361 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUUpdate_taskPackage,
362 z_IUUpdateTaskPackage},
365 if (!odr_initmember(o, p, sizeof(**p)))
366 return opt && odr_ok(o);
367 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
370 return opt && odr_ok(o);