std::string proxy;
xsltStylesheetPtr explain_xsp;
std::map<std::string,SearchablePtr> s_map;
+ std::string zoom_timeout;
};
}
}
}
yf::Zoom::Impl::Impl() :
- apdu_log(false), element_transform("pz2") , element_raw("raw")
+ apdu_log(false), element_transform("pz2") , element_raw("raw"),
+ zoom_timeout("40")
{
bibset = ccl_qual_mk();
attr->name));
}
}
+ else if (!strcmp((const char *) ptr->name, "zoom"))
+ {
+ const struct _xmlAttr *attr;
+ for (attr = ptr->properties; attr; attr = attr->next)
+ {
+ if (!strcmp((const char *) attr->name, "timeout"))
+ zoom_timeout = mp::xml::get_text(attr->children);
+ else
+ throw mp::filter::FilterException(
+ "Bad attribute " + std::string((const char *)
+ attr->name));
+ }
+ }
else
{
throw mp::filter::FilterException
int *proxy_step)
{
std::list<BackendPtr>::const_iterator map_it;
- if (m_backend && m_backend->m_frontend_database == database)
+ if (m_backend && !m_backend->enable_explain &&
+ m_backend->m_frontend_database == database)
return m_backend;
std::string input_args;
if (sptr->query_encoding.length())
b->set_option("rpnCharset", sptr->query_encoding);
- b->set_option("timeout", "40");
+ b->set_option("timeout", m_p->zoom_timeout.c_str());
if (m_p->apdu_log)
b->set_option("apdulog", "1");
{
*error = YAZ_BIB1_UNSPECIFIED_ERROR;
*addinfo =
- odr_strdup(odr, "IR-Explain---1 unsupported. torus explain_xsl not defined");
+ odr_strdup(odr, "IR-Explain---1 unsupported. "
+ "Torus explain_xsl not defined");
return m_backend;
}
else if (query->which == Z_Query_type_104 &&
if (!doc)
{
*error = YAZ_BIB1_UNSPECIFIED_ERROR;
- *addinfo = odr_strdup(odr, "IR-Explain--1 problem. "
+ *addinfo = odr_strdup(odr, "IR-Explain---1 problem. "
"Could not obtain Torus records for Explain");
}
else
switch (cerror)
{
case CCL_ERR_UNKNOWN_QUAL:
- error = YAZ_BIB1_UNSUPP_USE_ATTRIBUTE;
- break;
case CCL_ERR_TRUNC_NOT_LEFT:
case CCL_ERR_TRUNC_NOT_RIGHT:
case CCL_ERR_TRUNC_NOT_BOTH:
- error = YAZ_BIB1_UNSUPP_TRUNCATION_ATTRIBUTE;
+#ifdef CCL_ERR_TRUNC_NOT_EMBED
+ case CCL_ERR_TRUNC_NOT_EMBED:
+#endif
+#ifdef CCL_ERR_TRUNC_NOT_SINGLE
+ case CCL_ERR_TRUNC_NOT_SINGLE:
+#endif
+ error = YAZ_BIB1_UNSUPP_SEARCH;
break;
}
log_diagnostic(package, error, addinfo);