2 * Copyright (c) 1995, Index Data.
3 * See the file LICENSE for details.
4 * Sebastian Hammer, Adam Dickmeiss
7 * Revision 1.2 1995-09-27 15:02:41 quinn
8 * Modified function heads & prototypes.
10 * Revision 1.1 1995/08/21 09:16:32 quinn
11 * Added Extended services + Item Order
18 int MDF z_TaskPackage(ODR o, Z_TaskPackage **p, int opt)
20 if (!odr_sequence_begin(o, p, sizeof(**p)))
21 return opt && odr_ok(o);
23 odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 1, 0) &&
24 odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT,
26 odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
28 odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 4, 1) &&
29 odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 5, 1) &&
30 odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT,
32 odr_implicit(o, odr_octetstring, &(*p)->targetReference, ODR_CONTEXT,
34 odr_implicit(o, odr_generalizedtime, &(*p)->creationDateTime,
37 odr_implicit(o, odr_integer, &(*p)->taskStatus, ODR_CONTEXT, 9, 0) &&
38 odr_implicit_settag(o, ODR_CONTEXT, 10) &&
39 (odr_sequence_of(o, z_DiagRec, &(*p)->packageDiagnostics,
40 &(*p)->num_packageDiagnostics) || odr_ok(o)) &&
41 odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT,
46 /* ----------------------- ITEM ORDER --------------------- */
48 int z_IOTargetPart(ODR o, Z_IOTargetPart **p, int opt)
50 if (!odr_sequence_begin(o, p, sizeof(**p)))
51 return opt && odr_ok(o);
53 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 1, 1) &&
54 odr_implicit(o, z_External, &(*p)->statusOrErrorReport, ODR_CONTEXT,
56 odr_implicit(o, odr_integer, &(*p)->auxiliaryStatus, ODR_CONTEXT,
61 int z_IOResultSetItem(ODR o, Z_IOResultSetItem **p, int opt)
63 if (!odr_sequence_begin(o, p, sizeof(**p)))
64 return opt && odr_ok(o);
66 odr_implicit(o, z_InternationalString, &(*p)->resultSetId, ODR_CONTEXT,
68 odr_implicit(o, odr_integer, &(*p)->item, ODR_CONTEXT, 2, 1) &&
72 int z_IOOriginPartNotToKeep(ODR o, Z_IOOriginPartNotToKeep **p, int opt)
74 if (!odr_sequence_begin(o, p, sizeof(**p)))
75 return opt && odr_ok(o);
77 odr_implicit(o, z_IOResultSetItem, &(*p)->resultSetItem, ODR_CONTEXT,
79 odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 2, 1) &&
83 int z_IOContact(ODR o, Z_IOContact **p, int opt)
85 if (!odr_sequence_begin(o, p, sizeof(**p)))
86 return opt && odr_ok(o);
88 odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
90 odr_implicit(o, z_InternationalString, &(*p)->phone, ODR_CONTEXT,
92 odr_implicit(o, z_InternationalString, &(*p)->email, ODR_CONTEXT,
97 int z_IOCreditCardInfo(ODR o, Z_IOCreditCardInfo **p, int opt)
99 if (!odr_sequence_begin(o, p, sizeof(**p)))
100 return opt && odr_ok(o);
102 odr_implicit(o, z_InternationalString, &(*p)->nameOnCard, ODR_CONTEXT,
104 odr_implicit(o, z_InternationalString, &(*p)->expirationDate,
105 ODR_CONTEXT, 2, 0) &&
106 odr_implicit(o, z_InternationalString, &(*p)->cardNumber, ODR_CONTEXT,
111 int z_IOBilling(ODR o, Z_IOBilling **p, int opt)
113 static Odr_arm arm[] =
115 {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, odr_null},
116 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, odr_null},
117 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, odr_null},
118 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard,
120 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied,
122 {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, odr_null},
123 {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown,
128 if (!odr_sequence_begin(o, p, sizeof(**p)))
129 return opt && odr_ok(o);
131 odr_constructed_begin(o, &(*p)->paymentMethod,
133 odr_choice(o, arm, &(*p)->paymentMethod, &(*p)->which) &&
134 odr_constructed_end(o) &&
135 odr_implicit(o, z_InternationalString, &(*p)->customerReference,
136 ODR_CONTEXT, 2, 1) &&
137 odr_implicit(o, z_InternationalString, &(*p)->customerPONumber,
138 ODR_CONTEXT, 3, 1) &&
142 int z_IOOriginPartToKeep(ODR o, Z_IOOriginPartToKeep **p, int opt)
144 if (!odr_sequence_begin(o, p, sizeof(**p)))
145 return opt && odr_ok(o);
147 odr_implicit(o, z_External, &(*p)->supplDescription, ODR_CONTEXT,
149 odr_implicit(o, z_IOContact, &(*p)->contact, ODR_CONTEXT, 2, 1) &&
150 odr_implicit(o, z_IOBilling, &(*p)->addlBilling, ODR_CONTEXT,
155 int z_IORequest(ODR o, Z_IORequest **p, int opt)
157 if (!odr_sequence_begin(o, p, sizeof(**p)))
158 return opt && odr_ok(o);
160 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->toKeep, ODR_CONTEXT,
162 odr_implicit(o, z_IOOriginPartNotToKeep, &(*p)->notToKeep, ODR_CONTEXT,
167 int z_IOTaskPackage(ODR o, Z_IOTaskPackage **p, int opt)
169 if (!odr_sequence_begin(o, p, sizeof(**p)))
170 return opt && odr_ok(o);
172 odr_implicit(o, z_IOOriginPartToKeep, &(*p)->originPart, ODR_CONTEXT,
174 odr_implicit(o, z_IOTargetPart, &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
178 int MDF z_ItemOrder(ODR o, Z_ItemOrder **p, int opt)
180 static Odr_arm arm[] =
182 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ItemOrder_esRequest, z_IORequest},
183 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ItemOrder_taskPackage,
188 if (o->direction == ODR_DECODE)
189 *p = odr_malloc(o, sizeof(**p));
192 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
195 return opt && odr_ok(o);