-/* $Id: filter_record_transform.cpp,v 1.6 2006-10-10 09:17:24 adam Exp $
- Copyright (c) 2005-2006, Index Data.
+/* $Id: filter_record_transform.cpp,v 1.12 2007-05-09 21:23:09 adam Exp $
+ Copyright (c) 2005-2007, Index Data.
- See the LICENSE file for details
+This file is part of Metaproxy.
+
+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
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Metaproxy is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Metaproxy; see the file LICENSE. If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
*/
#include "config.hpp"
if (0 == strcmp((const char *) retrieval_node->name, "retrievalinfo"))
break;
}
-
+
// read configuration
if ( 0 != yaz_retrieval_configure(m_retrieval, retrieval_node)){
std::string msg("RecordTransform filter config: ");
}
const char *match_schema = 0;
- int *match_syntax = 0;
+ Odr_oid *match_syntax = 0;
const char *backend_schema = 0;
Odr_oid *backend_syntax = 0;
else if (ret_code == 2)
{
char oidbuf[OID_STR_MAX];
- oid_to_dotstring(input_syntax, oidbuf);
+ oid_oid_to_dotstring(input_syntax, oidbuf);
details = odr_strdup(odr_en, oidbuf);
apdu = odr_en.create_presentResponse(
return;
}
-
-
// now re-coding the z3950 backend present request
- // z3950'fy record syntax
- if (backend_syntax) // TODO: this seems not to work - why ??
- pr_req->preferredRecordSyntax = backend_syntax;
+ if (backend_syntax)
+ pr_req->preferredRecordSyntax = odr_oiddup(odr_en, backend_syntax);
else
- pr_req->preferredRecordSyntax
- = yaz_oidval_to_z3950oid(odr_en, CLASS_RECSYN, VAL_NONE);
+ pr_req->preferredRecordSyntax = 0;
// z3950'fy record schema
output_record);
if (ret_trans == 0)
{
- struct oident *ident = oid_getentbyoid(match_syntax);
npr->u.databaseRecord =
- z_ext_record(odr_en, ident->value,
+ z_ext_record_oid(odr_en, match_syntax,
wrbuf_buf(output_record),
wrbuf_len(output_record));
}
YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS,
yaz_record_conv_get_error(rc));
}
- wrbuf_free(output_record, 1);
+ wrbuf_destroy(output_record);
}
}
}