/*
- * Copyright (c) 1999-2004, Index Data.
+ * Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: ill-get.c,v 1.2 2004-10-15 00:19:00 adam Exp $
+ * $Id: ill-get.c,v 1.5 2005-06-25 15:46:04 adam Exp $
*/
/**
* \brief Implements ILL package creator utilities
*/
+#include <stdlib.h>
#include <yaz/ill.h>
bool_t *ill_get_bool (struct ill_get_ctl *gc, const char *name,
- const char *sub, int val)
+ const char *sub, int val)
{
ODR o = gc->odr;
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
v = (gc->f)(gc->clientData, element);
if (v)
- val = atoi(v);
+ val = atoi(v);
else if (val < 0)
- return 0;
+ return 0;
*r = val;
return r;
}
int *ill_get_int (struct ill_get_ctl *gc, const char *name,
- const char *sub, int val)
+ const char *sub, int val)
{
ODR o = gc->odr;
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
v = (gc->f)(gc->clientData, element);
if (v)
- val = atoi(v);
+ val = atoi(v);
return odr_intdup(o, val);
}
int *ill_get_enumerated (struct ill_get_ctl *gc, const char *name,
- const char *sub, int val)
+ const char *sub, int val)
{
return ill_get_int(gc, name, sub, val);
}
ILL_String *ill_get_ILL_String_x (struct ill_get_ctl *gc, const char *name,
- const char *sub, const char *vdefault)
+ const char *sub, const char *vdefault)
{
ILL_String *r = (ILL_String *) odr_malloc (gc->odr, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
v = (gc->f)(gc->clientData, element);
if (!v)
v = vdefault;
if (!v)
- return 0;
+ return 0;
r->which = ILL_String_GeneralString;
r->u.GeneralString = odr_strdup (gc->odr, v);
return r;
}
ILL_String *ill_get_ILL_String(struct ill_get_ctl *gc, const char *name,
- const char *sub)
+ const char *sub)
{
return ill_get_ILL_String_x (gc, name, sub, 0);
}
ILL_ISO_Date *ill_get_ILL_ISO_Date (struct ill_get_ctl *gc, const char *name,
- const char *sub, const char *val)
+ const char *sub, const char *val)
{
char element[128];
const char *v;
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
v = (gc->f)(gc->clientData, element);
if (!v)
- v = val;
+ v = val;
if (!v)
- return 0;
+ return 0;
return odr_strdup (gc->odr, v);
}
ILL_ISO_Time *ill_get_ILL_ISO_Time (struct ill_get_ctl *gc, const char *name,
- const char *sub, const char *val)
+ const char *sub, const char *val)
{
char element[128];
const char *v;
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
v = (gc->f)(gc->clientData, element);
if (!v)
- v = val;
+ v = val;
if (!v)
- return 0;
+ return 0;
return odr_strdup (gc->odr, v);
}
char element[128];
ODR o = gc->odr;
ILL_Person_Or_Institution_Symbol *p =
- (ILL_Person_Or_Institution_Symbol *) odr_malloc (o, sizeof(*p));
+ (ILL_Person_Or_Institution_Symbol *) odr_malloc (o, sizeof(*p));
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
p->which = ILL_Person_Or_Institution_Symbol_person_symbol;
if ((p->u.person_symbol = ill_get_ILL_String (gc, element, "person")))
- return p;
+ return p;
p->which = ILL_Person_Or_Institution_Symbol_institution_symbol;
if ((p->u.institution_symbol =
- ill_get_ILL_String (gc, element, "institution")))
- return p;
+ ill_get_ILL_String (gc, element, "institution")))
+ return p;
return 0;
}
char element[128];
ODR o = gc->odr;
ILL_Name_Of_Person_Or_Institution *p =
- (ILL_Name_Of_Person_Or_Institution *) odr_malloc (o, sizeof(*p));
+ (ILL_Name_Of_Person_Or_Institution *) odr_malloc (o, sizeof(*p));
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
p->which = ILL_Name_Of_Person_Or_Institution_name_of_person;
if ((p->u.name_of_person =
- ill_get_ILL_String (gc, element, "name-of-person")))
- return p;
+ ill_get_ILL_String (gc, element, "name-of-person")))
+ return p;
p->which = ILL_Name_Of_Person_Or_Institution_name_of_institution;
if ((p->u.name_of_institution =
- ill_get_ILL_String (gc, element, "name-of-institution")))
- return p;
+ ill_get_ILL_String (gc, element, "name-of-institution")))
+ return p;
return 0;
}
ILL_System_Id *ill_get_System_Id(struct ill_get_ctl *gc,
- const char *name, const char *sub)
+ const char *name, const char *sub)
{
ODR o = gc->odr;
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
p = (ILL_System_Id *) odr_malloc (o, sizeof(*p));
p->person_or_institution_symbol = ill_get_Person_Or_Insitution_Symbol (
- gc, element, "person-or-institution-symbol");
+ gc, element, "person-or-institution-symbol");
p->name_of_person_or_institution = ill_get_Name_Of_Person_Or_Institution (
- gc, element, "name-of-person-or-institution");
+ gc, element, "name-of-person-or-institution");
return p;
}
ILL_Transaction_Id *ill_get_Transaction_Id (struct ill_get_ctl *gc,
- const char *name, const char *sub)
+ const char *name, const char *sub)
{
ODR o = gc->odr;
ILL_Transaction_Id *r = (ILL_Transaction_Id *) odr_malloc (o, sizeof(*r));
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->initial_requester_id =
- ill_get_System_Id (gc, element, "initial-requester-id");
+ ill_get_System_Id (gc, element, "initial-requester-id");
r->transaction_group_qualifier =
- ill_get_ILL_String_x (gc, element, "transaction-group-qualifier", "");
+ ill_get_ILL_String_x (gc, element, "transaction-group-qualifier", "");
r->transaction_qualifier =
- ill_get_ILL_String_x (gc, element, "transaction-qualifier", "");
+ ill_get_ILL_String_x (gc, element, "transaction-qualifier", "");
r->sub_transaction_qualifier =
- ill_get_ILL_String (gc, element, "sub-transaction-qualifier");
+ ill_get_ILL_String (gc, element, "sub-transaction-qualifier");
return r;
}
{
ODR o = gc->odr;
ILL_Service_Date_this *r =
- (ILL_Service_Date_this *) odr_malloc (o, sizeof(*r));
+ (ILL_Service_Date_this *) odr_malloc (o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->date = ill_get_ILL_ISO_Date (gc, element, "date", "20000101");
r->time = ill_get_ILL_ISO_Time (gc, element, "time", 0);
{
ODR o = gc->odr;
ILL_Service_Date_original *r =
- (ILL_Service_Date_original *) odr_malloc (o, sizeof(*r));
+ (ILL_Service_Date_original *) odr_malloc (o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->date = ill_get_ILL_ISO_Date (gc, element, "date", 0);
r->time = ill_get_ILL_ISO_Time (gc, element, "time", 0);
if (!r->date && !r->time)
- return 0;
+ return 0;
return r;
}
{
ODR o = gc->odr;
ILL_Service_Date_Time *r =
- (ILL_Service_Date_Time *) odr_malloc (o, sizeof(*r));
+ (ILL_Service_Date_Time *) odr_malloc (o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->date_time_of_this_service = ill_get_Service_Date_this (
- gc, element, "this");
+ gc, element, "this");
r->date_time_of_original_service = ill_get_Service_Date_original (
- gc, element, "original");
+ gc, element, "original");
return r;
}
{
ODR o = gc->odr;
ILL_Requester_Optional_Messages_Type *r =
- (ILL_Requester_Optional_Messages_Type *) odr_malloc (o, sizeof(*r));
+ (ILL_Requester_Optional_Messages_Type *) odr_malloc (o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->can_send_RECEIVED = ill_get_bool (gc, element, "can-send-RECEIVED", 0);
r->can_send_RETURNED = ill_get_bool (gc, element, "can-send-RETURNED", 0);
r->requester_SHIPPED =
- ill_get_enumerated (gc, element, "requester-SHIPPED", 1);
+ ill_get_enumerated (gc, element, "requester-SHIPPED", 1);
r->requester_CHECKED_IN =
- ill_get_enumerated (gc, element, "requester-CHECKED-IN", 1);
+ ill_get_enumerated (gc, element, "requester-CHECKED-IN", 1);
return r;
}
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->item_type = ill_get_enumerated (gc, element, "item-type",
- ILL_Item_Id_monograph);
+ ILL_Item_Id_monograph);
r->held_medium_type = 0;
r->call_number = ill_get_ILL_String(gc, element, "call-number");
r->author = ill_get_ILL_String(gc, element, "author");
r->sub_title = ill_get_ILL_String(gc, element, "sub-title");
r->sponsoring_body = ill_get_ILL_String(gc, element, "sponsoring-body");
r->place_of_publication =
- ill_get_ILL_String(gc, element, "place-of-publication");
+ ill_get_ILL_String(gc, element, "place-of-publication");
r->publisher = ill_get_ILL_String(gc, element, "publisher");
r->series_title_number =
- ill_get_ILL_String(gc, element, "series-title-number");
+ ill_get_ILL_String(gc, element, "series-title-number");
r->volume_issue = ill_get_ILL_String(gc, element, "volume-issue");
r->edition = ill_get_ILL_String(gc, element, "edition");
r->publication_date = ill_get_ILL_String(gc, element, "publication-date");
r->publication_date_of_component =
- ill_get_ILL_String(gc, element, "publication-date-of-component");
+ ill_get_ILL_String(gc, element, "publication-date-of-component");
r->author_of_article = ill_get_ILL_String(gc, element,
- "author-of-article");
+ "author-of-article");
r->title_of_article = ill_get_ILL_String(gc, element, "title-of-article");
r->pagination = ill_get_ILL_String(gc, element, "pagination");
r->national_bibliography_no = 0;
r->iSSN = ill_get_ILL_String(gc, element, "ISSN");
r->system_no = 0;
r->additional_no_letters =
- ill_get_ILL_String(gc, element, "additional-no-letters");
+ ill_get_ILL_String(gc, element, "additional-no-letters");
r->verification_reference_source =
- ill_get_ILL_String(gc, element, "verification-reference-source");
+ ill_get_ILL_String(gc, element, "verification-reference-source");
return r;
}
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->client_name = ill_get_ILL_String (gc, element, "client-name");
r->client_status = ill_get_ILL_String (gc, element, "client-status");
r->client_identifier = ill_get_ILL_String (gc, element,
- "client-identifier");
+ "client-identifier");
return r;
}
{
ODR o = gc->odr;
ILL_Postal_Address *r =
- (ILL_Postal_Address *) odr_malloc(o, sizeof(*r));
+ (ILL_Postal_Address *) odr_malloc(o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->name_of_person_or_institution =
- ill_get_Name_Of_Person_Or_Institution (
- gc, element, "name-of-person-or-institution");
+ ill_get_Name_Of_Person_Or_Institution (
+ gc, element, "name-of-person-or-institution");
r->extended_postal_delivery_address =
- ill_get_ILL_String (
- gc, element, "extended-postal-delivery-address");
+ ill_get_ILL_String (
+ gc, element, "extended-postal-delivery-address");
r->street_and_number =
- ill_get_ILL_String (gc, element, "street-and-number");
+ ill_get_ILL_String (gc, element, "street-and-number");
r->post_office_box =
- ill_get_ILL_String (gc, element, "post-office-box");
+ ill_get_ILL_String (gc, element, "post-office-box");
r->city = ill_get_ILL_String (gc, element, "city");
r->region = ill_get_ILL_String (gc, element, "region");
r->country = ill_get_ILL_String (gc, element, "country");
{
ODR o = gc->odr;
ILL_System_Address *r =
- (ILL_System_Address *) odr_malloc(o, sizeof(*r));
+ (ILL_System_Address *) odr_malloc(o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->telecom_service_identifier =
- ill_get_ILL_String (gc, element, "telecom-service-identifier");
+ ill_get_ILL_String (gc, element, "telecom-service-identifier");
r->telecom_service_address =
- ill_get_ILL_String (gc, element, "telecom-service-addreess");
+ ill_get_ILL_String (gc, element, "telecom-service-addreess");
return r;
}
{
ODR o = gc->odr;
ILL_Delivery_Address *r =
- (ILL_Delivery_Address *) odr_malloc(o, sizeof(*r));
+ (ILL_Delivery_Address *) odr_malloc(o, sizeof(*r));
char element[128];
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->postal_address =
- ill_get_Postal_Address (gc, element, "postal-address");
+ ill_get_Postal_Address (gc, element, "postal-address");
r->electronic_address =
- ill_get_System_Address (gc, element, "electronic-address");
+ ill_get_System_Address (gc, element, "electronic-address");
return r;
}
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->level_of_service = ill_get_ILL_String (gc, element, "level-of-service");
r->need_before_date = ill_get_ILL_ISO_Date (gc, element,
- "need-before-date", 0);
+ "need-before-date", 0);
r->expiry_date = ill_get_ILL_ISO_Date (gc, element, "expiry-date", 0);
r->expiry_flag = ill_get_enumerated (gc, element, "expiry-flag", 3);
-
+
return r;
}
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->protocol_version_num =
- ill_get_enumerated (gc, element, "protocol-version-num",
- ILL_Request_version_2);
+ ill_get_enumerated (gc, element, "protocol-version-num",
+ ILL_Request_version_2);
r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id");
r->service_date_time =
- ill_get_Service_Date_Time (gc, element, "service-date-time");
+ ill_get_Service_Date_Time (gc, element, "service-date-time");
r->requester_id = ill_get_System_Id (gc, element, "requester-id");
r->responder_id = ill_get_System_Id (gc, element, "responder-id");
r->transaction_type =
- ill_get_enumerated(gc, element, "transaction-type", 1);
+ ill_get_enumerated(gc, element, "transaction-type", 1);
r->delivery_address =
- ill_get_Delivery_Address (gc, element, "delivery-address");
+ ill_get_Delivery_Address (gc, element, "delivery-address");
r->delivery_service = 0; /* TODO */
/* ill_get_Delivery_Service (gc, element, "delivery-service"); */
r->billing_address =
- ill_get_Delivery_Address (gc, element, "billing-address");
+ ill_get_Delivery_Address (gc, element, "billing-address");
r->num_iLL_service_type = 1;
r->iLL_service_type = (ILL_Service_Type **)
- odr_malloc (o, sizeof(*r->iLL_service_type));
+ odr_malloc (o, sizeof(*r->iLL_service_type));
*r->iLL_service_type =
- ill_get_enumerated (gc, element, "ill-service-type",
- ILL_Service_Type_copy_non_returnable);
+ ill_get_enumerated (gc, element, "ill-service-type",
+ ILL_Service_Type_copy_non_returnable);
r->responder_specific_service = 0;
r->requester_optional_messages =
- ill_get_Requester_Optional_Messages_Type (
- gc, element,"requester-optional-messages");
+ ill_get_Requester_Optional_Messages_Type (
+ gc, element,"requester-optional-messages");
r->search_type = ill_get_Search_Type(gc, element, "search-type");
r->num_supply_medium_info_type = 0;
r->supply_medium_info_type = 0;
r->place_on_hold = ill_get_enumerated (
- gc, element, "place-on-hold",
- ILL_Place_On_Hold_Type_according_to_responder_policy);
+ gc, element, "place-on-hold",
+ ILL_Place_On_Hold_Type_according_to_responder_policy);
r->client_id = ill_get_Client_Id (gc, element, "client-id");
-
+
r->item_id = ill_get_Item_Id (gc, element, "item-id");
r->supplemental_item_description = 0;
r->cost_info_type = 0;
r->copyright_compliance =
- ill_get_ILL_String(gc, element, "copyright-complicance");
+ ill_get_ILL_String(gc, element, "copyright-complicance");
r->third_party_info_type = 0;
r->retry_flag = ill_get_bool (gc, element, "retry-flag", 0);
r->forward_flag = ill_get_bool (gc, element, "forward-flag", 0);
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->protocol_version_num =
- ill_get_enumerated (gc, element, "protocol-version-num",
- ILL_Request_version_2);
+ ill_get_enumerated (gc, element, "protocol-version-num",
+ ILL_Request_version_2);
r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id");
r->service_date_time =
- ill_get_Service_Date_Time (gc, element, "service-date-time");
+ ill_get_Service_Date_Time (gc, element, "service-date-time");
r->requester_id = ill_get_System_Id (gc, element, "requester-id");
r->responder_id = ill_get_System_Id (gc, element, "responder-id");
r->transaction_type =
- ill_get_enumerated(gc, element, "transaction-type", 1);
+ ill_get_enumerated(gc, element, "transaction-type", 1);
r->delivery_address =
- ill_get_Delivery_Address (gc, element, "delivery-address");
+ ill_get_Delivery_Address (gc, element, "delivery-address");
r->delivery_service = 0; /* TODO */
/* ill_get_Delivery_Service (gc, element, "delivery-service"); */
r->billing_address =
- ill_get_Delivery_Address (gc, element, "billing-address");
+ ill_get_Delivery_Address (gc, element, "billing-address");
r->num_iLL_service_type = 1;
r->iLL_service_type = (ILL_Service_Type **)
- odr_malloc (o, sizeof(*r->iLL_service_type));
+ odr_malloc (o, sizeof(*r->iLL_service_type));
*r->iLL_service_type =
- ill_get_enumerated (gc, element, "ill-service-type",
- ILL_Service_Type_copy_non_returnable);
+ ill_get_enumerated (gc, element, "ill-service-type",
+ ILL_Service_Type_copy_non_returnable);
r->responder_specific_service = 0;
r->requester_optional_messages =
- ill_get_Requester_Optional_Messages_Type (
- gc, element,"requester-optional-messages");
+ ill_get_Requester_Optional_Messages_Type (
+ gc, element,"requester-optional-messages");
r->search_type = ill_get_Search_Type(gc, element, "search-type");
r->num_supply_medium_info_type = 0;
r->supply_medium_info_type = 0;
r->place_on_hold = ill_get_enumerated (
- gc, element, "place-on-hold",
- ILL_Place_On_Hold_Type_according_to_responder_policy);
+ gc, element, "place-on-hold",
+ ILL_Place_On_Hold_Type_according_to_responder_policy);
r->client_id = ill_get_Client_Id (gc, element, "client-id");
-
+
r->item_id = ill_get_Item_Id (gc, element, "item-id");
r->supplemental_item_description = 0;
r->cost_info_type = 0;
r->copyright_compliance =
- ill_get_ILL_String(gc, element, "copyright-complicance");
+ ill_get_ILL_String(gc, element, "copyright-complicance");
r->third_party_info_type = 0;
r->retry_flag = ill_get_bool (gc, element, "retry-flag", 0);
r->forward_flag = ill_get_bool (gc, element, "forward-flag", 0);
strcpy(element, name);
if (sub)
{
- strcat (element, ",");
- strcat (element, sub);
+ strcat (element, ",");
+ strcat (element, sub);
}
r->protocol_version_num =
- ill_get_enumerated (gc, element, "protocol-version-num",
- ILL_Request_version_2);
+ ill_get_enumerated (gc, element, "protocol-version-num",
+ ILL_Request_version_2);
r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id");
r->service_date_time =
- ill_get_Service_Date_Time (gc, element, "service-date-time");
+ ill_get_Service_Date_Time (gc, element, "service-date-time");
r->requester_id = ill_get_System_Id (gc, element, "requester-id");
r->responder_id = ill_get_System_Id (gc, element, "responder-id");
r->requester_note = ill_get_ILL_String(gc, element, "requester-note");
v = (gc->f)(gc->clientData, element);
if (!v)
- v = "request";
+ v = "request";
if (!strcmp (v, "request"))
{
- r->which = ILL_APDU_ILL_Request;
- r->u.illRequest = ill_get_ILLRequest(gc, name, sub);
+ r->which = ILL_APDU_ILL_Request;
+ r->u.illRequest = ill_get_ILLRequest(gc, name, sub);
}
else if (!strcmp (v, "cancel"))
{
- r->which = ILL_APDU_Cancel;
- r->u.Cancel = ill_get_Cancel(gc, name, sub);
+ r->which = ILL_APDU_Cancel;
+ r->u.Cancel = ill_get_Cancel(gc, name, sub);
}
else
- return 0;
+ return 0;
return r;
}
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+