+#ifdef ASN_COMPILED
+
+const char *get_ill_element (void *clientData, const char *element)
+{
+ printf ("%s\n", element);
+ return 0;
+}
+
+static Z_External *create_external_itemRequest()
+{
+ struct ill_get_ctl ctl;
+ ILL_ItemRequest *req;
+ Z_External *r = 0;
+ int item_request_size = 0;
+ char *item_request_buf = 0;
+
+ ctl.odr = out;
+ ctl.clientData = 0;
+ ctl.f = get_ill_element;
+
+ req = ill_get_ItemRequest(&ctl, "ill", 0);
+ if (!req)
+ printf ("ill_get_ItemRequest failed\n");
+
+ if (!ill_ItemRequest (out, &req, 0, 0))
+ {
+ if (apdu_file)
+ {
+ ill_ItemRequest(print, &req, 0, 0);
+ odr_reset(print);
+ }
+ item_request_buf = odr_getbuf (out, &item_request_size, 0);
+ if (item_request_buf)
+ odr_setbuf (out, item_request_buf, item_request_size, 1);
+ printf ("Couldn't encode ItemRequest, size %d\n", item_request_size);
+ return 0;
+ }
+ else
+ {
+ oident oid;
+
+ item_request_buf = odr_getbuf (out, &item_request_size, 0);
+ oid.proto = PROTO_GENERAL;
+ oid.oclass = CLASS_GENERAL;
+ oid.value = VAL_ISO_ILL_1;
+
+ r = (Z_External *) odr_malloc (out, sizeof(*r));
+ r->direct_reference = odr_oiddup(out,oid_getoidbyent(&oid));
+ r->indirect_reference = 0;
+ r->descriptor = 0;
+ r->which = Z_External_single;
+
+ r->u.single_ASN1_type = (Odr_oct *)
+ odr_malloc (out, sizeof(*r->u.single_ASN1_type));
+ r->u.single_ASN1_type->buf = odr_malloc (out, item_request_size);
+ r->u.single_ASN1_type->len = item_request_size;
+ r->u.single_ASN1_type->size = item_request_size;
+ memcpy (r->u.single_ASN1_type->buf, item_request_buf,
+ item_request_size);
+ printf ("len = %d\n", item_request_size);
+ }
+ return r;
+}
+#else
+static Z_External *create_external_itemRequest()
+{
+ return 0;
+}
+#endif
+
+#ifdef ASN_COMPILED
+static Z_External *create_external_ILLRequest()
+{
+ struct ill_get_ctl ctl;
+ ILL_Request *req;
+ Z_External *r = 0;
+ int ill_request_size = 0;
+ char *ill_request_buf = 0;
+
+ ctl.odr = out;
+ ctl.clientData = 0;
+ ctl.f = get_ill_element;
+
+ req = ill_get_ILLRequest(&ctl, "ill", 0);
+
+ if (!ill_Request (out, &req, 0, 0))
+ {
+ if (apdu_file)
+ {
+ printf ("-------------------\n");
+ ill_Request(print, &req, 0, 0);
+ odr_reset(print);
+ printf ("-------------------\n");
+ }
+ ill_request_buf = odr_getbuf (out, &ill_request_size, 0);
+ if (ill_request_buf)
+ odr_setbuf (out, ill_request_buf, ill_request_size, 1);
+ printf ("Couldn't encode ILL-Request, size %d\n", ill_request_size);
+ return 0;
+ }
+ else
+ {
+ oident oid;
+ ill_request_buf = odr_getbuf (out, &ill_request_size, 0);
+
+ oid.proto = PROTO_GENERAL;
+ oid.oclass = CLASS_GENERAL;
+ oid.value = VAL_ISO_ILL_1;
+
+ r = (Z_External *) odr_malloc (out, sizeof(*r));
+ r->direct_reference = odr_oiddup(out,oid_getoidbyent(&oid));
+ r->indirect_reference = 0;
+ r->descriptor = 0;
+ r->which = Z_External_single;
+
+ r->u.single_ASN1_type = (Odr_oct *)
+ odr_malloc (out, sizeof(*r->u.single_ASN1_type));
+ r->u.single_ASN1_type->buf = odr_malloc (out, ill_request_size);
+ r->u.single_ASN1_type->len = ill_request_size;
+ r->u.single_ASN1_type->size = ill_request_size;
+ memcpy (r->u.single_ASN1_type->buf, ill_request_buf, ill_request_size);
+ printf ("len = %d\n", ill_request_size);
+ }
+ return r;
+}
+#else
+static Z_External *create_external_ILLRequest()
+{
+ return 0;
+}
+#endif
+
+
+static Z_External *create_ItemOrderExternal(const char *type, int itemno)