56f62ec0b6ecb009db3efe33bc83b842f4f2a52c
[yaz-moved-to-github.git] / ill / item-req.c
1 /* YC 0.2 Wed Mar 01 14:47:01 CET 2000 */
2 /* Module-C: Z39.50-extendedService-ItemOrder-ItemRequest-1 */
3
4 #include <yaz/item-req.h>
5
6 int ill_ItemRequest (ODR o, ILL_ItemRequest **p, int opt, const char *name)
7 {
8         if (!odr_sequence_begin (o, p, sizeof(**p), name))
9                 return opt && odr_ok (o);
10         return
11                 odr_implicit_tag (o, odr_integer,
12                         &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") &&
13                 odr_implicit_tag (o, ill_Transaction_Id,
14                         &(*p)->transaction_id, ODR_CONTEXT, 1, 1, "transaction_id") &&
15                 odr_implicit_tag (o, ill_Service_Date_Time,
16                         &(*p)->service_date_time, ODR_CONTEXT, 2, 1, "service_date_time") &&
17                 odr_implicit_tag (o, ill_System_Id,
18                         &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") &&
19                 odr_implicit_tag (o, ill_System_Id,
20                         &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") &&
21                 odr_implicit_tag (o, ill_Transaction_Type,
22                         &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") &&
23                 odr_implicit_tag (o, ill_Delivery_Address,
24                         &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") &&
25                 ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") &&
26                 odr_implicit_tag (o, ill_Delivery_Address,
27                         &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") &&
28                 odr_implicit_settag (o, ODR_CONTEXT, 9) &&
29                 (odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type,
30                   &(*p)->num_iLL_service_type, "iLL_service_type") || odr_ok(o)) &&
31                 odr_explicit_tag (o, odr_external,
32                         &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") &&
33                 odr_implicit_tag (o, ill_Requester_Optional_Messages_Type,
34                         &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 1, "requester_optional_messages") &&
35                 odr_implicit_tag (o, ill_Search_Type,
36                         &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") &&
37                 odr_implicit_settag (o, ODR_CONTEXT, 13) &&
38                 (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type,
39                   &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) &&
40                 odr_implicit_tag (o, ill_Place_On_Hold_Type,
41                         &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") &&
42                 odr_implicit_tag (o, ill_Client_Id,
43                         &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") &&
44                 odr_implicit_tag (o, ill_Item_Id,
45                         &(*p)->item_id, ODR_CONTEXT, 16, 1, "item_id") &&
46                 odr_implicit_tag (o, ill_Supplemental_Item_Description,
47                         &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") &&
48                 odr_implicit_tag (o, ill_Cost_Info_Type,
49                         &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") &&
50                 odr_explicit_tag (o, ill_String,
51                         &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") &&
52                 odr_implicit_tag (o, ill_Third_Party_Info_Type,
53                         &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") &&
54                 odr_implicit_tag (o, odr_bool,
55                         &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") &&
56                 odr_implicit_tag (o, odr_bool,
57                         &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") &&
58                 odr_explicit_tag (o, ill_String,
59                         &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") &&
60                 odr_explicit_tag (o, ill_String,
61                         &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") &&
62                 odr_implicit_settag (o, ODR_CONTEXT, 49) &&
63                 (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions,
64                   &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) &&
65                 odr_sequence_end (o);
66 }