2 * Copyright (c) 1995, Index Data.
3 * See the file LICENSE for details.
4 * Sebastian Hammer, Adam Dickmeiss
7 * Revision 1.4 1996-10-10 12:35:12 quinn
8 * Added Update extended service.
10 * Revision 1.3 1995/09/29 17:11:54 quinn
13 * Revision 1.2 1995/09/27 15:02:41 quinn
14 * Modified function heads & prototypes.
16 * Revision 1.1 1995/08/21 09:16:32 quinn
17 * Added Extended services + Item Order
24 int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt)
26 if (!odr_sequence_begin(o, p, sizeof(**p)))
27 return opt && odr_ok(o);
29 odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 1, 0) &&
30 odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT,
32 odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
34 odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 4, 1) &&
35 odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 5, 1) &&
36 odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT,
38 odr_implicit(o, odr_octetstring, &(*p)->targetReference, ODR_CONTEXT,
40 odr_implicit(o, odr_generalizedtime, &(*p)->creationDateTime,
43 odr_implicit(o, odr_integer, &(*p)->taskStatus, ODR_CONTEXT, 9, 0) &&
44 odr_implicit_settag(o, ODR_CONTEXT, 10) &&
45 (odr_sequence_of(o, z_DiagRec, &(*p)->packageDiagnostics,
46 &(*p)->num_packageDiagnostics) || odr_ok(o)) &&
47 odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT,
52 /* ----------------------- ITEM ORDER --------------------- */
54 int z_IOTargetPart(ODR o, Z_IOTargetPart **p, int opt)
56 if (!odr_sequence_begin(o, p, sizeof(**p)))
57 return opt && odr_ok(o);
59 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 1, 1) &&
60 odr_implicit(o, z_External, &(*p)->statusOrErrorReport, ODR_CONTEXT,
62 odr_implicit(o, odr_integer, &(*p)->auxiliaryStatus, ODR_CONTEXT,
67 int z_IOResultSetItem(ODR o, Z_IOResultSetItem **p, int opt)
69 if (!odr_sequence_begin(o, p, sizeof(**p)))
70 return opt && odr_ok(o);
72 odr_implicit(o, z_InternationalString, &(*p)->resultSetId, ODR_CONTEXT,
74 odr_implicit(o, odr_integer, &(*p)->item, ODR_CONTEXT, 2, 1) &&
78 int z_IOOriginPartNotToKeep(ODR o, Z_IOOriginPartNotToKeep **p, int opt)
80 if (!odr_sequence_begin(o, p, sizeof(**p)))
81 return opt && odr_ok(o);
83 odr_implicit(o, z_IOResultSetItem, &(*p)->resultSetItem, ODR_CONTEXT,
85 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 2, 1) &&
89 int z_IOContact(ODR o, Z_IOContact **p, int opt)
91 if (!odr_sequence_begin(o, p, sizeof(**p)))
92 return opt && odr_ok(o);
94 odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
96 odr_implicit(o, z_InternationalString, &(*p)->phone, ODR_CONTEXT,
98 odr_implicit(o, z_InternationalString, &(*p)->email, ODR_CONTEXT,
103 int z_IOCreditCardInfo(ODR o, Z_IOCreditCardInfo **p, int opt)
105 if (!odr_sequence_begin(o, p, sizeof(**p)))
106 return opt && odr_ok(o);
108 odr_implicit(o, z_InternationalString, &(*p)->nameOnCard, ODR_CONTEXT,
110 odr_implicit(o, z_InternationalString, &(*p)->expirationDate,
111 ODR_CONTEXT, 2, 0) &&
112 odr_implicit(o, z_InternationalString, &(*p)->cardNumber, ODR_CONTEXT,
117 int z_IOBilling(ODR o, Z_IOBilling **p, int opt)
119 static Odr_arm arm[] =
121 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, odr_null},
122 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, odr_null},
123 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, odr_null},
124 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard,
126 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied,
128 {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, odr_null},
129 {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown,
134 if (!odr_sequence_begin(o, p, sizeof(**p)))
135 return opt && odr_ok(o);
137 odr_constructed_begin(o, &(*p)->paymentMethod,
139 odr_choice(o, arm, &(*p)->paymentMethod, &(*p)->which) &&
140 odr_constructed_end(o) &&
141 odr_implicit(o, z_InternationalString, &(*p)->customerReference,
142 ODR_CONTEXT, 2, 1) &&
143 odr_implicit(o, z_InternationalString, &(*p)->customerPONumber,
144 ODR_CONTEXT, 3, 1) &&
148 int z_IOOriginPartToKeep(ODR o, Z_IOOriginPartToKeep **p, int opt)
150 if (!odr_sequence_begin(o, p, sizeof(**p)))
151 return opt && odr_ok(o);
153 odr_implicit(o, z_External, &(*p)->supplDescription, ODR_CONTEXT,
155 odr_implicit(o, z_IOContact, &(*p)->contact, ODR_CONTEXT, 2, 1) &&
156 odr_implicit(o, z_IOBilling, &(*p)->addlBilling, ODR_CONTEXT,
161 int z_IORequest(ODR o, Z_IORequest **p, int opt)
163 if (!odr_sequence_begin(o, p, sizeof(**p)))
164 return opt && odr_ok(o);
166 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->toKeep, ODR_CONTEXT,
168 odr_implicit(o, z_IOOriginPartNotToKeep, &(*p)->notToKeep, ODR_CONTEXT,
173 int z_IOTaskPackage(ODR o, Z_IOTaskPackage **p, int opt)
175 if (!odr_sequence_begin(o, p, sizeof(**p)))
176 return opt && odr_ok(o);
178 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->originPart, ODR_CONTEXT,
180 odr_implicit(o, z_IOTargetPart, &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
184 int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt)
186 static Odr_arm arm[] =
188 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ItemOrder_esRequest, z_IORequest},
189 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ItemOrder_taskPackage,
194 if (o->direction == ODR_DECODE)
195 *p = odr_malloc(o, sizeof(**p));
198 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
201 return opt && odr_ok(o);
204 /* ----------------------- ITEM UPDATE -------------------- */
206 int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt)
208 static Odr_arm arm[] = {
209 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecordsId_timeStamp,
210 odr_generalizedtime},
211 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecordsId_versionNumber,
212 z_InternationalString},
213 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecordsId_previousVersion,
217 if (!odr_initmember(o, p, sizeof(**p)))
218 return opt && odr_ok(o);
219 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
222 return opt && odr_ok(o);
225 int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt)
227 if (!odr_sequence_begin (o, p, sizeof(**p)))
228 return opt && odr_ok (o);
230 odr_implicit (o, z_InternationalString,
231 &(*p)->note, ODR_CONTEXT, 1, 1) &&
232 odr_implicit (o, odr_integer,
233 &(*p)->id, ODR_CONTEXT, 2, 1) &&
234 odr_sequence_end (o);
237 int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt)
239 static Odr_arm arm[] = {
240 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecords_number,
242 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecords_string,
243 z_InternationalString},
244 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecords_opaque,
248 if (!odr_sequence_begin (o, p, sizeof(**p)))
249 return opt && odr_ok (o);
251 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
252 odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
253 odr_constructed_end (o)) || odr_ok(o)) &&
254 odr_explicit (o, z_IUSuppliedRecordsId,
255 &(*p)->supplementalId, ODR_CONTEXT, 2, 1) &&
256 odr_implicit (o, z_IUCorrelationInfo,
257 &(*p)->correlationInfo, ODR_CONTEXT, 3, 1) &&
258 odr_implicit (o, odr_external,
259 &(*p)->record, ODR_CONTEXT, 4, 0) &&
260 odr_sequence_end (o);
263 int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt)
265 if (odr_initmember (o, p, sizeof(**p)))
266 return opt && odr_ok(o);
267 if (odr_sequence_of (o, z_IUSuppliedRecords_elem, &(*p)->elements,
271 return opt && odr_ok(o);
274 int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p,
277 static Odr_arm arm[] = {
278 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUTaskPackageRecordStructure_record,
280 {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_IUTaskPackageRecordStructure_diagnostic,
284 if (!odr_sequence_begin (o, p, sizeof(**p)))
285 return opt && odr_ok (o);
287 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
288 odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
289 odr_constructed_end (o)) || odr_ok(o)) &&
290 odr_implicit (o, z_IUCorrelationInfo,
291 &(*p)->correlationInfo, ODR_CONTEXT, 2, 1) &&
292 odr_implicit (o, odr_integer,
293 &(*p)->recordStatus, ODR_CONTEXT, 3, 0) &&
294 odr_sequence_end (o);
297 int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt)
299 if (!odr_sequence_begin (o, p, sizeof(**p)))
300 return opt && odr_ok (o);
302 odr_implicit (o, odr_integer,
303 &(*p)->action, ODR_CONTEXT, 1, 0) &&
304 odr_implicit (o, z_InternationalString,
305 &(*p)->databaseName, ODR_CONTEXT, 2, 0) &&
306 odr_implicit (o, odr_oid,
307 &(*p)->schema, ODR_CONTEXT, 3, 1) &&
308 odr_implicit (o, z_InternationalString,
309 &(*p)->elementSetName, ODR_CONTEXT, 4, 1) &&
310 odr_sequence_end (o);
313 int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt)
315 if (!odr_sequence_begin (o, p, sizeof(**p)))
316 return opt && odr_ok (o);
318 odr_implicit (o, odr_integer,
319 &(*p)->updateStatus, ODR_CONTEXT, 1, 0) &&
320 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
321 (odr_sequence_of(o, z_DiagRec, &(*p)->globalDiagnostics,
322 &(*p)->num_globalDiagnostics) || odr_ok(o)) &&
323 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
324 odr_sequence_of(o, z_IUTaskPackageRecordStructure, &(*p)->taskPackageRecords,
325 &(*p)->num_taskPackageRecords) &&
326 odr_sequence_end (o);
329 int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt)
331 if (!odr_sequence_begin (o, p, sizeof(**p)))
332 return opt && odr_ok (o);
334 odr_explicit (o, z_IUOriginPartToKeep,
335 &(*p)->toKeep, ODR_CONTEXT, 1, 0) &&
336 odr_explicit (o, z_IUSuppliedRecords,
337 &(*p)->notToKeep, ODR_CONTEXT, 2, 0) &&
338 odr_sequence_end (o);
341 int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt)
343 if (!odr_sequence_begin (o, p, sizeof(**p)))
344 return opt && odr_ok (o);
346 odr_explicit (o, z_IUOriginPartToKeep,
347 &(*p)->originPart, ODR_CONTEXT, 1, 0) &&
348 odr_explicit (o, z_IUTargetPart,
349 &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
350 odr_sequence_end (o);
353 int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt)
355 static Odr_arm arm[] = {
356 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUUpdate_esRequest,
357 z_IUUpdateEsRequest},
358 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUUpdate_taskPackage,
359 z_IUUpdateTaskPackage},
362 if (!odr_initmember(o, p, sizeof(**p)))
363 return opt && odr_ok(o);
364 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
367 return opt && odr_ok(o);