Avoid redundant YAZ includes.
[yaz4j-moved-to-github.git] / dependencies / yaz-2.1.28 / src / ill-core.c
1 /** \file ill-core.c
2     \brief ASN.1 Module ISO-10161-ILL-1
3
4     Generated automatically by YAZ ASN.1 Compiler 0.4
5 */
6
7 #include <yaz/ill-core.h>
8
9 int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name)
10 {
11         static Odr_arm arm[] = {
12                 {-1, -1, -1, ILL_APDU_ILL_Request,
13                  (Odr_fun) ill_Request, "illRequest"},
14                 {-1, -1, -1, ILL_APDU_Forward_Notification,
15                  (Odr_fun) ill_Forward_Notification, "Forward_Notification"},
16                 {-1, -1, -1, ILL_APDU_Shipped,
17                  (Odr_fun) ill_Shipped, "Shipped"},
18                 {-1, -1, -1, ILL_APDU_ILL_Answer,
19                  (Odr_fun) ill_Answer, "illAnswer"},
20                 {-1, -1, -1, ILL_APDU_Conditional_Reply,
21                  (Odr_fun) ill_Conditional_Reply, "Conditional_Reply"},
22                 {-1, -1, -1, ILL_APDU_Cancel,
23                  (Odr_fun) ill_Cancel, "Cancel"},
24                 {-1, -1, -1, ILL_APDU_Cancel_Reply,
25                  (Odr_fun) ill_Cancel_Reply, "Cancel_Reply"},
26                 {-1, -1, -1, ILL_APDU_Received,
27                  (Odr_fun) ill_Received, "Received"},
28                 {-1, -1, -1, ILL_APDU_Recall,
29                  (Odr_fun) ill_Recall, "Recall"},
30                 {-1, -1, -1, ILL_APDU_Returned,
31                  (Odr_fun) ill_Returned, "Returned"},
32                 {-1, -1, -1, ILL_APDU_Checked_In,
33                  (Odr_fun) ill_Checked_In, "Checked_In"},
34                 {-1, -1, -1, ILL_APDU_Overdue,
35                  (Odr_fun) ill_Overdue, "Overdue"},
36                 {-1, -1, -1, ILL_APDU_Renew,
37                  (Odr_fun) ill_Renew, "Renew"},
38                 {-1, -1, -1, ILL_APDU_Renew_Answer,
39                  (Odr_fun) ill_Renew_Answer, "Renew_Answer"},
40                 {-1, -1, -1, ILL_APDU_Lost,
41                  (Odr_fun) ill_Lost, "Lost"},
42                 {-1, -1, -1, ILL_APDU_Damaged,
43                  (Odr_fun) ill_Damaged, "Damaged"},
44                 {-1, -1, -1, ILL_APDU_Message,
45                  (Odr_fun) ill_Message, "Message"},
46                 {-1, -1, -1, ILL_APDU_Status_Query,
47                  (Odr_fun) ill_Status_Query, "Status_Query"},
48                 {-1, -1, -1, ILL_APDU_Status_Or_Error_Report,
49                  (Odr_fun) ill_Status_Or_Error_Report, "Status_Or_Error_Report"},
50                 {-1, -1, -1, ILL_APDU_Expired,
51                  (Odr_fun) ill_Expired, "Expired"},
52                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
53         };
54         if (!odr_initmember(o, p, sizeof(**p)))
55                 return odr_missing(o, opt, name);
56         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
57                 return 1;
58         if(o->direction == ODR_DECODE)
59                 *p = 0;
60         return odr_missing(o, opt, name);
61 }
62
63 int ill_Request (ODR o, ILL_Request **p, int opt, const char *name)
64 {
65         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 1, name))
66                 return odr_missing(o, opt, name);
67         if (o->direction == ODR_DECODE)
68                 *p = (ILL_Request *) odr_malloc (o, sizeof(**p));
69         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
70         {
71                 if(o->direction == ODR_DECODE)
72                         *p = 0;
73                 return 0;
74         }
75         return
76                 odr_implicit_tag (o, odr_integer,
77                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
78                 odr_implicit_tag (o, ill_Transaction_Id,
79                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
80                 odr_implicit_tag (o, ill_Service_Date_Time,
81                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
82                 odr_implicit_tag (o, ill_System_Id,
83                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
84                 odr_implicit_tag (o, ill_System_Id,
85                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
86                 odr_implicit_tag (o, ill_Transaction_Type,
87                         &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") &&
88                 odr_implicit_tag (o, ill_Delivery_Address,
89                         &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") &&
90                 ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") &&
91                 odr_implicit_tag (o, ill_Delivery_Address,
92                         &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") &&
93                 odr_implicit_settag (o, ODR_CONTEXT, 9) &&
94                 odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type,
95                   &(*p)->num_iLL_service_type, "iLL_service_type") &&
96                 odr_explicit_tag (o, odr_external,
97                         &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") &&
98                 odr_implicit_tag (o, ill_Requester_Optional_Messages_Type,
99                         &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 0, "requester_optional_messages") &&
100                 odr_implicit_tag (o, ill_Search_Type,
101                         &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") &&
102                 odr_implicit_settag (o, ODR_CONTEXT, 13) &&
103                 (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type,
104                   &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) &&
105                 odr_implicit_tag (o, ill_Place_On_Hold_Type,
106                         &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") &&
107                 odr_implicit_tag (o, ill_Client_Id,
108                         &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") &&
109                 odr_implicit_tag (o, ill_Item_Id,
110                         &(*p)->item_id, ODR_CONTEXT, 16, 0, "item_id") &&
111                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
112                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
113                 odr_implicit_tag (o, ill_Cost_Info_Type,
114                         &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") &&
115                 odr_explicit_tag (o, ill_String,
116                         &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") &&
117                 odr_implicit_tag (o, ill_Third_Party_Info_Type,
118                         &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") &&
119                 odr_implicit_tag (o, odr_bool,
120                         &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") &&
121                 odr_implicit_tag (o, odr_bool,
122                         &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") &&
123                 odr_explicit_tag (o, ill_String,
124                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
125                 odr_explicit_tag (o, ill_String,
126                         &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") &&
127                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
128                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions,
129                   &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) &&
130                 odr_sequence_end (o) &&
131                 odr_constructed_end (o);
132 }
133
134 int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name)
135 {
136         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 2, name))
137                 return odr_missing(o, opt, name);
138         if (o->direction == ODR_DECODE)
139                 *p = (ILL_Forward_Notification *) odr_malloc (o, sizeof(**p));
140         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
141         {
142                 if(o->direction == ODR_DECODE)
143                         *p = 0;
144                 return 0;
145         }
146         return
147                 odr_implicit_tag (o, odr_integer,
148                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
149                 odr_implicit_tag (o, ill_Transaction_Id,
150                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
151                 odr_implicit_tag (o, ill_Service_Date_Time,
152                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
153                 odr_implicit_tag (o, ill_System_Id,
154                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
155                 odr_implicit_tag (o, ill_System_Id,
156                         &(*p)->responder_id, ODR_CONTEXT, 4, 0, "responder_id") &&
157                 odr_implicit_tag (o, ill_System_Address,
158                         &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") &&
159                 odr_implicit_tag (o, ill_System_Id,
160                         &(*p)->intermediary_id, ODR_CONTEXT, 25, 0, "intermediary_id") &&
161                 odr_explicit_tag (o, ill_String,
162                         &(*p)->notification_note, ODR_CONTEXT, 48, 1, "notification_note") &&
163                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
164                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->forward_notification_extensions,
165                   &(*p)->num_forward_notification_extensions, "forward_notification_extensions") || odr_ok(o)) &&
166                 odr_sequence_end (o) &&
167                 odr_constructed_end (o);
168 }
169
170 int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name)
171 {
172         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 3, name))
173                 return odr_missing(o, opt, name);
174         if (o->direction == ODR_DECODE)
175                 *p = (ILL_Shipped *) odr_malloc (o, sizeof(**p));
176         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
177         {
178                 if(o->direction == ODR_DECODE)
179                         *p = 0;
180                 return 0;
181         }
182         return
183                 odr_implicit_tag (o, odr_integer,
184                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
185                 odr_implicit_tag (o, ill_Transaction_Id,
186                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
187                 odr_implicit_tag (o, ill_Service_Date_Time,
188                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
189                 odr_implicit_tag (o, ill_System_Id,
190                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
191                 odr_implicit_tag (o, ill_System_Id,
192                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
193                 odr_implicit_tag (o, ill_System_Address,
194                         &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") &&
195                 odr_implicit_tag (o, ill_System_Id,
196                         &(*p)->intermediary_id, ODR_CONTEXT, 25, 1, "intermediary_id") &&
197                 odr_implicit_tag (o, ill_System_Id,
198                         &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") &&
199                 odr_implicit_tag (o, ill_Client_Id,
200                         &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") &&
201                 odr_implicit_tag (o, ill_Transaction_Type,
202                         &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") &&
203                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
204                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
205                 odr_implicit_tag (o, ill_Shipped_Service_Type,
206                         &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") &&
207                 odr_implicit_tag (o, ill_Responder_Optional_Messages_Type,
208                         &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") &&
209                 odr_implicit_tag (o, ill_Supply_Details,
210                         &(*p)->supply_details, ODR_CONTEXT, 29, 0, "supply_details") &&
211                 odr_implicit_tag (o, ill_Postal_Address,
212                         &(*p)->return_to_address, ODR_CONTEXT, 30, 1, "return_to_address") &&
213                 odr_explicit_tag (o, ill_String,
214                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
215                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
216                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->shipped_extensions,
217                   &(*p)->num_shipped_extensions, "shipped_extensions") || odr_ok(o)) &&
218                 odr_sequence_end (o) &&
219                 odr_constructed_end (o);
220 }
221
222 int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name)
223 {
224         static Odr_arm arm[] = {
225                 {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Answer_conditional_results,
226                 (Odr_fun) ill_Conditional_Results, "conditional_results"},
227                 {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_Answer_retry_results,
228                 (Odr_fun) ill_Retry_Results, "retry_results"},
229                 {ODR_EXPLICIT, ODR_CONTEXT, 3, ILL_Answer_unfilled_results,
230                 (Odr_fun) ill_Unfilled_Results, "unfilled_results"},
231                 {ODR_EXPLICIT, ODR_CONTEXT, 4, ILL_Answer_locations_results,
232                 (Odr_fun) ill_Locations_Results, "locations_results"},
233                 {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Answer_will_supply_results,
234                 (Odr_fun) ill_Will_Supply_Results, "will_supply_results"},
235                 {ODR_EXPLICIT, ODR_CONTEXT, 6, ILL_Answer_hold_placed_results,
236                 (Odr_fun) ill_Hold_Placed_Results, "hold_placed_results"},
237                 {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Answer_estimate_results,
238                 (Odr_fun) ill_Estimate_Results, "estimate_results"},
239                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
240         };
241         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 4, name))
242                 return odr_missing(o, opt, name);
243         if (o->direction == ODR_DECODE)
244                 *p = (ILL_Answer *) odr_malloc (o, sizeof(**p));
245         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
246         {
247                 if(o->direction == ODR_DECODE)
248                         *p = 0;
249                 return 0;
250         }
251         return
252                 odr_implicit_tag (o, odr_integer,
253                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
254                 odr_implicit_tag (o, ill_Transaction_Id,
255                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
256                 odr_implicit_tag (o, ill_Service_Date_Time,
257                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
258                 odr_implicit_tag (o, ill_System_Id,
259                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
260                 odr_implicit_tag (o, ill_System_Id,
261                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
262                 odr_implicit_tag (o, ill_Transaction_Results,
263                         &(*p)->transaction_results, ODR_CONTEXT, 31, 0, "transaction_results") &&
264                 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 32, "results_explanation") &&
265                 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
266                 odr_constructed_end (o)) || odr_ok(o)) &&
267                 odr_explicit_tag (o, odr_external,
268                         &(*p)->responder_specific_results, ODR_CONTEXT, 33, 1, "responder_specific_results") &&
269                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
270                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
271                 odr_implicit_tag (o, ill_Send_To_List_Type,
272                         &(*p)->send_to_list, ODR_CONTEXT, 23, 1, "send_to_list") &&
273                 odr_implicit_tag (o, ill_Already_Tried_List_Type,
274                         &(*p)->already_tried_list, ODR_CONTEXT, 34, 1, "already_tried_list") &&
275                 odr_implicit_tag (o, ill_Responder_Optional_Messages_Type,
276                         &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") &&
277                 odr_explicit_tag (o, ill_String,
278                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
279                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
280                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->ill_answer_extensions,
281                   &(*p)->num_ill_answer_extensions, "ill_answer_extensions") || odr_ok(o)) &&
282                 odr_sequence_end (o) &&
283                 odr_constructed_end (o);
284 }
285
286 int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name)
287 {
288         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 5, name))
289                 return odr_missing(o, opt, name);
290         if (o->direction == ODR_DECODE)
291                 *p = (ILL_Conditional_Reply *) odr_malloc (o, sizeof(**p));
292         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
293         {
294                 if(o->direction == ODR_DECODE)
295                         *p = 0;
296                 return 0;
297         }
298         return
299                 odr_implicit_tag (o, odr_integer,
300                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
301                 odr_implicit_tag (o, ill_Transaction_Id,
302                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
303                 odr_implicit_tag (o, ill_Service_Date_Time,
304                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
305                 odr_implicit_tag (o, ill_System_Id,
306                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
307                 odr_implicit_tag (o, ill_System_Id,
308                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
309                 odr_implicit_tag (o, odr_bool,
310                         &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") &&
311                 odr_explicit_tag (o, ill_String,
312                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
313                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
314                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->conditional_reply_extensions,
315                   &(*p)->num_conditional_reply_extensions, "conditional_reply_extensions") || odr_ok(o)) &&
316                 odr_sequence_end (o) &&
317                 odr_constructed_end (o);
318 }
319
320 int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name)
321 {
322         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 6, name))
323                 return odr_missing(o, opt, name);
324         if (o->direction == ODR_DECODE)
325                 *p = (ILL_Cancel *) odr_malloc (o, sizeof(**p));
326         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
327         {
328                 if(o->direction == ODR_DECODE)
329                         *p = 0;
330                 return 0;
331         }
332         return
333                 odr_implicit_tag (o, odr_integer,
334                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
335                 odr_implicit_tag (o, ill_Transaction_Id,
336                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
337                 odr_implicit_tag (o, ill_Service_Date_Time,
338                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
339                 odr_implicit_tag (o, ill_System_Id,
340                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
341                 odr_implicit_tag (o, ill_System_Id,
342                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
343                 odr_explicit_tag (o, ill_String,
344                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
345                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
346                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_extensions,
347                   &(*p)->num_cancel_extensions, "cancel_extensions") || odr_ok(o)) &&
348                 odr_sequence_end (o) &&
349                 odr_constructed_end (o);
350 }
351
352 int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name)
353 {
354         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 7, name))
355                 return odr_missing(o, opt, name);
356         if (o->direction == ODR_DECODE)
357                 *p = (ILL_Cancel_Reply *) odr_malloc (o, sizeof(**p));
358         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
359         {
360                 if(o->direction == ODR_DECODE)
361                         *p = 0;
362                 return 0;
363         }
364         return
365                 odr_implicit_tag (o, odr_integer,
366                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
367                 odr_implicit_tag (o, ill_Transaction_Id,
368                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
369                 odr_implicit_tag (o, ill_Service_Date_Time,
370                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
371                 odr_implicit_tag (o, ill_System_Id,
372                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
373                 odr_implicit_tag (o, ill_System_Id,
374                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
375                 odr_implicit_tag (o, odr_bool,
376                         &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") &&
377                 odr_explicit_tag (o, ill_String,
378                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
379                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
380                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_reply_extensions,
381                   &(*p)->num_cancel_reply_extensions, "cancel_reply_extensions") || odr_ok(o)) &&
382                 odr_sequence_end (o) &&
383                 odr_constructed_end (o);
384 }
385
386 int ill_Received (ODR o, ILL_Received **p, int opt, const char *name)
387 {
388         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 8, name))
389                 return odr_missing(o, opt, name);
390         if (o->direction == ODR_DECODE)
391                 *p = (ILL_Received *) odr_malloc (o, sizeof(**p));
392         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
393         {
394                 if(o->direction == ODR_DECODE)
395                         *p = 0;
396                 return 0;
397         }
398         return
399                 odr_implicit_tag (o, odr_integer,
400                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
401                 odr_implicit_tag (o, ill_Transaction_Id,
402                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
403                 odr_implicit_tag (o, ill_Service_Date_Time,
404                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
405                 odr_implicit_tag (o, ill_System_Id,
406                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
407                 odr_implicit_tag (o, ill_System_Id,
408                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
409                 odr_implicit_tag (o, ill_System_Id,
410                         &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") &&
411                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
412                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
413                 odr_implicit_tag (o, ill_ISO_Date,
414                         &(*p)->date_received, ODR_CONTEXT, 36, 0, "date_received") &&
415                 odr_implicit_tag (o, ill_Shipped_Service_Type,
416                         &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") &&
417                 odr_explicit_tag (o, ill_String,
418                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
419                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
420                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->received_extensions,
421                   &(*p)->num_received_extensions, "received_extensions") || odr_ok(o)) &&
422                 odr_sequence_end (o) &&
423                 odr_constructed_end (o);
424 }
425
426 int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name)
427 {
428         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 9, name))
429                 return odr_missing(o, opt, name);
430         if (o->direction == ODR_DECODE)
431                 *p = (ILL_Recall *) odr_malloc (o, sizeof(**p));
432         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
433         {
434                 if(o->direction == ODR_DECODE)
435                         *p = 0;
436                 return 0;
437         }
438         return
439                 odr_implicit_tag (o, odr_integer,
440                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
441                 odr_implicit_tag (o, ill_Transaction_Id,
442                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
443                 odr_implicit_tag (o, ill_Service_Date_Time,
444                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
445                 odr_implicit_tag (o, ill_System_Id,
446                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
447                 odr_implicit_tag (o, ill_System_Id,
448                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
449                 odr_explicit_tag (o, ill_String,
450                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
451                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
452                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->recall_extensions,
453                   &(*p)->num_recall_extensions, "recall_extensions") || odr_ok(o)) &&
454                 odr_sequence_end (o) &&
455                 odr_constructed_end (o);
456 }
457
458 int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name)
459 {
460         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 10, name))
461                 return odr_missing(o, opt, name);
462         if (o->direction == ODR_DECODE)
463                 *p = (ILL_Returned *) odr_malloc (o, sizeof(**p));
464         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
465         {
466                 if(o->direction == ODR_DECODE)
467                         *p = 0;
468                 return 0;
469         }
470         return
471                 odr_implicit_tag (o, odr_integer,
472                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
473                 odr_implicit_tag (o, ill_Transaction_Id,
474                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
475                 odr_implicit_tag (o, ill_Service_Date_Time,
476                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
477                 odr_implicit_tag (o, ill_System_Id,
478                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
479                 odr_implicit_tag (o, ill_System_Id,
480                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
481                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
482                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
483                 odr_implicit_tag (o, ill_ISO_Date,
484                         &(*p)->date_returned, ODR_CONTEXT, 37, 0, "date_returned") &&
485                 odr_explicit_tag (o, ill_Transportation_Mode,
486                         &(*p)->returned_via, ODR_CONTEXT, 38, 1, "returned_via") &&
487                 odr_implicit_tag (o, ill_Amount,
488                         &(*p)->insured_for, ODR_CONTEXT, 39, 1, "insured_for") &&
489                 odr_explicit_tag (o, ill_String,
490                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
491                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
492                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->returned_extensions,
493                   &(*p)->num_returned_extensions, "returned_extensions") || odr_ok(o)) &&
494                 odr_sequence_end (o) &&
495                 odr_constructed_end (o);
496 }
497
498 int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name)
499 {
500         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 11, name))
501                 return odr_missing(o, opt, name);
502         if (o->direction == ODR_DECODE)
503                 *p = (ILL_Checked_In *) odr_malloc (o, sizeof(**p));
504         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
505         {
506                 if(o->direction == ODR_DECODE)
507                         *p = 0;
508                 return 0;
509         }
510         return
511                 odr_implicit_tag (o, odr_integer,
512                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
513                 odr_implicit_tag (o, ill_Transaction_Id,
514                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
515                 odr_implicit_tag (o, ill_Service_Date_Time,
516                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
517                 odr_implicit_tag (o, ill_System_Id,
518                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
519                 odr_implicit_tag (o, ill_System_Id,
520                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
521                 odr_implicit_tag (o, ill_ISO_Date,
522                         &(*p)->date_checked_in, ODR_CONTEXT, 40, 0, "date_checked_in") &&
523                 odr_explicit_tag (o, ill_String,
524                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
525                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
526                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->checked_in_extensions,
527                   &(*p)->num_checked_in_extensions, "checked_in_extensions") || odr_ok(o)) &&
528                 odr_sequence_end (o) &&
529                 odr_constructed_end (o);
530 }
531
532 int ill_Overdue_ExtensionS (ODR o, ILL_Overdue_ExtensionS **p, int opt, const char *name)
533 {
534         if (!odr_initmember (o, p, sizeof(**p)))
535                 return odr_missing(o, opt, name);
536         if (odr_sequence_of (o, (Odr_fun) ill_Extension, &(*p)->elements,
537                 &(*p)->num, name))
538                 return 1;
539         if(o->direction == ODR_DECODE)
540                 *p = 0;
541         return odr_missing(o, opt, name);
542 }
543
544 int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name)
545 {
546         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 12, name))
547                 return odr_missing(o, opt, name);
548         if (o->direction == ODR_DECODE)
549                 *p = (ILL_Overdue *) odr_malloc (o, sizeof(**p));
550         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
551         {
552                 if(o->direction == ODR_DECODE)
553                         *p = 0;
554                 return 0;
555         }
556         return
557                 odr_implicit_tag (o, odr_integer,
558                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
559                 odr_implicit_tag (o, ill_Transaction_Id,
560                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
561                 odr_implicit_tag (o, ill_Service_Date_Time,
562                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
563                 odr_implicit_tag (o, ill_System_Id,
564                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
565                 odr_implicit_tag (o, ill_System_Id,
566                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
567                 odr_implicit_tag (o, ill_Date_Due,
568                         &(*p)->date_due, ODR_CONTEXT, 41, 0, "date_due") &&
569                 odr_explicit_tag (o, ill_String,
570                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
571                 odr_explicit_tag (o, ill_Overdue_ExtensionS,
572                         &(*p)->overdue_extensions, ODR_CONTEXT, 49, 1, "overdue_extensions") &&
573                 odr_sequence_end (o) &&
574                 odr_constructed_end (o);
575 }
576
577 int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name)
578 {
579         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 13, name))
580                 return odr_missing(o, opt, name);
581         if (o->direction == ODR_DECODE)
582                 *p = (ILL_Renew *) odr_malloc (o, sizeof(**p));
583         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
584         {
585                 if(o->direction == ODR_DECODE)
586                         *p = 0;
587                 return 0;
588         }
589         return
590                 odr_implicit_tag (o, odr_integer,
591                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
592                 odr_implicit_tag (o, ill_Transaction_Id,
593                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
594                 odr_implicit_tag (o, ill_Service_Date_Time,
595                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
596                 odr_implicit_tag (o, ill_System_Id,
597                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
598                 odr_implicit_tag (o, ill_System_Id,
599                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
600                 odr_implicit_tag (o, ill_ISO_Date,
601                         &(*p)->desired_due_date, ODR_CONTEXT, 42, 1, "desired_due_date") &&
602                 odr_explicit_tag (o, ill_String,
603                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
604                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
605                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_extensions,
606                   &(*p)->num_renew_extensions, "renew_extensions") || odr_ok(o)) &&
607                 odr_sequence_end (o) &&
608                 odr_constructed_end (o);
609 }
610
611 int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name)
612 {
613         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 14, name))
614                 return odr_missing(o, opt, name);
615         if (o->direction == ODR_DECODE)
616                 *p = (ILL_Renew_Answer *) odr_malloc (o, sizeof(**p));
617         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
618         {
619                 if(o->direction == ODR_DECODE)
620                         *p = 0;
621                 return 0;
622         }
623         return
624                 odr_implicit_tag (o, odr_integer,
625                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
626                 odr_implicit_tag (o, ill_Transaction_Id,
627                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
628                 odr_implicit_tag (o, ill_Service_Date_Time,
629                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
630                 odr_implicit_tag (o, ill_System_Id,
631                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
632                 odr_implicit_tag (o, ill_System_Id,
633                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
634                 odr_implicit_tag (o, odr_bool,
635                         &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") &&
636                 odr_implicit_tag (o, ill_Date_Due,
637                         &(*p)->date_due, ODR_CONTEXT, 41, 1, "date_due") &&
638                 odr_explicit_tag (o, ill_String,
639                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
640                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
641                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_answer_extensions,
642                   &(*p)->num_renew_answer_extensions, "renew_answer_extensions") || odr_ok(o)) &&
643                 odr_sequence_end (o) &&
644                 odr_constructed_end (o);
645 }
646
647 int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name)
648 {
649         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 15, name))
650                 return odr_missing(o, opt, name);
651         if (o->direction == ODR_DECODE)
652                 *p = (ILL_Lost *) odr_malloc (o, sizeof(**p));
653         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
654         {
655                 if(o->direction == ODR_DECODE)
656                         *p = 0;
657                 return 0;
658         }
659         return
660                 odr_implicit_tag (o, odr_integer,
661                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
662                 odr_implicit_tag (o, ill_Transaction_Id,
663                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
664                 odr_implicit_tag (o, ill_Service_Date_Time,
665                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
666                 odr_implicit_tag (o, ill_System_Id,
667                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
668                 odr_implicit_tag (o, ill_System_Id,
669                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
670                 odr_explicit_tag (o, ill_String,
671                         &(*p)->note, ODR_CONTEXT, 46, 1, "note") &&
672                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
673                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->lost_extensions,
674                   &(*p)->num_lost_extensions, "lost_extensions") || odr_ok(o)) &&
675                 odr_sequence_end (o) &&
676                 odr_constructed_end (o);
677 }
678
679 int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name)
680 {
681         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 16, name))
682                 return odr_missing(o, opt, name);
683         if (o->direction == ODR_DECODE)
684                 *p = (ILL_Damaged *) odr_malloc (o, sizeof(**p));
685         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
686         {
687                 if(o->direction == ODR_DECODE)
688                         *p = 0;
689                 return 0;
690         }
691         return
692                 odr_implicit_tag (o, odr_integer,
693                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
694                 odr_implicit_tag (o, ill_Transaction_Id,
695                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
696                 odr_implicit_tag (o, ill_Service_Date_Time,
697                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
698                 odr_implicit_tag (o, ill_System_Id,
699                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
700                 odr_implicit_tag (o, ill_System_Id,
701                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
702                 odr_implicit_tag (o, ill_Damaged_Details,
703                         &(*p)->damaged_details, ODR_CONTEXT, 5, 1, "damaged_details") &&
704                 odr_explicit_tag (o, ill_String,
705                         &(*p)->note, ODR_CONTEXT, 46, 1, "note") &&
706                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
707                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->damaged_extensions,
708                   &(*p)->num_damaged_extensions, "damaged_extensions") || odr_ok(o)) &&
709                 odr_sequence_end (o) &&
710                 odr_constructed_end (o);
711 }
712
713 int ill_Message (ODR o, ILL_Message **p, int opt, const char *name)
714 {
715         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 17, name))
716                 return odr_missing(o, opt, name);
717         if (o->direction == ODR_DECODE)
718                 *p = (ILL_Message *) odr_malloc (o, sizeof(**p));
719         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
720         {
721                 if(o->direction == ODR_DECODE)
722                         *p = 0;
723                 return 0;
724         }
725         return
726                 odr_implicit_tag (o, odr_integer,
727                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
728                 odr_implicit_tag (o, ill_Transaction_Id,
729                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
730                 odr_implicit_tag (o, ill_Service_Date_Time,
731                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
732                 odr_implicit_tag (o, ill_System_Id,
733                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
734                 odr_implicit_tag (o, ill_System_Id,
735                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
736                 odr_explicit_tag (o, ill_String,
737                         &(*p)->note, ODR_CONTEXT, 46, 0, "note") &&
738                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
739                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->message_extensions,
740                   &(*p)->num_message_extensions, "message_extensions") || odr_ok(o)) &&
741                 odr_sequence_end (o) &&
742                 odr_constructed_end (o);
743 }
744
745 int ill_Status_Query (ODR o, ILL_Status_Query **p, int opt, const char *name)
746 {
747         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 18, name))
748                 return odr_missing(o, opt, name);
749         if (o->direction == ODR_DECODE)
750                 *p = (ILL_Status_Query *) odr_malloc (o, sizeof(**p));
751         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
752         {
753                 if(o->direction == ODR_DECODE)
754                         *p = 0;
755                 return 0;
756         }
757         return
758                 odr_implicit_tag (o, odr_integer,
759                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
760                 odr_implicit_tag (o, ill_Transaction_Id,
761                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
762                 odr_implicit_tag (o, ill_Service_Date_Time,
763                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
764                 odr_implicit_tag (o, ill_System_Id,
765                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
766                 odr_implicit_tag (o, ill_System_Id,
767                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
768                 odr_explicit_tag (o, ill_String,
769                         &(*p)->note, ODR_CONTEXT, 46, 1, "note") &&
770                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
771                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->status_query_extensions,
772                   &(*p)->num_status_query_extensions, "status_query_extensions") || odr_ok(o)) &&
773                 odr_sequence_end (o) &&
774                 odr_constructed_end (o);
775 }
776
777 int ill_Status_Or_Error_Report (ODR o, ILL_Status_Or_Error_Report **p, int opt, const char *name)
778 {
779         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 19, name))
780                 return odr_missing(o, opt, name);
781         if (o->direction == ODR_DECODE)
782                 *p = (ILL_Status_Or_Error_Report *) odr_malloc (o, sizeof(**p));
783         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
784         {
785                 if(o->direction == ODR_DECODE)
786                         *p = 0;
787                 return 0;
788         }
789         return
790                 odr_implicit_tag (o, odr_integer,
791                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
792                 odr_implicit_tag (o, ill_Transaction_Id,
793                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
794                 odr_implicit_tag (o, ill_Service_Date_Time,
795                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
796                 odr_implicit_tag (o, ill_System_Id,
797                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
798                 odr_implicit_tag (o, ill_System_Id,
799                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
800                 odr_implicit_tag (o, ill_Reason_No_Report,
801                         &(*p)->reason_no_report, ODR_CONTEXT, 43, 1, "reason_no_report") &&
802                 odr_implicit_tag (o, ill_Status_Report,
803                         &(*p)->status_report, ODR_CONTEXT, 44, 1, "status_report") &&
804                 odr_implicit_tag (o, ill_Error_Report,
805                         &(*p)->error_report, ODR_CONTEXT, 45, 1, "error_report") &&
806                 odr_explicit_tag (o, ill_String,
807                         &(*p)->note, ODR_CONTEXT, 46, 1, "note") &&
808                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
809                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->status_or_error_report_extensions,
810                   &(*p)->num_status_or_error_report_extensions, "status_or_error_report_extensions") || odr_ok(o)) &&
811                 odr_sequence_end (o) &&
812                 odr_constructed_end (o);
813 }
814
815 int ill_Expired (ODR o, ILL_Expired **p, int opt, const char *name)
816 {
817         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 20, name))
818                 return odr_missing(o, opt, name);
819         if (o->direction == ODR_DECODE)
820                 *p = (ILL_Expired *) odr_malloc (o, sizeof(**p));
821         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
822         {
823                 if(o->direction == ODR_DECODE)
824                         *p = 0;
825                 return 0;
826         }
827         return
828                 odr_implicit_tag (o, odr_integer,
829                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
830                 odr_implicit_tag (o, ill_Transaction_Id,
831                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
832                 odr_implicit_tag (o, ill_Service_Date_Time,
833                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
834                 odr_implicit_tag (o, ill_System_Id,
835                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
836                 odr_implicit_tag (o, ill_System_Id,
837                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
838                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
839                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->expired_extensions,
840                   &(*p)->num_expired_extensions, "expired_extensions") || odr_ok(o)) &&
841                 odr_sequence_end (o) &&
842                 odr_constructed_end (o);
843 }
844
845 int ill_Account_Number (ODR o, ILL_Account_Number **p, int opt, const char *name)
846 {
847         return ill_String (o, p, opt, name);
848 }
849
850 int ill_Already_Forwarded (ODR o, ILL_Already_Forwarded **p, int opt, const char *name)
851 {
852         if (!odr_sequence_begin (o, p, sizeof(**p), name))
853                 return odr_missing(o, opt, name) && odr_ok (o);
854         return
855                 odr_implicit_tag (o, ill_System_Id,
856                         &(*p)->responder_id, ODR_CONTEXT, 0, 0, "responder_id") &&
857                 odr_implicit_tag (o, ill_System_Address,
858                         &(*p)->responder_address, ODR_CONTEXT, 1, 1, "responder_address") &&
859                 odr_sequence_end (o);
860 }
861
862 int ill_Already_Tried_List_Type (ODR o, ILL_Already_Tried_List_Type **p, int opt, const char *name)
863 {
864         if (!odr_initmember (o, p, sizeof(**p)))
865                 return odr_missing(o, opt, name);
866         if (odr_sequence_of (o, (Odr_fun) ill_System_Id, &(*p)->elements,
867                 &(*p)->num, name))
868                 return 1;
869         if(o->direction == ODR_DECODE)
870                 *p = 0;
871         return odr_missing(o, opt, name);
872 }
873
874 int ill_Amount (ODR o, ILL_Amount **p, int opt, const char *name)
875 {
876         if (!odr_sequence_begin (o, p, sizeof(**p), name))
877                 return odr_missing(o, opt, name) && odr_ok (o);
878         return
879                 odr_implicit_tag (o, odr_visiblestring,
880                         &(*p)->currency_code, ODR_CONTEXT, 0, 1, "currency_code") &&
881                 odr_implicit_tag (o, ill_AmountString,
882                         &(*p)->monetary_value, ODR_CONTEXT, 1, 0, "monetary_value") &&
883                 odr_sequence_end (o);
884 }
885
886 int ill_AmountString (ODR o, ILL_AmountString **p, int opt, const char *name)
887 {
888         return odr_visiblestring (o, p, opt, name);
889 }
890
891 int ill_Client_Id (ODR o, ILL_Client_Id **p, int opt, const char *name)
892 {
893         if (!odr_sequence_begin (o, p, sizeof(**p), name))
894                 return odr_missing(o, opt, name) && odr_ok (o);
895         return
896                 odr_explicit_tag (o, ill_String,
897                         &(*p)->client_name, ODR_CONTEXT, 0, 1, "client_name") &&
898                 odr_explicit_tag (o, ill_String,
899                         &(*p)->client_status, ODR_CONTEXT, 1, 1, "client_status") &&
900                 odr_explicit_tag (o, ill_String,
901                         &(*p)->client_identifier, ODR_CONTEXT, 2, 1, "client_identifier") &&
902                 odr_sequence_end (o);
903 }
904
905 int ill_Conditional_Results (ODR o, ILL_Conditional_Results **p, int opt, const char *name)
906 {
907         if (!odr_sequence_begin (o, p, sizeof(**p), name))
908                 return odr_missing(o, opt, name) && odr_ok (o);
909         return
910                 odr_implicit_tag (o, odr_enum,
911                         &(*p)->conditions, ODR_CONTEXT, 0, 0, "conditions") &&
912                 odr_implicit_tag (o, ill_ISO_Date,
913                         &(*p)->date_for_reply, ODR_CONTEXT, 1, 1, "date_for_reply") &&
914                 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
915                 (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
916                   &(*p)->num_locations, "locations") || odr_ok(o)) &&
917                 ill_Delivery_Service(o, &(*p)->proposed_delivery_service, 1, "proposed_delivery_service") &&
918                 odr_sequence_end (o);
919 }
920
921 int ill_Cost_Info_Type (ODR o, ILL_Cost_Info_Type **p, int opt, const char *name)
922 {
923         if (!odr_sequence_begin (o, p, sizeof(**p), name))
924                 return odr_missing(o, opt, name) && odr_ok (o);
925         return
926                 odr_explicit_tag (o, ill_Account_Number,
927                         &(*p)->account_number, ODR_CONTEXT, 0, 1, "account_number") &&
928                 odr_implicit_tag (o, ill_Amount,
929                         &(*p)->maximum_cost, ODR_CONTEXT, 1, 1, "maximum_cost") &&
930                 odr_implicit_tag (o, odr_bool,
931                         &(*p)->reciprocal_agreement, ODR_CONTEXT, 2, 0, "reciprocal_agreement") &&
932                 odr_implicit_tag (o, odr_bool,
933                         &(*p)->will_pay_fee, ODR_CONTEXT, 3, 0, "will_pay_fee") &&
934                 odr_implicit_tag (o, odr_bool,
935                         &(*p)->payment_provided, ODR_CONTEXT, 4, 0, "payment_provided") &&
936                 odr_sequence_end (o);
937 }
938
939 int ill_Current_State (ODR o, ILL_Current_State **p, int opt, const char *name)
940 {
941         return odr_enum (o, p, opt, name);
942 }
943
944 int ill_Damaged_DetailsSpecific_units (ODR o, ILL_Damaged_DetailsSpecific_units **p, int opt, const char *name)
945 {
946         if (!odr_initmember (o, p, sizeof(**p)))
947                 return odr_missing(o, opt, name);
948         if (odr_sequence_of (o, (Odr_fun) odr_integer, &(*p)->elements,
949                 &(*p)->num, name))
950                 return 1;
951         if(o->direction == ODR_DECODE)
952                 *p = 0;
953         return odr_missing(o, opt, name);
954 }
955
956 int ill_Damaged_Details (ODR o, ILL_Damaged_Details **p, int opt, const char *name)
957 {
958         static Odr_arm arm[] = {
959                 {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Damaged_Details_complete_document,
960                 (Odr_fun) odr_null, "complete_document"},
961                 {ODR_IMPLICIT, ODR_CONTEXT, 2, ILL_Damaged_Details_specific_units,
962                 (Odr_fun) ill_Damaged_DetailsSpecific_units, "specific_units"},
963                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
964         };
965         if (!odr_sequence_begin (o, p, sizeof(**p), name))
966                 return odr_missing(o, opt, name) && odr_ok (o);
967         return
968                 odr_implicit_tag (o, odr_oid,
969                         &(*p)->document_type_id, ODR_CONTEXT, 0, 1, "document_type_id") &&
970                 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
971                 odr_sequence_end (o);
972 }
973
974 int ill_Date_Due (ODR o, ILL_Date_Due **p, int opt, const char *name)
975 {
976         if (!odr_sequence_begin (o, p, sizeof(**p), name))
977                 return odr_missing(o, opt, name) && odr_ok (o);
978         return
979                 odr_implicit_tag (o, ill_ISO_Date,
980                         &(*p)->date_due_field, ODR_CONTEXT, 0, 0, "date_due_field") &&
981                 odr_implicit_tag (o, odr_bool,
982                         &(*p)->renewable, ODR_CONTEXT, 1, 0, "renewable") &&
983                 odr_sequence_end (o);
984 }
985
986 int ill_Delivery_Address (ODR o, ILL_Delivery_Address **p, int opt, const char *name)
987 {
988         if (!odr_sequence_begin (o, p, sizeof(**p), name))
989                 return odr_missing(o, opt, name) && odr_ok (o);
990         return
991                 odr_implicit_tag (o, ill_Postal_Address,
992                         &(*p)->postal_address, ODR_CONTEXT, 0, 1, "postal_address") &&
993                 odr_implicit_tag (o, ill_System_Address,
994                         &(*p)->electronic_address, ODR_CONTEXT, 1, 1, "electronic_address") &&
995                 odr_sequence_end (o);
996 }
997
998 int ill_Delivery_ServiceElectronic_delivery (ODR o, ILL_Delivery_ServiceElectronic_delivery **p, int opt, const char *name)
999 {
1000         if (!odr_initmember (o, p, sizeof(**p)))
1001                 return odr_missing(o, opt, name);
1002         if (odr_sequence_of (o, (Odr_fun) ill_Electronic_Delivery_Service, &(*p)->elements,
1003                 &(*p)->num, name))
1004                 return 1;
1005         if(o->direction == ODR_DECODE)
1006                 *p = 0;
1007         return odr_missing(o, opt, name);
1008 }
1009
1010 int ill_Delivery_Service (ODR o, ILL_Delivery_Service **p, int opt, const char *name)
1011 {
1012         static Odr_arm arm[] = {
1013                 {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Delivery_Service_physical_delivery,
1014                 (Odr_fun) ill_Transportation_Mode, "physical_delivery"},
1015                 {ODR_IMPLICIT, ODR_CONTEXT, 50, ILL_Delivery_Service_electronic_delivery,
1016                 (Odr_fun) ill_Delivery_ServiceElectronic_delivery, "electronic_delivery"},
1017                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1018         };
1019         if (!odr_initmember(o, p, sizeof(**p)))
1020                 return odr_missing(o, opt, name);
1021         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1022                 return 1;
1023         if(o->direction == ODR_DECODE)
1024                 *p = 0;
1025         return odr_missing(o, opt, name);
1026 }
1027
1028 int ill_Electronic_Delivery_Service_0 (ODR o, ILL_Electronic_Delivery_Service_0 **p, int opt, const char *name)
1029 {
1030         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1031                 return odr_missing(o, opt, name) && odr_ok (o);
1032         return
1033                 odr_implicit_tag (o, odr_oid,
1034                         &(*p)->e_delivery_mode, ODR_CONTEXT, 0, 0, "e_delivery_mode") &&
1035                 odr_explicit_tag (o, odr_any,
1036                         &(*p)->e_delivery_parameters, ODR_CONTEXT, 1, 0, "e_delivery_parameters") &&
1037                 odr_sequence_end (o);
1038 }
1039
1040 int ill_Electronic_Delivery_Service_1 (ODR o, ILL_Electronic_Delivery_Service_1 **p, int opt, const char *name)
1041 {
1042         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1043                 return odr_missing(o, opt, name) && odr_ok (o);
1044         return
1045                 odr_implicit_tag (o, odr_oid,
1046                         &(*p)->document_type_id, ODR_CONTEXT, 2, 0, "document_type_id") &&
1047                 odr_explicit_tag (o, odr_any,
1048                         &(*p)->document_type_parameters, ODR_CONTEXT, 3, 0, "document_type_parameters") &&
1049                 odr_sequence_end (o);
1050 }
1051
1052 int ill_Electronic_Delivery_Service (ODR o, ILL_Electronic_Delivery_Service **p, int opt, const char *name)
1053 {
1054         static Odr_arm arm[] = {
1055                 {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_Electronic_Delivery_Service_e_delivery_address,
1056                 (Odr_fun) ill_System_Address, "e_delivery_address"},
1057                 {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Electronic_Delivery_Service_e_delivery_id,
1058                 (Odr_fun) ill_System_Id, "e_delivery_id"},
1059                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1060         };
1061         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1062                 return odr_missing(o, opt, name) && odr_ok (o);
1063         return
1064                 odr_implicit_tag (o, ill_Electronic_Delivery_Service_0,
1065                         &(*p)->e_delivery_service, ODR_CONTEXT, 0, 1, "e_delivery_service") &&
1066                 odr_implicit_tag (o, ill_Electronic_Delivery_Service_1,
1067                         &(*p)->document_type, ODR_CONTEXT, 1, 1, "document_type") &&
1068                 odr_explicit_tag (o, ill_String,
1069                         &(*p)->e_delivery_description, ODR_CONTEXT, 4, 1, "e_delivery_description") &&
1070                 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "e_delivery_details") &&
1071                 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
1072                 odr_constructed_end (o) &&
1073                 odr_explicit_tag (o, ill_String,
1074                         &(*p)->name_or_code, ODR_CONTEXT, 6, 1, "name_or_code") &&
1075                 odr_implicit_tag (o, ill_ISO_Time,
1076                         &(*p)->delivery_time, ODR_CONTEXT, 7, 1, "delivery_time") &&
1077                 odr_sequence_end (o);
1078 }
1079
1080 int ill_Error_Report (ODR o, ILL_Error_Report **p, int opt, const char *name)
1081 {
1082         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1083                 return odr_missing(o, opt, name) && odr_ok (o);
1084         return
1085                 odr_explicit_tag (o, ill_String,
1086                         &(*p)->correlation_information, ODR_CONTEXT, 0, 0, "correlation_information") &&
1087                 odr_implicit_tag (o, ill_Report_Source,
1088                         &(*p)->report_source, ODR_CONTEXT, 1, 0, "report_source") &&
1089                 odr_explicit_tag (o, ill_User_Error_Report,
1090                         &(*p)->user_error_report, ODR_CONTEXT, 2, 1, "user_error_report") &&
1091                 odr_explicit_tag (o, ill_Provider_Error_Report,
1092                         &(*p)->provider_error_report, ODR_CONTEXT, 3, 1, "provider_error_report") &&
1093                 odr_sequence_end (o);
1094 }
1095
1096 int ill_Estimate_Results (ODR o, ILL_Estimate_Results **p, int opt, const char *name)
1097 {
1098         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1099                 return odr_missing(o, opt, name) && odr_ok (o);
1100         return
1101                 odr_explicit_tag (o, ill_String,
1102                         &(*p)->cost_estimate, ODR_CONTEXT, 0, 0, "cost_estimate") &&
1103                 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1104                 (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
1105                   &(*p)->num_locations, "locations") || odr_ok(o)) &&
1106                 odr_sequence_end (o);
1107 }
1108
1109 int ill_Extension (ODR o, ILL_Extension **p, int opt, const char *name)
1110 {
1111         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1112                 return odr_missing(o, opt, name) && odr_ok (o);
1113         return
1114                 odr_implicit_tag (o, odr_integer,
1115                         &(*p)->identifier, ODR_CONTEXT, 0, 0, "identifier") &&
1116                 odr_implicit_tag (o, odr_bool,
1117                         &(*p)->critical, ODR_CONTEXT, 1, 0, "critical") &&
1118                 odr_explicit_tag (o, odr_any,
1119                         &(*p)->item, ODR_CONTEXT, 2, 0, "item") &&
1120                 odr_sequence_end (o);
1121 }
1122
1123 int ill_General_Problem (ODR o, ILL_General_Problem **p, int opt, const char *name)
1124 {
1125         return odr_enum (o, p, opt, name);
1126 }
1127
1128 int ill_History_Report (ODR o, ILL_History_Report **p, int opt, const char *name)
1129 {
1130         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1131                 return odr_missing(o, opt, name) && odr_ok (o);
1132         return
1133                 odr_implicit_tag (o, ill_ISO_Date,
1134                         &(*p)->date_requested, ODR_CONTEXT, 0, 1, "date_requested") &&
1135                 odr_explicit_tag (o, ill_String,
1136                         &(*p)->author, ODR_CONTEXT, 1, 1, "author") &&
1137                 odr_explicit_tag (o, ill_String,
1138                         &(*p)->title, ODR_CONTEXT, 2, 1, "title") &&
1139                 odr_explicit_tag (o, ill_String,
1140                         &(*p)->author_of_article, ODR_CONTEXT, 3, 1, "author_of_article") &&
1141                 odr_explicit_tag (o, ill_String,
1142                         &(*p)->title_of_article, ODR_CONTEXT, 4, 1, "title_of_article") &&
1143                 odr_implicit_tag (o, ill_ISO_Date,
1144                         &(*p)->date_of_last_transition, ODR_CONTEXT, 5, 0, "date_of_last_transition") &&
1145                 odr_implicit_tag (o, odr_enum,
1146                         &(*p)->most_recent_service, ODR_CONTEXT, 6, 0, "most_recent_service") &&
1147                 odr_implicit_tag (o, ill_ISO_Date,
1148                         &(*p)->date_of_most_recent_service, ODR_CONTEXT, 7, 0, "date_of_most_recent_service") &&
1149                 odr_implicit_tag (o, ill_System_Id,
1150                         &(*p)->initiator_of_most_recent_service, ODR_CONTEXT, 8, 0, "initiator_of_most_recent_service") &&
1151                 odr_implicit_tag (o, ill_Shipped_Service_Type,
1152                         &(*p)->shipped_service_type, ODR_CONTEXT, 9, 1, "shipped_service_type") &&
1153                 odr_implicit_tag (o, ill_Transaction_Results,
1154                         &(*p)->transaction_results, ODR_CONTEXT, 10, 1, "transaction_results") &&
1155                 odr_explicit_tag (o, ill_String,
1156                         &(*p)->most_recent_service_note, ODR_CONTEXT, 11, 1, "most_recent_service_note") &&
1157                 odr_sequence_end (o);
1158 }
1159
1160 int ill_Hold_Placed_Results (ODR o, ILL_Hold_Placed_Results **p, int opt, const char *name)
1161 {
1162         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1163                 return odr_missing(o, opt, name) && odr_ok (o);
1164         return
1165                 odr_implicit_tag (o, ill_ISO_Date,
1166                         &(*p)->estimated_date_available, ODR_CONTEXT, 0, 0, "estimated_date_available") &&
1167                 odr_implicit_tag (o, ill_Medium_Type,
1168                         &(*p)->hold_placed_medium_type, ODR_CONTEXT, 1, 1, "hold_placed_medium_type") &&
1169                 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
1170                 (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
1171                   &(*p)->num_locations, "locations") || odr_ok(o)) &&
1172                 odr_sequence_end (o);
1173 }
1174
1175 int ill_APDU_Type (ODR o, ILL_APDU_Type **p, int opt, const char *name)
1176 {
1177         return odr_enum (o, p, opt, name);
1178 }
1179
1180 int ill_Service_Type (ODR o, ILL_Service_Type **p, int opt, const char *name)
1181 {
1182         return odr_enum (o, p, opt, name);
1183 }
1184
1185 int ill_String (ODR o, ILL_String **p, int opt, const char *name)
1186 {
1187         static Odr_arm arm[] = {
1188                 {-1, -1, -1, ILL_String_GeneralString,
1189                  (Odr_fun) odr_generalstring, "GeneralString"},
1190                 {-1, -1, -1, ILL_String_EDIFACTString,
1191                  (Odr_fun) ill_EDIFACTString, "EDIFACTString"},
1192                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1193         };
1194         if (!odr_initmember(o, p, sizeof(**p)))
1195                 return odr_missing(o, opt, name);
1196         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1197                 return 1;
1198         if(o->direction == ODR_DECODE)
1199                 *p = 0;
1200         return odr_missing(o, opt, name);
1201 }
1202
1203 int ill_Intermediary_Problem (ODR o, ILL_Intermediary_Problem **p, int opt, const char *name)
1204 {
1205         return odr_enum (o, p, opt, name);
1206 }
1207
1208 int ill_ISO_Date (ODR o, ILL_ISO_Date **p, int opt, const char *name)
1209 {
1210         return odr_visiblestring (o, p, opt, name);
1211 }
1212
1213 int ill_ISO_Time (ODR o, ILL_ISO_Time **p, int opt, const char *name)
1214 {
1215         return odr_visiblestring (o, p, opt, name);
1216 }
1217
1218 int ill_Item_Id (ODR o, ILL_Item_Id **p, int opt, const char *name)
1219 {
1220         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1221                 return odr_missing(o, opt, name) && odr_ok (o);
1222         return
1223                 odr_implicit_tag (o, odr_enum,
1224                         &(*p)->item_type, ODR_CONTEXT, 0, 1, "item_type") &&
1225                 odr_implicit_tag (o, ill_Medium_Type,
1226                         &(*p)->held_medium_type, ODR_CONTEXT, 1, 1, "held_medium_type") &&
1227                 odr_explicit_tag (o, ill_String,
1228                         &(*p)->call_number, ODR_CONTEXT, 2, 1, "call_number") &&
1229                 odr_explicit_tag (o, ill_String,
1230                         &(*p)->author, ODR_CONTEXT, 3, 1, "author") &&
1231                 odr_explicit_tag (o, ill_String,
1232                         &(*p)->title, ODR_CONTEXT, 4, 1, "title") &&
1233                 odr_explicit_tag (o, ill_String,
1234                         &(*p)->sub_title, ODR_CONTEXT, 5, 1, "sub_title") &&
1235                 odr_explicit_tag (o, ill_String,
1236                         &(*p)->sponsoring_body, ODR_CONTEXT, 6, 1, "sponsoring_body") &&
1237                 odr_explicit_tag (o, ill_String,
1238                         &(*p)->place_of_publication, ODR_CONTEXT, 7, 1, "place_of_publication") &&
1239                 odr_explicit_tag (o, ill_String,
1240                         &(*p)->publisher, ODR_CONTEXT, 8, 1, "publisher") &&
1241                 odr_explicit_tag (o, ill_String,
1242                         &(*p)->series_title_number, ODR_CONTEXT, 9, 1, "series_title_number") &&
1243                 odr_explicit_tag (o, ill_String,
1244                         &(*p)->volume_issue, ODR_CONTEXT, 10, 1, "volume_issue") &&
1245                 odr_explicit_tag (o, ill_String,
1246                         &(*p)->edition, ODR_CONTEXT, 11, 1, "edition") &&
1247                 odr_explicit_tag (o, ill_String,
1248                         &(*p)->publication_date, ODR_CONTEXT, 12, 1, "publication_date") &&
1249                 odr_explicit_tag (o, ill_String,
1250                         &(*p)->publication_date_of_component, ODR_CONTEXT, 13, 1, "publication_date_of_component") &&
1251                 odr_explicit_tag (o, ill_String,
1252                         &(*p)->author_of_article, ODR_CONTEXT, 14, 1, "author_of_article") &&
1253                 odr_explicit_tag (o, ill_String,
1254                         &(*p)->title_of_article, ODR_CONTEXT, 15, 1, "title_of_article") &&
1255                 odr_explicit_tag (o, ill_String,
1256                         &(*p)->pagination, ODR_CONTEXT, 16, 1, "pagination") &&
1257                 odr_explicit_tag (o, odr_external,
1258                         &(*p)->national_bibliography_no, ODR_CONTEXT, 17, 1, "national_bibliography_no") &&
1259                 odr_explicit_tag (o, ill_String,
1260                         &(*p)->iSBN, ODR_CONTEXT, 18, 1, "iSBN") &&
1261                 odr_explicit_tag (o, ill_String,
1262                         &(*p)->iSSN, ODR_CONTEXT, 19, 1, "iSSN") &&
1263                 odr_explicit_tag (o, odr_external,
1264                         &(*p)->system_no, ODR_CONTEXT, 20, 1, "system_no") &&
1265                 odr_explicit_tag (o, ill_String,
1266                         &(*p)->additional_no_letters, ODR_CONTEXT, 21, 1, "additional_no_letters") &&
1267                 odr_explicit_tag (o, ill_String,
1268                         &(*p)->verification_reference_source, ODR_CONTEXT, 22, 1, "verification_reference_source") &&
1269                 odr_sequence_end (o);
1270 }
1271
1272 int ill_Location_Info (ODR o, ILL_Location_Info **p, int opt, const char *name)
1273 {
1274         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1275                 return odr_missing(o, opt, name) && odr_ok (o);
1276         return
1277                 odr_implicit_tag (o, ill_System_Id,
1278                         &(*p)->location_id, ODR_CONTEXT, 0, 0, "location_id") &&
1279                 odr_implicit_tag (o, ill_System_Address,
1280                         &(*p)->location_address, ODR_CONTEXT, 1, 1, "location_address") &&
1281                 odr_explicit_tag (o, ill_String,
1282                         &(*p)->location_note, ODR_CONTEXT, 2, 1, "location_note") &&
1283                 odr_sequence_end (o);
1284 }
1285
1286 int ill_Locations_Results (ODR o, ILL_Locations_Results **p, int opt, const char *name)
1287 {
1288         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1289                 return odr_missing(o, opt, name) && odr_ok (o);
1290         return
1291                 odr_implicit_tag (o, ill_Reason_Locs_Provided,
1292                         &(*p)->reason_locs_provided, ODR_CONTEXT, 0, 1, "reason_locs_provided") &&
1293                 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1294                 odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
1295                   &(*p)->num_locations, "locations") &&
1296                 odr_sequence_end (o);
1297 }
1298
1299 int ill_Medium_Type (ODR o, ILL_Medium_Type **p, int opt, const char *name)
1300 {
1301         return odr_enum (o, p, opt, name);
1302 }
1303
1304 int ill_Name_Of_Person_Or_Institution (ODR o, ILL_Name_Of_Person_Or_Institution **p, int opt, const char *name)
1305 {
1306         static Odr_arm arm[] = {
1307                 {ODR_EXPLICIT, ODR_CONTEXT, 0, ILL_Name_Of_Person_Or_Institution_name_of_person,
1308                 (Odr_fun) ill_String, "name_of_person"},
1309                 {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Name_Of_Person_Or_Institution_name_of_institution,
1310                 (Odr_fun) ill_String, "name_of_institution"},
1311                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1312         };
1313         if (!odr_initmember(o, p, sizeof(**p)))
1314                 return odr_missing(o, opt, name);
1315         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1316                 return 1;
1317         if(o->direction == ODR_DECODE)
1318                 *p = 0;
1319         return odr_missing(o, opt, name);
1320 }
1321
1322 int ill_Person_Or_Institution_Symbol (ODR o, ILL_Person_Or_Institution_Symbol **p, int opt, const char *name)
1323 {
1324         static Odr_arm arm[] = {
1325                 {ODR_EXPLICIT, ODR_CONTEXT, 0, ILL_Person_Or_Institution_Symbol_person_symbol,
1326                 (Odr_fun) ill_String, "person_symbol"},
1327                 {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Person_Or_Institution_Symbol_institution_symbol,
1328                 (Odr_fun) ill_String, "institution_symbol"},
1329                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1330         };
1331         if (!odr_initmember(o, p, sizeof(**p)))
1332                 return odr_missing(o, opt, name);
1333         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1334                 return 1;
1335         if(o->direction == ODR_DECODE)
1336                 *p = 0;
1337         return odr_missing(o, opt, name);
1338 }
1339
1340 int ill_Place_On_Hold_Type (ODR o, ILL_Place_On_Hold_Type **p, int opt, const char *name)
1341 {
1342         return odr_enum (o, p, opt, name);
1343 }
1344
1345 int ill_Postal_Address (ODR o, ILL_Postal_Address **p, int opt, const char *name)
1346 {
1347         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1348                 return odr_missing(o, opt, name) && odr_ok (o);
1349         return
1350                 odr_explicit_tag (o, ill_Name_Of_Person_Or_Institution,
1351                         &(*p)->name_of_person_or_institution, ODR_CONTEXT, 0, 1, "name_of_person_or_institution") &&
1352                 odr_explicit_tag (o, ill_String,
1353                         &(*p)->extended_postal_delivery_address, ODR_CONTEXT, 1, 1, "extended_postal_delivery_address") &&
1354                 odr_explicit_tag (o, ill_String,
1355                         &(*p)->street_and_number, ODR_CONTEXT, 2, 1, "street_and_number") &&
1356                 odr_explicit_tag (o, ill_String,
1357                         &(*p)->post_office_box, ODR_CONTEXT, 3, 1, "post_office_box") &&
1358                 odr_explicit_tag (o, ill_String,
1359                         &(*p)->city, ODR_CONTEXT, 4, 1, "city") &&
1360                 odr_explicit_tag (o, ill_String,
1361                         &(*p)->region, ODR_CONTEXT, 5, 1, "region") &&
1362                 odr_explicit_tag (o, ill_String,
1363                         &(*p)->country, ODR_CONTEXT, 6, 1, "country") &&
1364                 odr_explicit_tag (o, ill_String,
1365                         &(*p)->postal_code, ODR_CONTEXT, 7, 1, "postal_code") &&
1366                 odr_sequence_end (o);
1367 }
1368
1369 int ill_Provider_Error_Report (ODR o, ILL_Provider_Error_Report **p, int opt, const char *name)
1370 {
1371         static Odr_arm arm[] = {
1372                 {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_Provider_Error_Report_general_problem,
1373                 (Odr_fun) ill_General_Problem, "general_problem"},
1374                 {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Provider_Error_Report_transaction_id_problem,
1375                 (Odr_fun) ill_Transaction_Id_Problem, "transaction_id_problem"},
1376                 {ODR_IMPLICIT, ODR_CONTEXT, 2, ILL_Provider_Error_Report_state_transition_prohibited,
1377                 (Odr_fun) ill_State_Transition_Prohibited, "state_transition_prohibited"},
1378                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1379         };
1380         if (!odr_initmember(o, p, sizeof(**p)))
1381                 return odr_missing(o, opt, name);
1382         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1383                 return 1;
1384         if(o->direction == ODR_DECODE)
1385                 *p = 0;
1386         return odr_missing(o, opt, name);
1387 }
1388
1389 int ill_Reason_Locs_Provided (ODR o, ILL_Reason_Locs_Provided **p, int opt, const char *name)
1390 {
1391         return odr_enum (o, p, opt, name);
1392 }
1393
1394 int ill_Reason_No_Report (ODR o, ILL_Reason_No_Report **p, int opt, const char *name)
1395 {
1396         return odr_enum (o, p, opt, name);
1397 }
1398
1399 int ill_Reason_Unfilled (ODR o, ILL_Reason_Unfilled **p, int opt, const char *name)
1400 {
1401         return odr_enum (o, p, opt, name);
1402 }
1403
1404 int ill_Report_Source (ODR o, ILL_Report_Source **p, int opt, const char *name)
1405 {
1406         return odr_enum (o, p, opt, name);
1407 }
1408
1409 int ill_Requester_Optional_Messages_Type (ODR o, ILL_Requester_Optional_Messages_Type **p, int opt, const char *name)
1410 {
1411         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1412                 return odr_missing(o, opt, name) && odr_ok (o);
1413         return
1414                 odr_implicit_tag (o, odr_bool,
1415                         &(*p)->can_send_RECEIVED, ODR_CONTEXT, 0, 0, "can_send_RECEIVED") &&
1416                 odr_implicit_tag (o, odr_bool,
1417                         &(*p)->can_send_RETURNED, ODR_CONTEXT, 1, 0, "can_send_RETURNED") &&
1418                 odr_implicit_tag (o, odr_enum,
1419                         &(*p)->requester_SHIPPED, ODR_CONTEXT, 2, 0, "requester_SHIPPED") &&
1420                 odr_implicit_tag (o, odr_enum,
1421                         &(*p)->requester_CHECKED_IN, ODR_CONTEXT, 3, 0, "requester_CHECKED_IN") &&
1422                 odr_sequence_end (o);
1423 }
1424
1425 int ill_Responder_Optional_Messages_Type (ODR o, ILL_Responder_Optional_Messages_Type **p, int opt, const char *name)
1426 {
1427         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1428                 return odr_missing(o, opt, name) && odr_ok (o);
1429         return
1430                 odr_implicit_tag (o, odr_bool,
1431                         &(*p)->can_send_SHIPPED, ODR_CONTEXT, 0, 0, "can_send_SHIPPED") &&
1432                 odr_implicit_tag (o, odr_bool,
1433                         &(*p)->can_send_CHECKED_IN, ODR_CONTEXT, 1, 0, "can_send_CHECKED_IN") &&
1434                 odr_implicit_tag (o, odr_enum,
1435                         &(*p)->responder_RECEIVED, ODR_CONTEXT, 2, 0, "responder_RECEIVED") &&
1436                 odr_implicit_tag (o, odr_enum,
1437                         &(*p)->responder_RETURNED, ODR_CONTEXT, 3, 0, "responder_RETURNED") &&
1438                 odr_sequence_end (o);
1439 }
1440
1441 int ill_Retry_Results (ODR o, ILL_Retry_Results **p, int opt, const char *name)
1442 {
1443         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1444                 return odr_missing(o, opt, name) && odr_ok (o);
1445         return
1446                 odr_implicit_tag (o, odr_enum,
1447                         &(*p)->reason_not_available, ODR_CONTEXT, 0, 1, "reason_not_available") &&
1448                 odr_implicit_tag (o, ill_ISO_Date,
1449                         &(*p)->retry_date, ODR_CONTEXT, 1, 1, "retry_date") &&
1450                 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
1451                 (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
1452                   &(*p)->num_locations, "locations") || odr_ok(o)) &&
1453                 odr_sequence_end (o);
1454 }
1455
1456 int ill_Search_Type (ODR o, ILL_Search_Type **p, int opt, const char *name)
1457 {
1458         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1459                 return odr_missing(o, opt, name) && odr_ok (o);
1460         return
1461                 odr_explicit_tag (o, ill_String,
1462                         &(*p)->level_of_service, ODR_CONTEXT, 0, 1, "level_of_service") &&
1463                 odr_implicit_tag (o, ill_ISO_Date,
1464                         &(*p)->need_before_date, ODR_CONTEXT, 1, 1, "need_before_date") &&
1465                 odr_implicit_tag (o, odr_enum,
1466                         &(*p)->expiry_flag, ODR_CONTEXT, 2, 0, "expiry_flag") &&
1467                 odr_implicit_tag (o, ill_ISO_Date,
1468                         &(*p)->expiry_date, ODR_CONTEXT, 3, 1, "expiry_date") &&
1469                 odr_sequence_end (o);
1470 }
1471
1472 int ill_Security_Problem (ODR o, ILL_Security_Problem **p, int opt, const char *name)
1473 {
1474         return ill_String (o, p, opt, name);
1475 }
1476
1477 int ill_Send_To_List_Type_s (ODR o, ILL_Send_To_List_Type_s **p, int opt, const char *name)
1478 {
1479         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1480                 return odr_missing(o, opt, name) && odr_ok (o);
1481         return
1482                 odr_implicit_tag (o, ill_System_Id,
1483                         &(*p)->system_id, ODR_CONTEXT, 0, 0, "system_id") &&
1484                 odr_explicit_tag (o, ill_Account_Number,
1485                         &(*p)->account_number, ODR_CONTEXT, 1, 1, "account_number") &&
1486                 odr_implicit_tag (o, ill_System_Address,
1487                         &(*p)->system_address, ODR_CONTEXT, 2, 1, "system_address") &&
1488                 odr_sequence_end (o);
1489 }
1490
1491 int ill_Send_To_List_Type (ODR o, ILL_Send_To_List_Type **p, int opt, const char *name)
1492 {
1493         if (!odr_initmember (o, p, sizeof(**p)))
1494                 return odr_missing(o, opt, name);
1495         if (odr_sequence_of (o, (Odr_fun) ill_Send_To_List_Type_s, &(*p)->elements,
1496                 &(*p)->num, name))
1497                 return 1;
1498         if(o->direction == ODR_DECODE)
1499                 *p = 0;
1500         return odr_missing(o, opt, name);
1501 }
1502
1503 int ill_Service_Date_this (ODR o, ILL_Service_Date_this **p, int opt, const char *name)
1504 {
1505         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1506                 return odr_missing(o, opt, name) && odr_ok (o);
1507         return
1508                 odr_implicit_tag (o, ill_ISO_Date,
1509                         &(*p)->date, ODR_CONTEXT, 0, 0, "date") &&
1510                 odr_implicit_tag (o, ill_ISO_Time,
1511                         &(*p)->time, ODR_CONTEXT, 1, 1, "time") &&
1512                 odr_sequence_end (o);
1513 }
1514
1515 int ill_Service_Date_original (ODR o, ILL_Service_Date_original **p, int opt, const char *name)
1516 {
1517         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1518                 return odr_missing(o, opt, name) && odr_ok (o);
1519         return
1520                 odr_implicit_tag (o, ill_ISO_Date,
1521                         &(*p)->date, ODR_CONTEXT, 0, 0, "date") &&
1522                 odr_implicit_tag (o, ill_ISO_Time,
1523                         &(*p)->time, ODR_CONTEXT, 1, 1, "time") &&
1524                 odr_sequence_end (o);
1525 }
1526
1527 int ill_Service_Date_Time (ODR o, ILL_Service_Date_Time **p, int opt, const char *name)
1528 {
1529         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1530                 return odr_missing(o, opt, name) && odr_ok (o);
1531         return
1532                 odr_implicit_tag (o, ill_Service_Date_this,
1533                         &(*p)->date_time_of_this_service, ODR_CONTEXT, 0, 0, "date_time_of_this_service") &&
1534                 odr_implicit_tag (o, ill_Service_Date_original,
1535                         &(*p)->date_time_of_original_service, ODR_CONTEXT, 1, 1, "date_time_of_original_service") &&
1536                 odr_sequence_end (o);
1537 }
1538
1539 int ill_Shipped_Service_Type (ODR o, ILL_Shipped_Service_Type **p, int opt, const char *name)
1540 {
1541         return ill_Service_Type (o, p, opt, name);
1542 }
1543
1544 int ill_State_Transition_Prohibited (ODR o, ILL_State_Transition_Prohibited **p, int opt, const char *name)
1545 {
1546         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1547                 return odr_missing(o, opt, name) && odr_ok (o);
1548         return
1549                 odr_implicit_tag (o, ill_APDU_Type,
1550                         &(*p)->aPDU_type, ODR_CONTEXT, 0, 0, "aPDU_type") &&
1551                 odr_implicit_tag (o, ill_Current_State,
1552                         &(*p)->current_state, ODR_CONTEXT, 1, 0, "current_state") &&
1553                 odr_sequence_end (o);
1554 }
1555
1556 int ill_Status_Report (ODR o, ILL_Status_Report **p, int opt, const char *name)
1557 {
1558         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1559                 return odr_missing(o, opt, name) && odr_ok (o);
1560         return
1561                 odr_implicit_tag (o, ill_History_Report,
1562                         &(*p)->user_status_report, ODR_CONTEXT, 0, 0, "user_status_report") &&
1563                 odr_implicit_tag (o, ill_Current_State,
1564                         &(*p)->provider_status_report, ODR_CONTEXT, 1, 0, "provider_status_report") &&
1565                 odr_sequence_end (o);
1566 }
1567
1568 int ill_Supplemental_Item_Description (ODR o, ILL_Supplemental_Item_Description **p, int opt, const char *name)
1569 {
1570         if (!odr_initmember (o, p, sizeof(**p)))
1571                 return odr_missing(o, opt, name);
1572         if (odr_sequence_of (o, (Odr_fun) odr_external, &(*p)->elements,
1573                 &(*p)->num, name))
1574                 return 1;
1575         if(o->direction == ODR_DECODE)
1576                 *p = 0;
1577         return odr_missing(o, opt, name);
1578 }
1579
1580 int ill_Supply_Details (ODR o, ILL_Supply_Details **p, int opt, const char *name)
1581 {
1582         static Odr_arm arm[] = {
1583                 {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Supply_Details_physical_delivery,
1584                 (Odr_fun) ill_Transportation_Mode, "physical_delivery"},
1585                 {ODR_IMPLICIT, ODR_CONTEXT, 50, ILL_Supply_Details_electronic_delivery,
1586                 (Odr_fun) ill_Electronic_Delivery_Service, "electronic_delivery"},
1587                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1588         };
1589         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1590                 return odr_missing(o, opt, name) && odr_ok (o);
1591         return
1592                 odr_implicit_tag (o, ill_ISO_Date,
1593                         &(*p)->date_shipped, ODR_CONTEXT, 0, 1, "date_shipped") &&
1594                 odr_implicit_tag (o, ill_Date_Due,
1595                         &(*p)->date_due, ODR_CONTEXT, 1, 1, "date_due") &&
1596                 odr_implicit_tag (o, odr_integer,
1597                         &(*p)->chargeable_units, ODR_CONTEXT, 2, 1, "chargeable_units") &&
1598                 odr_implicit_tag (o, ill_Amount,
1599                         &(*p)->cost, ODR_CONTEXT, 3, 1, "cost") &&
1600                 odr_implicit_tag (o, odr_enum,
1601                         &(*p)->shipped_conditions, ODR_CONTEXT, 4, 1, "shipped_conditions") &&
1602                 (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) &&
1603                 odr_implicit_tag (o, ill_Amount,
1604                         &(*p)->insured_for, ODR_CONTEXT, 6, 1, "insured_for") &&
1605                 odr_implicit_tag (o, ill_Amount,
1606                         &(*p)->return_insurance_require, ODR_CONTEXT, 7, 1, "return_insurance_require") &&
1607                 odr_implicit_settag (o, ODR_CONTEXT, 8) &&
1608                 (odr_sequence_of(o, (Odr_fun) ill_Units_Per_Medium_Type, &(*p)->no_of_units_per_medium,
1609                   &(*p)->num_no_of_units_per_medium, "no_of_units_per_medium") || odr_ok(o)) &&
1610                 odr_sequence_end (o);
1611 }
1612
1613 int ill_Supply_Medium_Info_Type (ODR o, ILL_Supply_Medium_Info_Type **p, int opt, const char *name)
1614 {
1615         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1616                 return odr_missing(o, opt, name) && odr_ok (o);
1617         return
1618                 odr_implicit_tag (o, ill_Supply_Medium_Type,
1619                         &(*p)->supply_medium_type, ODR_CONTEXT, 0, 0, "supply_medium_type") &&
1620                 odr_explicit_tag (o, ill_String,
1621                         &(*p)->medium_characteristics, ODR_CONTEXT, 1, 1, "medium_characteristics") &&
1622                 odr_sequence_end (o);
1623 }
1624
1625 int ill_Supply_Medium_Type (ODR o, ILL_Supply_Medium_Type **p, int opt, const char *name)
1626 {
1627         return odr_enum (o, p, opt, name);
1628 }
1629
1630 int ill_System_Address (ODR o, ILL_System_Address **p, int opt, const char *name)
1631 {
1632         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1633                 return odr_missing(o, opt, name) && odr_ok (o);
1634         return
1635                 odr_explicit_tag (o, ill_String,
1636                         &(*p)->telecom_service_identifier, ODR_CONTEXT, 0, 1, "telecom_service_identifier") &&
1637                 odr_explicit_tag (o, ill_String,
1638                         &(*p)->telecom_service_address, ODR_CONTEXT, 1, 1, "telecom_service_address") &&
1639                 odr_sequence_end (o);
1640 }
1641
1642 int ill_System_Id (ODR o, ILL_System_Id **p, int opt, const char *name)
1643 {
1644         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1645                 return odr_missing(o, opt, name) && odr_ok (o);
1646         return
1647                 odr_explicit_tag (o, ill_Person_Or_Institution_Symbol,
1648                         &(*p)->person_or_institution_symbol, ODR_CONTEXT, 0, 1, "person_or_institution_symbol") &&
1649                 odr_explicit_tag (o, ill_Name_Of_Person_Or_Institution,
1650                         &(*p)->name_of_person_or_institution, ODR_CONTEXT, 1, 1, "name_of_person_or_institution") &&
1651                 odr_sequence_end (o);
1652 }
1653
1654 int ill_Third_Party_Info_Type (ODR o, ILL_Third_Party_Info_Type **p, int opt, const char *name)
1655 {
1656         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1657                 return odr_missing(o, opt, name) && odr_ok (o);
1658         return
1659                 odr_implicit_tag (o, odr_bool,
1660                         &(*p)->permission_to_forward, ODR_CONTEXT, 0, 0, "permission_to_forward") &&
1661                 odr_implicit_tag (o, odr_bool,
1662                         &(*p)->permission_to_chain, ODR_CONTEXT, 1, 0, "permission_to_chain") &&
1663                 odr_implicit_tag (o, odr_bool,
1664                         &(*p)->permission_to_partition, ODR_CONTEXT, 2, 0, "permission_to_partition") &&
1665                 odr_implicit_tag (o, odr_bool,
1666                         &(*p)->permission_to_change_send_to_list, ODR_CONTEXT, 3, 0, "permission_to_change_send_to_list") &&
1667                 odr_implicit_tag (o, ill_System_Address,
1668                         &(*p)->initial_requester_address, ODR_CONTEXT, 4, 1, "initial_requester_address") &&
1669                 odr_implicit_tag (o, odr_enum,
1670                         &(*p)->preference, ODR_CONTEXT, 5, 0, "preference") &&
1671                 odr_implicit_tag (o, ill_Send_To_List_Type,
1672                         &(*p)->send_to_list, ODR_CONTEXT, 6, 1, "send_to_list") &&
1673                 odr_implicit_tag (o, ill_Already_Tried_List_Type,
1674                         &(*p)->already_tried_list, ODR_CONTEXT, 7, 1, "already_tried_list") &&
1675                 odr_sequence_end (o);
1676 }
1677
1678 int ill_Transaction_Id (ODR o, ILL_Transaction_Id **p, int opt, const char *name)
1679 {
1680         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1681                 return odr_missing(o, opt, name) && odr_ok (o);
1682         return
1683                 odr_implicit_tag (o, ill_System_Id,
1684                         &(*p)->initial_requester_id, ODR_CONTEXT, 0, 1, "initial_requester_id") &&
1685                 odr_explicit_tag (o, ill_String,
1686                         &(*p)->transaction_group_qualifier, ODR_CONTEXT, 1, 0, "transaction_group_qualifier") &&
1687                 odr_explicit_tag (o, ill_String,
1688                         &(*p)->transaction_qualifier, ODR_CONTEXT, 2, 0, "transaction_qualifier") &&
1689                 odr_explicit_tag (o, ill_String,
1690                         &(*p)->sub_transaction_qualifier, ODR_CONTEXT, 3, 1, "sub_transaction_qualifier") &&
1691                 odr_sequence_end (o);
1692 }
1693
1694 int ill_Transaction_Id_Problem (ODR o, ILL_Transaction_Id_Problem **p, int opt, const char *name)
1695 {
1696         return odr_enum (o, p, opt, name);
1697 }
1698
1699 int ill_Transaction_Results (ODR o, ILL_Transaction_Results **p, int opt, const char *name)
1700 {
1701         return odr_enum (o, p, opt, name);
1702 }
1703
1704 int ill_Transaction_Type (ODR o, ILL_Transaction_Type **p, int opt, const char *name)
1705 {
1706         return odr_enum (o, p, opt, name);
1707 }
1708
1709 int ill_Transportation_Mode (ODR o, ILL_Transportation_Mode **p, int opt, const char *name)
1710 {
1711         return ill_String (o, p, opt, name);
1712 }
1713
1714 int ill_Unable_To_Perform (ODR o, ILL_Unable_To_Perform **p, int opt, const char *name)
1715 {
1716         return odr_enum (o, p, opt, name);
1717 }
1718
1719 int ill_Unfilled_Results (ODR o, ILL_Unfilled_Results **p, int opt, const char *name)
1720 {
1721         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1722                 return odr_missing(o, opt, name) && odr_ok (o);
1723         return
1724                 odr_implicit_tag (o, ill_Reason_Unfilled,
1725                         &(*p)->reason_unfilled, ODR_CONTEXT, 0, 0, "reason_unfilled") &&
1726                 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
1727                 (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
1728                   &(*p)->num_locations, "locations") || odr_ok(o)) &&
1729                 odr_sequence_end (o);
1730 }
1731
1732 int ill_Units_Per_Medium_Type (ODR o, ILL_Units_Per_Medium_Type **p, int opt, const char *name)
1733 {
1734         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1735                 return odr_missing(o, opt, name) && odr_ok (o);
1736         return
1737                 odr_explicit_tag (o, ill_Supply_Medium_Type,
1738                         &(*p)->medium, ODR_CONTEXT, 0, 0, "medium") &&
1739                 odr_explicit_tag (o, odr_integer,
1740                         &(*p)->no_of_units, ODR_CONTEXT, 1, 0, "no_of_units") &&
1741                 odr_sequence_end (o);
1742 }
1743
1744 int ill_User_Error_Report (ODR o, ILL_User_Error_Report **p, int opt, const char *name)
1745 {
1746         static Odr_arm arm[] = {
1747                 {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_User_Error_Report_already_forwarded,
1748                 (Odr_fun) ill_Already_Forwarded, "already_forwarded"},
1749                 {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_User_Error_Report_intermediary_problem,
1750                 (Odr_fun) ill_Intermediary_Problem, "intermediary_problem"},
1751                 {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_User_Error_Report_security_problem,
1752                 (Odr_fun) ill_Security_Problem, "security_problem"},
1753                 {ODR_IMPLICIT, ODR_CONTEXT, 3, ILL_User_Error_Report_unable_to_perform,
1754                 (Odr_fun) ill_Unable_To_Perform, "unable_to_perform"},
1755                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
1756         };
1757         if (!odr_initmember(o, p, sizeof(**p)))
1758                 return odr_missing(o, opt, name);
1759         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1760                 return 1;
1761         if(o->direction == ODR_DECODE)
1762                 *p = 0;
1763         return odr_missing(o, opt, name);
1764 }
1765
1766 int ill_Will_Supply_Results (ODR o, ILL_Will_Supply_Results **p, int opt, const char *name)
1767 {
1768         if (!odr_sequence_begin (o, p, sizeof(**p), name))
1769                 return odr_missing(o, opt, name) && odr_ok (o);
1770         return
1771                 odr_explicit_tag (o, odr_enum,
1772                         &(*p)->reason_will_supply, ODR_CONTEXT, 0, 0, "reason_will_supply") &&
1773                 odr_explicit_tag (o, ill_ISO_Date,
1774                         &(*p)->supply_date, ODR_CONTEXT, 1, 1, "supply_date") &&
1775                 odr_explicit_tag (o, ill_Postal_Address,
1776                         &(*p)->return_to_address, ODR_CONTEXT, 2, 1, "return_to_address") &&
1777                 odr_implicit_settag (o, ODR_CONTEXT, 3) &&
1778                 (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations,
1779                   &(*p)->num_locations, "locations") || odr_ok(o)) &&
1780                 odr_explicit_tag (o, ill_Electronic_Delivery_Service,
1781                         &(*p)->electronic_delivery_service, ODR_CONTEXT, 4, 1, "electronic_delivery_service") &&
1782                 odr_sequence_end (o);
1783 }
1784
1785 int ill_EDIFACTString (ODR o, ILL_EDIFACTString **p, int opt, const char *name)
1786 {
1787         return odr_visiblestring (o, p, opt, name);
1788 }
1789
1790