• Main Page
  • Data Structures
  • Files

ill-core.c

Go to the documentation of this file.
00001 
00007 #include <yaz/ill-core.h>
00008 
00009 int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name)
00010 {
00011         static Odr_arm arm[] = {
00012                 {-1, -1, -1, ILL_APDU_ILL_Request,
00013                  (Odr_fun) ill_Request, "illRequest"},
00014                 {-1, -1, -1, ILL_APDU_Forward_Notification,
00015                  (Odr_fun) ill_Forward_Notification, "Forward_Notification"},
00016                 {-1, -1, -1, ILL_APDU_Shipped,
00017                  (Odr_fun) ill_Shipped, "Shipped"},
00018                 {-1, -1, -1, ILL_APDU_ILL_Answer,
00019                  (Odr_fun) ill_Answer, "illAnswer"},
00020                 {-1, -1, -1, ILL_APDU_Conditional_Reply,
00021                  (Odr_fun) ill_Conditional_Reply, "Conditional_Reply"},
00022                 {-1, -1, -1, ILL_APDU_Cancel,
00023                  (Odr_fun) ill_Cancel, "Cancel"},
00024                 {-1, -1, -1, ILL_APDU_Cancel_Reply,
00025                  (Odr_fun) ill_Cancel_Reply, "Cancel_Reply"},
00026                 {-1, -1, -1, ILL_APDU_Received,
00027                  (Odr_fun) ill_Received, "Received"},
00028                 {-1, -1, -1, ILL_APDU_Recall,
00029                  (Odr_fun) ill_Recall, "Recall"},
00030                 {-1, -1, -1, ILL_APDU_Returned,
00031                  (Odr_fun) ill_Returned, "Returned"},
00032                 {-1, -1, -1, ILL_APDU_Checked_In,
00033                  (Odr_fun) ill_Checked_In, "Checked_In"},
00034                 {-1, -1, -1, ILL_APDU_Overdue,
00035                  (Odr_fun) ill_Overdue, "Overdue"},
00036                 {-1, -1, -1, ILL_APDU_Renew,
00037                  (Odr_fun) ill_Renew, "Renew"},
00038                 {-1, -1, -1, ILL_APDU_Renew_Answer,
00039                  (Odr_fun) ill_Renew_Answer, "Renew_Answer"},
00040                 {-1, -1, -1, ILL_APDU_Lost,
00041                  (Odr_fun) ill_Lost, "Lost"},
00042                 {-1, -1, -1, ILL_APDU_Damaged,
00043                  (Odr_fun) ill_Damaged, "Damaged"},
00044                 {-1, -1, -1, ILL_APDU_Message,
00045                  (Odr_fun) ill_Message, "Message"},
00046                 {-1, -1, -1, ILL_APDU_Status_Query,
00047                  (Odr_fun) ill_Status_Query, "Status_Query"},
00048                 {-1, -1, -1, ILL_APDU_Status_Or_Error_Report,
00049                  (Odr_fun) ill_Status_Or_Error_Report, "Status_Or_Error_Report"},
00050                 {-1, -1, -1, ILL_APDU_Expired,
00051                  (Odr_fun) ill_Expired, "Expired"},
00052                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00053         };
00054         if (!odr_initmember(o, p, sizeof(**p)))
00055                 return odr_missing(o, opt, name);
00056         if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
00057                 return 1;
00058         if(o->direction == ODR_DECODE)
00059                 *p = 0;
00060         return odr_missing(o, opt, name);
00061 }
00062 
00063 int ill_Request (ODR o, ILL_Request **p, int opt, const char *name)
00064 {
00065         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 1, name))
00066                 return odr_missing(o, opt, name);
00067         if (o->direction == ODR_DECODE)
00068                 *p = (ILL_Request *) odr_malloc (o, sizeof(**p));
00069         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00070         {
00071                 if(o->direction == ODR_DECODE)
00072                         *p = 0;
00073                 return 0;
00074         }
00075         return
00076                 odr_implicit_tag (o, odr_integer,
00077                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00078                 odr_implicit_tag (o, ill_Transaction_Id,
00079                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00080                 odr_implicit_tag (o, ill_Service_Date_Time,
00081                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00082                 odr_implicit_tag (o, ill_System_Id,
00083                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00084                 odr_implicit_tag (o, ill_System_Id,
00085                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00086                 odr_implicit_tag (o, ill_Transaction_Type,
00087                         &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") &&
00088                 odr_implicit_tag (o, ill_Delivery_Address,
00089                         &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") &&
00090                 ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") &&
00091                 odr_implicit_tag (o, ill_Delivery_Address,
00092                         &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") &&
00093                 odr_implicit_settag (o, ODR_CONTEXT, 9) &&
00094                 odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type,
00095                   &(*p)->num_iLL_service_type, "iLL_service_type") &&
00096                 odr_explicit_tag (o, odr_external,
00097                         &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") &&
00098                 odr_implicit_tag (o, ill_Requester_Optional_Messages_Type,
00099                         &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 0, "requester_optional_messages") &&
00100                 odr_implicit_tag (o, ill_Search_Type,
00101                         &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") &&
00102                 odr_implicit_settag (o, ODR_CONTEXT, 13) &&
00103                 (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type,
00104                   &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) &&
00105                 odr_implicit_tag (o, ill_Place_On_Hold_Type,
00106                         &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") &&
00107                 odr_implicit_tag (o, ill_Client_Id,
00108                         &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") &&
00109                 odr_implicit_tag (o, ill_Item_Id,
00110                         &(*p)->item_id, ODR_CONTEXT, 16, 0, "item_id") &&
00111                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
00112                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
00113                 odr_implicit_tag (o, ill_Cost_Info_Type,
00114                         &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") &&
00115                 odr_explicit_tag (o, ill_String,
00116                         &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") &&
00117                 odr_implicit_tag (o, ill_Third_Party_Info_Type,
00118                         &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") &&
00119                 odr_implicit_tag (o, odr_bool,
00120                         &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") &&
00121                 odr_implicit_tag (o, odr_bool,
00122                         &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") &&
00123                 odr_explicit_tag (o, ill_String,
00124                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
00125                 odr_explicit_tag (o, ill_String,
00126                         &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") &&
00127                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00128                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions,
00129                   &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) &&
00130                 odr_sequence_end (o) &&
00131                 odr_constructed_end (o);
00132 }
00133 
00134 int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name)
00135 {
00136         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 2, name))
00137                 return odr_missing(o, opt, name);
00138         if (o->direction == ODR_DECODE)
00139                 *p = (ILL_Forward_Notification *) odr_malloc (o, sizeof(**p));
00140         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00141         {
00142                 if(o->direction == ODR_DECODE)
00143                         *p = 0;
00144                 return 0;
00145         }
00146         return
00147                 odr_implicit_tag (o, odr_integer,
00148                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00149                 odr_implicit_tag (o, ill_Transaction_Id,
00150                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00151                 odr_implicit_tag (o, ill_Service_Date_Time,
00152                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00153                 odr_implicit_tag (o, ill_System_Id,
00154                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00155                 odr_implicit_tag (o, ill_System_Id,
00156                         &(*p)->responder_id, ODR_CONTEXT, 4, 0, "responder_id") &&
00157                 odr_implicit_tag (o, ill_System_Address,
00158                         &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") &&
00159                 odr_implicit_tag (o, ill_System_Id,
00160                         &(*p)->intermediary_id, ODR_CONTEXT, 25, 0, "intermediary_id") &&
00161                 odr_explicit_tag (o, ill_String,
00162                         &(*p)->notification_note, ODR_CONTEXT, 48, 1, "notification_note") &&
00163                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00164                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->forward_notification_extensions,
00165                   &(*p)->num_forward_notification_extensions, "forward_notification_extensions") || odr_ok(o)) &&
00166                 odr_sequence_end (o) &&
00167                 odr_constructed_end (o);
00168 }
00169 
00170 int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name)
00171 {
00172         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 3, name))
00173                 return odr_missing(o, opt, name);
00174         if (o->direction == ODR_DECODE)
00175                 *p = (ILL_Shipped *) odr_malloc (o, sizeof(**p));
00176         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00177         {
00178                 if(o->direction == ODR_DECODE)
00179                         *p = 0;
00180                 return 0;
00181         }
00182         return
00183                 odr_implicit_tag (o, odr_integer,
00184                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00185                 odr_implicit_tag (o, ill_Transaction_Id,
00186                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00187                 odr_implicit_tag (o, ill_Service_Date_Time,
00188                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00189                 odr_implicit_tag (o, ill_System_Id,
00190                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00191                 odr_implicit_tag (o, ill_System_Id,
00192                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00193                 odr_implicit_tag (o, ill_System_Address,
00194                         &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") &&
00195                 odr_implicit_tag (o, ill_System_Id,
00196                         &(*p)->intermediary_id, ODR_CONTEXT, 25, 1, "intermediary_id") &&
00197                 odr_implicit_tag (o, ill_System_Id,
00198                         &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") &&
00199                 odr_implicit_tag (o, ill_Client_Id,
00200                         &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") &&
00201                 odr_implicit_tag (o, ill_Transaction_Type,
00202                         &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") &&
00203                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
00204                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
00205                 odr_implicit_tag (o, ill_Shipped_Service_Type,
00206                         &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") &&
00207                 odr_implicit_tag (o, ill_Responder_Optional_Messages_Type,
00208                         &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") &&
00209                 odr_implicit_tag (o, ill_Supply_Details,
00210                         &(*p)->supply_details, ODR_CONTEXT, 29, 0, "supply_details") &&
00211                 odr_implicit_tag (o, ill_Postal_Address,
00212                         &(*p)->return_to_address, ODR_CONTEXT, 30, 1, "return_to_address") &&
00213                 odr_explicit_tag (o, ill_String,
00214                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00215                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00216                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->shipped_extensions,
00217                   &(*p)->num_shipped_extensions, "shipped_extensions") || odr_ok(o)) &&
00218                 odr_sequence_end (o) &&
00219                 odr_constructed_end (o);
00220 }
00221 
00222 int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name)
00223 {
00224         static Odr_arm arm[] = {
00225                 {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Answer_conditional_results,
00226                 (Odr_fun) ill_Conditional_Results, "conditional_results"},
00227                 {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_Answer_retry_results,
00228                 (Odr_fun) ill_Retry_Results, "retry_results"},
00229                 {ODR_EXPLICIT, ODR_CONTEXT, 3, ILL_Answer_unfilled_results,
00230                 (Odr_fun) ill_Unfilled_Results, "unfilled_results"},
00231                 {ODR_EXPLICIT, ODR_CONTEXT, 4, ILL_Answer_locations_results,
00232                 (Odr_fun) ill_Locations_Results, "locations_results"},
00233                 {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Answer_will_supply_results,
00234                 (Odr_fun) ill_Will_Supply_Results, "will_supply_results"},
00235                 {ODR_EXPLICIT, ODR_CONTEXT, 6, ILL_Answer_hold_placed_results,
00236                 (Odr_fun) ill_Hold_Placed_Results, "hold_placed_results"},
00237                 {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Answer_estimate_results,
00238                 (Odr_fun) ill_Estimate_Results, "estimate_results"},
00239                 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00240         };
00241         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 4, name))
00242                 return odr_missing(o, opt, name);
00243         if (o->direction == ODR_DECODE)
00244                 *p = (ILL_Answer *) odr_malloc (o, sizeof(**p));
00245         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00246         {
00247                 if(o->direction == ODR_DECODE)
00248                         *p = 0;
00249                 return 0;
00250         }
00251         return
00252                 odr_implicit_tag (o, odr_integer,
00253                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00254                 odr_implicit_tag (o, ill_Transaction_Id,
00255                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00256                 odr_implicit_tag (o, ill_Service_Date_Time,
00257                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00258                 odr_implicit_tag (o, ill_System_Id,
00259                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00260                 odr_implicit_tag (o, ill_System_Id,
00261                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00262                 odr_implicit_tag (o, ill_Transaction_Results,
00263                         &(*p)->transaction_results, ODR_CONTEXT, 31, 0, "transaction_results") &&
00264                 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 32, "results_explanation") &&
00265                 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
00266                 odr_constructed_end (o)) || odr_ok(o)) &&
00267                 odr_explicit_tag (o, odr_external,
00268                         &(*p)->responder_specific_results, ODR_CONTEXT, 33, 1, "responder_specific_results") &&
00269                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
00270                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
00271                 odr_implicit_tag (o, ill_Send_To_List_Type,
00272                         &(*p)->send_to_list, ODR_CONTEXT, 23, 1, "send_to_list") &&
00273                 odr_implicit_tag (o, ill_Already_Tried_List_Type,
00274                         &(*p)->already_tried_list, ODR_CONTEXT, 34, 1, "already_tried_list") &&
00275                 odr_implicit_tag (o, ill_Responder_Optional_Messages_Type,
00276                         &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") &&
00277                 odr_explicit_tag (o, ill_String,
00278                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00279                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00280                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->ill_answer_extensions,
00281                   &(*p)->num_ill_answer_extensions, "ill_answer_extensions") || odr_ok(o)) &&
00282                 odr_sequence_end (o) &&
00283                 odr_constructed_end (o);
00284 }
00285 
00286 int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name)
00287 {
00288         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 5, name))
00289                 return odr_missing(o, opt, name);
00290         if (o->direction == ODR_DECODE)
00291                 *p = (ILL_Conditional_Reply *) odr_malloc (o, sizeof(**p));
00292         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00293         {
00294                 if(o->direction == ODR_DECODE)
00295                         *p = 0;
00296                 return 0;
00297         }
00298         return
00299                 odr_implicit_tag (o, odr_integer,
00300                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00301                 odr_implicit_tag (o, ill_Transaction_Id,
00302                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00303                 odr_implicit_tag (o, ill_Service_Date_Time,
00304                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00305                 odr_implicit_tag (o, ill_System_Id,
00306                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00307                 odr_implicit_tag (o, ill_System_Id,
00308                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00309                 odr_implicit_tag (o, odr_bool,
00310                         &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") &&
00311                 odr_explicit_tag (o, ill_String,
00312                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
00313                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00314                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->conditional_reply_extensions,
00315                   &(*p)->num_conditional_reply_extensions, "conditional_reply_extensions") || odr_ok(o)) &&
00316                 odr_sequence_end (o) &&
00317                 odr_constructed_end (o);
00318 }
00319 
00320 int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name)
00321 {
00322         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 6, name))
00323                 return odr_missing(o, opt, name);
00324         if (o->direction == ODR_DECODE)
00325                 *p = (ILL_Cancel *) odr_malloc (o, sizeof(**p));
00326         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00327         {
00328                 if(o->direction == ODR_DECODE)
00329                         *p = 0;
00330                 return 0;
00331         }
00332         return
00333                 odr_implicit_tag (o, odr_integer,
00334                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00335                 odr_implicit_tag (o, ill_Transaction_Id,
00336                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00337                 odr_implicit_tag (o, ill_Service_Date_Time,
00338                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00339                 odr_implicit_tag (o, ill_System_Id,
00340                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00341                 odr_implicit_tag (o, ill_System_Id,
00342                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00343                 odr_explicit_tag (o, ill_String,
00344                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
00345                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00346                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_extensions,
00347                   &(*p)->num_cancel_extensions, "cancel_extensions") || odr_ok(o)) &&
00348                 odr_sequence_end (o) &&
00349                 odr_constructed_end (o);
00350 }
00351 
00352 int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name)
00353 {
00354         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 7, name))
00355                 return odr_missing(o, opt, name);
00356         if (o->direction == ODR_DECODE)
00357                 *p = (ILL_Cancel_Reply *) odr_malloc (o, sizeof(**p));
00358         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00359         {
00360                 if(o->direction == ODR_DECODE)
00361                         *p = 0;
00362                 return 0;
00363         }
00364         return
00365                 odr_implicit_tag (o, odr_integer,
00366                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00367                 odr_implicit_tag (o, ill_Transaction_Id,
00368                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00369                 odr_implicit_tag (o, ill_Service_Date_Time,
00370                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00371                 odr_implicit_tag (o, ill_System_Id,
00372                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00373                 odr_implicit_tag (o, ill_System_Id,
00374                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00375                 odr_implicit_tag (o, odr_bool,
00376                         &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") &&
00377                 odr_explicit_tag (o, ill_String,
00378                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00379                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00380                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_reply_extensions,
00381                   &(*p)->num_cancel_reply_extensions, "cancel_reply_extensions") || odr_ok(o)) &&
00382                 odr_sequence_end (o) &&
00383                 odr_constructed_end (o);
00384 }
00385 
00386 int ill_Received (ODR o, ILL_Received **p, int opt, const char *name)
00387 {
00388         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 8, name))
00389                 return odr_missing(o, opt, name);
00390         if (o->direction == ODR_DECODE)
00391                 *p = (ILL_Received *) odr_malloc (o, sizeof(**p));
00392         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00393         {
00394                 if(o->direction == ODR_DECODE)
00395                         *p = 0;
00396                 return 0;
00397         }
00398         return
00399                 odr_implicit_tag (o, odr_integer,
00400                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00401                 odr_implicit_tag (o, ill_Transaction_Id,
00402                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00403                 odr_implicit_tag (o, ill_Service_Date_Time,
00404                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00405                 odr_implicit_tag (o, ill_System_Id,
00406                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00407                 odr_implicit_tag (o, ill_System_Id,
00408                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00409                 odr_implicit_tag (o, ill_System_Id,
00410                         &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") &&
00411                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
00412                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
00413                 odr_implicit_tag (o, ill_ISO_Date,
00414                         &(*p)->date_received, ODR_CONTEXT, 36, 0, "date_received") &&
00415                 odr_implicit_tag (o, ill_Shipped_Service_Type,
00416                         &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") &&
00417                 odr_explicit_tag (o, ill_String,
00418                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
00419                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00420                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->received_extensions,
00421                   &(*p)->num_received_extensions, "received_extensions") || odr_ok(o)) &&
00422                 odr_sequence_end (o) &&
00423                 odr_constructed_end (o);
00424 }
00425 
00426 int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name)
00427 {
00428         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 9, name))
00429                 return odr_missing(o, opt, name);
00430         if (o->direction == ODR_DECODE)
00431                 *p = (ILL_Recall *) odr_malloc (o, sizeof(**p));
00432         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00433         {
00434                 if(o->direction == ODR_DECODE)
00435                         *p = 0;
00436                 return 0;
00437         }
00438         return
00439                 odr_implicit_tag (o, odr_integer,
00440                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00441                 odr_implicit_tag (o, ill_Transaction_Id,
00442                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00443                 odr_implicit_tag (o, ill_Service_Date_Time,
00444                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00445                 odr_implicit_tag (o, ill_System_Id,
00446                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00447                 odr_implicit_tag (o, ill_System_Id,
00448                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00449                 odr_explicit_tag (o, ill_String,
00450                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00451                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00452                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->recall_extensions,
00453                   &(*p)->num_recall_extensions, "recall_extensions") || odr_ok(o)) &&
00454                 odr_sequence_end (o) &&
00455                 odr_constructed_end (o);
00456 }
00457 
00458 int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name)
00459 {
00460         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 10, name))
00461                 return odr_missing(o, opt, name);
00462         if (o->direction == ODR_DECODE)
00463                 *p = (ILL_Returned *) odr_malloc (o, sizeof(**p));
00464         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00465         {
00466                 if(o->direction == ODR_DECODE)
00467                         *p = 0;
00468                 return 0;
00469         }
00470         return
00471                 odr_implicit_tag (o, odr_integer,
00472                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00473                 odr_implicit_tag (o, ill_Transaction_Id,
00474                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00475                 odr_implicit_tag (o, ill_Service_Date_Time,
00476                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00477                 odr_implicit_tag (o, ill_System_Id,
00478                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00479                 odr_implicit_tag (o, ill_System_Id,
00480                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00481                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
00482                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
00483                 odr_implicit_tag (o, ill_ISO_Date,
00484                         &(*p)->date_returned, ODR_CONTEXT, 37, 0, "date_returned") &&
00485                 odr_explicit_tag (o, ill_Transportation_Mode,
00486                         &(*p)->returned_via, ODR_CONTEXT, 38, 1, "returned_via") &&
00487                 odr_implicit_tag (o, ill_Amount,
00488                         &(*p)->insured_for, ODR_CONTEXT, 39, 1, "insured_for") &&
00489                 odr_explicit_tag (o, ill_String,
00490                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
00491                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00492                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->returned_extensions,
00493                   &(*p)->num_returned_extensions, "returned_extensions") || odr_ok(o)) &&
00494                 odr_sequence_end (o) &&
00495                 odr_constructed_end (o);
00496 }
00497 
00498 int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name)
00499 {
00500         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 11, name))
00501                 return odr_missing(o, opt, name);
00502         if (o->direction == ODR_DECODE)
00503                 *p = (ILL_Checked_In *) odr_malloc (o, sizeof(**p));
00504         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00505         {
00506                 if(o->direction == ODR_DECODE)
00507                         *p = 0;
00508                 return 0;
00509         }
00510         return
00511                 odr_implicit_tag (o, odr_integer,
00512                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00513                 odr_implicit_tag (o, ill_Transaction_Id,
00514                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00515                 odr_implicit_tag (o, ill_Service_Date_Time,
00516                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00517                 odr_implicit_tag (o, ill_System_Id,
00518                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00519                 odr_implicit_tag (o, ill_System_Id,
00520                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00521                 odr_implicit_tag (o, ill_ISO_Date,
00522                         &(*p)->date_checked_in, ODR_CONTEXT, 40, 0, "date_checked_in") &&
00523                 odr_explicit_tag (o, ill_String,
00524                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00525                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00526                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->checked_in_extensions,
00527                   &(*p)->num_checked_in_extensions, "checked_in_extensions") || odr_ok(o)) &&
00528                 odr_sequence_end (o) &&
00529                 odr_constructed_end (o);
00530 }
00531 
00532 int ill_Overdue_ExtensionS (ODR o, ILL_Overdue_ExtensionS **p, int opt, const char *name)
00533 {
00534         if (!odr_initmember (o, p, sizeof(**p)))
00535                 return odr_missing(o, opt, name);
00536         if (odr_sequence_of (o, (Odr_fun) ill_Extension, &(*p)->elements,
00537                 &(*p)->num, name))
00538                 return 1;
00539         if(o->direction == ODR_DECODE)
00540                 *p = 0;
00541         return odr_missing(o, opt, name);
00542 }
00543 
00544 int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name)
00545 {
00546         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 12, name))
00547                 return odr_missing(o, opt, name);
00548         if (o->direction == ODR_DECODE)
00549                 *p = (ILL_Overdue *) odr_malloc (o, sizeof(**p));
00550         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00551         {
00552                 if(o->direction == ODR_DECODE)
00553                         *p = 0;
00554                 return 0;
00555         }
00556         return
00557                 odr_implicit_tag (o, odr_integer,
00558                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00559                 odr_implicit_tag (o, ill_Transaction_Id,
00560                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00561                 odr_implicit_tag (o, ill_Service_Date_Time,
00562                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00563                 odr_implicit_tag (o, ill_System_Id,
00564                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00565                 odr_implicit_tag (o, ill_System_Id,
00566                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00567                 odr_implicit_tag (o, ill_Date_Due,
00568                         &(*p)->date_due, ODR_CONTEXT, 41, 0, "date_due") &&
00569                 odr_explicit_tag (o, ill_String,
00570                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00571                 odr_explicit_tag (o, ill_Overdue_ExtensionS,
00572                         &(*p)->overdue_extensions, ODR_CONTEXT, 49, 1, "overdue_extensions") &&
00573                 odr_sequence_end (o) &&
00574                 odr_constructed_end (o);
00575 }
00576 
00577 int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name)
00578 {
00579         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 13, name))
00580                 return odr_missing(o, opt, name);
00581         if (o->direction == ODR_DECODE)
00582                 *p = (ILL_Renew *) odr_malloc (o, sizeof(**p));
00583         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00584         {
00585                 if(o->direction == ODR_DECODE)
00586                         *p = 0;
00587                 return 0;
00588         }
00589         return
00590                 odr_implicit_tag (o, odr_integer,
00591                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00592                 odr_implicit_tag (o, ill_Transaction_Id,
00593                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00594                 odr_implicit_tag (o, ill_Service_Date_Time,
00595                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00596                 odr_implicit_tag (o, ill_System_Id,
00597                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00598                 odr_implicit_tag (o, ill_System_Id,
00599                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00600                 odr_implicit_tag (o, ill_ISO_Date,
00601                         &(*p)->desired_due_date, ODR_CONTEXT, 42, 1, "desired_due_date") &&
00602                 odr_explicit_tag (o, ill_String,
00603                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
00604                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00605                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_extensions,
00606                   &(*p)->num_renew_extensions, "renew_extensions") || odr_ok(o)) &&
00607                 odr_sequence_end (o) &&
00608                 odr_constructed_end (o);
00609 }
00610 
00611 int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name)
00612 {
00613         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 14, name))
00614                 return odr_missing(o, opt, name);
00615         if (o->direction == ODR_DECODE)
00616                 *p = (ILL_Renew_Answer *) odr_malloc (o, sizeof(**p));
00617         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00618         {
00619                 if(o->direction == ODR_DECODE)
00620                         *p = 0;
00621                 return 0;
00622         }
00623         return
00624                 odr_implicit_tag (o, odr_integer,
00625                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00626                 odr_implicit_tag (o, ill_Transaction_Id,
00627                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00628                 odr_implicit_tag (o, ill_Service_Date_Time,
00629                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00630                 odr_implicit_tag (o, ill_System_Id,
00631                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00632                 odr_implicit_tag (o, ill_System_Id,
00633                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00634                 odr_implicit_tag (o, odr_bool,
00635                         &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") &&
00636                 odr_implicit_tag (o, ill_Date_Due,
00637                         &(*p)->date_due, ODR_CONTEXT, 41, 1, "date_due") &&
00638                 odr_explicit_tag (o, ill_String,
00639                         &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") &&
00640                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00641                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_answer_extensions,
00642                   &(*p)->num_renew_answer_extensions, "renew_answer_extensions") || odr_ok(o)) &&
00643                 odr_sequence_end (o) &&
00644                 odr_constructed_end (o);
00645 }
00646 
00647 int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name)
00648 {
00649         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 15, name))
00650                 return odr_missing(o, opt, name);
00651         if (o->direction == ODR_DECODE)
00652                 *p = (ILL_Lost *) odr_malloc (o, sizeof(**p));
00653         if (!odr_sequence_begin (o, p, sizeof(**p), 0))
00654         {
00655                 if(o->direction == ODR_DECODE)
00656                         *p = 0;
00657                 return 0;
00658         }
00659         return
00660                 odr_implicit_tag (o, odr_integer,
00661                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
00662                 odr_implicit_tag (o, ill_Transaction_Id,
00663                         &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") &&
00664                 odr_implicit_tag (o, ill_Service_Date_Time,
00665                         &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") &&
00666                 odr_implicit_tag (o, ill_System_Id,
00667                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
00668                 odr_implicit_tag (o, ill_System_Id,
00669                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
00670                 odr_explicit_tag (o, ill_String,
00671                         &(*p)->note, ODR_CONTEXT, 46, 1, "note") &&
00672                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
00673                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->lost_extensions,
00674                   &(*p)->num_lost_extensions, "lost_extensions") || odr_ok(o)) &&
00675                 odr_sequence_end (o) &&
00676                 odr_constructed_end (o);
00677 }
00678 
00679 int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name)
00680 {
00681         if (!odr_constructed_begin (o, p, ODR_APPLICATION, 16, name))
00682                 return odr_missing(o, opt, name);
00683         if (o->direction == OD