/* This file is part of Metaproxy.
- Copyright (C) 2005-2011 Index Data
+ Copyright (C) 2005-2012 Index Data
Metaproxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
}
// read configuration
- if ( 0 != yaz_retrieval_configure(m_retrieval, retrieval_node)){
+ if (0 != yaz_retrieval_configure(m_retrieval, retrieval_node))
+ {
std::string msg("RecordTransform filter config: ");
msg += yaz_retrieval_get_error(m_retrieval);
throw mp::XMLError(msg);
// setting up variables for conversion state
yaz_record_conv_t rc = 0;
- int ret_code;
const char *input_schema = 0;
Odr_oid *input_syntax = 0;
- if(pr_req->recordComposition){
+ if (pr_req->recordComposition)
+ {
input_schema
= mp_util::record_composition_to_esn(pr_req->recordComposition);
}
- if(pr_req->preferredRecordSyntax){
+ if (pr_req->preferredRecordSyntax)
+ {
input_syntax = pr_req->preferredRecordSyntax;
}
const char *backend_schema = 0;
Odr_oid *backend_syntax = 0;
- ret_code
+ int ret_code
= yaz_retrieval_request(m_retrieval,
input_schema, input_syntax,
&match_schema, &match_syntax,
}
// now re-coding the z3950 backend present request
-
if (backend_syntax)
pr_req->preferredRecordSyntax = odr_oiddup(odr_en, backend_syntax);
else
pr_req->preferredRecordSyntax = 0;
-
// z3950'fy record schema
if (backend_schema)
{
return;
}
-
- // everything fine, continuing
- // std::cout << "z3950_present_request OK\n";
- // std::cout << "back z3950 " << *gdu_res << "\n";
-
Z_PresentResponse * pr_res = gdu_res->u.z3950->u.presentResponse;
- // let non surrogate dioagnostics in Z3950 present response package
- // pass to frontend - just return
- if (pr_res->records
- && pr_res->records->which == Z_Records_NSD
- && pr_res->records->u.nonSurrogateDiagnostic)
- {
- // we might do more clever tricks to "reverse"
- // these error(s).
-
- //*pr_res->records->u.nonSurrogateDiagnostic->condition =
- // YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;
- }
-
// record transformation must take place
if (rc && pr_res
&& pr_res->numberOfRecordsReturned
&& pr_res->records->which == Z_Records_DBOSD
&& pr_res->records->u.databaseOrSurDiagnostics->num_records)
{
- //transform all records
+ // transform all records
for (int i = 0;
i < pr_res->records->u.databaseOrSurDiagnostics->num_records;
i++)
int ret_trans = 0;
if (r->which == Z_External_OPAC)
{
-#if YAZ_VERSIONL >= 0x030011
ret_trans =
yaz_record_conv_opac_record(rc, r->u.opac,
output_record);
-#else
- ;
-#endif
}
else if (r->which == Z_External_octet)
{