2 * Copyright (c) 1995, Index Data.
3 * See the file LICENSE for details.
4 * Sebastian Hammer, Adam Dickmeiss
7 * Revision 1.3 1995-09-29 17:11:54 quinn
10 * Revision 1.2 1995/09/27 15:02:41 quinn
11 * Modified function heads & prototypes.
13 * Revision 1.1 1995/08/21 09:16:32 quinn
14 * Added Extended services + Item Order
21 int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt)
23 if (!odr_sequence_begin(o, p, sizeof(**p)))
24 return opt && odr_ok(o);
26 odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 1, 0) &&
27 odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT,
29 odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
31 odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 4, 1) &&
32 odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 5, 1) &&
33 odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT,
35 odr_implicit(o, odr_octetstring, &(*p)->targetReference, ODR_CONTEXT,
37 odr_implicit(o, odr_generalizedtime, &(*p)->creationDateTime,
40 odr_implicit(o, odr_integer, &(*p)->taskStatus, ODR_CONTEXT, 9, 0) &&
41 odr_implicit_settag(o, ODR_CONTEXT, 10) &&
42 (odr_sequence_of(o, z_DiagRec, &(*p)->packageDiagnostics,
43 &(*p)->num_packageDiagnostics) || odr_ok(o)) &&
44 odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT,
49 /* ----------------------- ITEM ORDER --------------------- */
51 int z_IOTargetPart(ODR o, Z_IOTargetPart **p, int opt)
53 if (!odr_sequence_begin(o, p, sizeof(**p)))
54 return opt && odr_ok(o);
56 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 1, 1) &&
57 odr_implicit(o, z_External, &(*p)->statusOrErrorReport, ODR_CONTEXT,
59 odr_implicit(o, odr_integer, &(*p)->auxiliaryStatus, ODR_CONTEXT,
64 int z_IOResultSetItem(ODR o, Z_IOResultSetItem **p, int opt)
66 if (!odr_sequence_begin(o, p, sizeof(**p)))
67 return opt && odr_ok(o);
69 odr_implicit(o, z_InternationalString, &(*p)->resultSetId, ODR_CONTEXT,
71 odr_implicit(o, odr_integer, &(*p)->item, ODR_CONTEXT, 2, 1) &&
75 int z_IOOriginPartNotToKeep(ODR o, Z_IOOriginPartNotToKeep **p, int opt)
77 if (!odr_sequence_begin(o, p, sizeof(**p)))
78 return opt && odr_ok(o);
80 odr_implicit(o, z_IOResultSetItem, &(*p)->resultSetItem, ODR_CONTEXT,
82 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 2, 1) &&
86 int z_IOContact(ODR o, Z_IOContact **p, int opt)
88 if (!odr_sequence_begin(o, p, sizeof(**p)))
89 return opt && odr_ok(o);
91 odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
93 odr_implicit(o, z_InternationalString, &(*p)->phone, ODR_CONTEXT,
95 odr_implicit(o, z_InternationalString, &(*p)->email, ODR_CONTEXT,
100 int z_IOCreditCardInfo(ODR o, Z_IOCreditCardInfo **p, int opt)
102 if (!odr_sequence_begin(o, p, sizeof(**p)))
103 return opt && odr_ok(o);
105 odr_implicit(o, z_InternationalString, &(*p)->nameOnCard, ODR_CONTEXT,
107 odr_implicit(o, z_InternationalString, &(*p)->expirationDate,
108 ODR_CONTEXT, 2, 0) &&
109 odr_implicit(o, z_InternationalString, &(*p)->cardNumber, ODR_CONTEXT,
114 int z_IOBilling(ODR o, Z_IOBilling **p, int opt)
116 static Odr_arm arm[] =
118 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, odr_null},
119 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, odr_null},
120 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, odr_null},
121 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard,
123 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied,
125 {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, odr_null},
126 {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown,
131 if (!odr_sequence_begin(o, p, sizeof(**p)))
132 return opt && odr_ok(o);
134 odr_constructed_begin(o, &(*p)->paymentMethod,
136 odr_choice(o, arm, &(*p)->paymentMethod, &(*p)->which) &&
137 odr_constructed_end(o) &&
138 odr_implicit(o, z_InternationalString, &(*p)->customerReference,
139 ODR_CONTEXT, 2, 1) &&
140 odr_implicit(o, z_InternationalString, &(*p)->customerPONumber,
141 ODR_CONTEXT, 3, 1) &&
145 int z_IOOriginPartToKeep(ODR o, Z_IOOriginPartToKeep **p, int opt)
147 if (!odr_sequence_begin(o, p, sizeof(**p)))
148 return opt && odr_ok(o);
150 odr_implicit(o, z_External, &(*p)->supplDescription, ODR_CONTEXT,
152 odr_implicit(o, z_IOContact, &(*p)->contact, ODR_CONTEXT, 2, 1) &&
153 odr_implicit(o, z_IOBilling, &(*p)->addlBilling, ODR_CONTEXT,
158 int z_IORequest(ODR o, Z_IORequest **p, int opt)
160 if (!odr_sequence_begin(o, p, sizeof(**p)))
161 return opt && odr_ok(o);
163 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->toKeep, ODR_CONTEXT,
165 odr_implicit(o, z_IOOriginPartNotToKeep, &(*p)->notToKeep, ODR_CONTEXT,
170 int z_IOTaskPackage(ODR o, Z_IOTaskPackage **p, int opt)
172 if (!odr_sequence_begin(o, p, sizeof(**p)))
173 return opt && odr_ok(o);
175 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->originPart, ODR_CONTEXT,
177 odr_implicit(o, z_IOTargetPart, &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
181 int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt)
183 static Odr_arm arm[] =
185 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ItemOrder_esRequest, z_IORequest},
186 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ItemOrder_taskPackage,
191 if (o->direction == ODR_DECODE)
192 *p = odr_malloc(o, sizeof(**p));
195 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
198 return opt && odr_ok(o);