YAZ
5.34.0
|
yaz-ztest Generic Frontend Server More...
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <yaz/log.h>
#include <yaz/backend.h>
#include <yaz/ill.h>
#include <yaz/diagbib1.h>
#include <yaz/otherinfo.h>
#include <yaz/facet.h>
#include <yaz/backtrace.h>
#include "ztest.h"
Go to the source code of this file.
Data Structures | |
struct | delay |
struct | result_set |
struct | session_handle |
Functions | |
int | ztest_search (void *handle, bend_search_rr *rr) |
int | ztest_sort (void *handle, bend_sort_rr *rr) |
int | ztest_present (void *handle, bend_present_rr *rr) |
int | ztest_esrequest (void *handle, bend_esrequest_rr *rr) |
int | ztest_delete (void *handle, bend_delete_rr *rr) |
static struct result_set * | get_set (struct session_handle *sh, const char *name) |
static void | remove_sets (struct session_handle *sh) |
static Odr_int | get_term_hit (Z_RPNStructure *s, unsigned *hash) |
use term value as hit count More... | |
static Odr_int | get_hit_count (Z_Query *q) |
gets hit count for numeric terms in RPN queries More... | |
static int | check_slow (const char *basename, bend_association association) |
checks if it's a dummy Slow database More... | |
static int | strcmp_prefix (const char *s, const char *p) |
static void | init_delay (struct delay *delayp) |
static int | parse_delay (struct delay *delayp, const char *value) |
static void | ztest_sleep (double d) |
static void | do_delay (const struct delay *delayp) |
static void | addterms (ODR odr, Z_FacetField *facet_field, const char *facet_name) |
Z_OtherInformation * | build_facet_response (ODR odr, Z_FacetList *facet_list) |
static void | echo_extra_args (ODR stream, Z_SRW_extra_arg *extra_args, char **extra_response) |
int | ztest_fetch (void *handle, bend_fetch_rr *r) |
int | ztest_scan (void *handle, bend_scan_rr *q) |
int | ztest_explain (void *handle, bend_explain_rr *rr) |
int | ztest_update (void *handle, bend_update_rr *rr) |
bend_initresult * | bend_init (bend_initrequest *q) |
void | bend_close (void *handle) |
int | main (int argc, char **argv) |
Variables | |
static int | log_level =0 |
static int | log_level_set =0 |
yaz-ztest Generic Frontend Server
Definition in file ztest.c.
|
static |
Definition at line 252 of file ztest.c.
References facet_field_term_set(), facet_term_create_cstr(), Z_FacetField::num_terms, odr_malloc(), yaz_log(), and YLOG_DEBUG.
Referenced by build_facet_response().
void bend_close | ( | void * | handle | ) |
Definition at line 1166 of file ztest.c.
References remove_sets(), and xfree.
Referenced by main(), and statserv_main().
bend_initresult* bend_init | ( | bend_initrequest * | q | ) |
Definition at line 1129 of file ztest.c.
References bend_initrequest::bend_delete, bend_initrequest::bend_esrequest, bend_initrequest::bend_explain, bend_initrequest::bend_fetch, bend_initrequest::bend_present, bend_initrequest::bend_scan, bend_initrequest::bend_search, bend_initrequest::bend_sort, bend_initrequest::bend_srw_scan, bend_initrequest::bend_srw_update, bend_initresult::errcode, bend_initresult::errstring, bend_initresult::handle, log_level, log_level_set, bend_initrequest::named_result_sets, odr_malloc(), bend_initrequest::query_charset, bend_initrequest::records_in_same_charset, session_handle::result_sets, bend_initrequest::stream, xmalloc, yaz_log_module_level(), ztest_delete(), ztest_esrequest(), ztest_explain(), ztest_fetch(), ztest_present(), ztest_scan(), ztest_search(), ztest_sort(), and ztest_update().
Referenced by main(), and statserv_main().
Z_OtherInformation* build_facet_response | ( | ODR | odr, |
Z_FacetList * | facet_list | ||
) |
Definition at line 271 of file ztest.c.
References addterms(), Z_FacetField::attributes, Z_OtherInformationUnit::category, Z_External::descriptor, Z_External::direct_reference, Z_FacetList::elements, yaz_facet_attr::errstring, Z_OtherInformationUnit::externallyDefinedInfo, facet_field_create(), facet_list_create(), Z_External::facetList, Z_External::indirect_reference, Z_OtherInformationUnit::information, yaz_facet_attr::limit, Z_OtherInformation::list, Z_FacetList::num, Z_OtherInformation::num_elements, odr_malloc(), odr_oiddup(), yaz_facet_attr::sortorder, yaz_facet_attr::start, Z_External::u, yaz_facet_attr::useattr, Z_External::which, Z_OtherInformationUnit::which, yaz_facet_attr_get_z_attributes(), yaz_facet_attr_init(), yaz_log(), yaz_oid_userinfo_facet_1, YLOG_DEBUG, YLOG_LOG, Z_External_userFacets, and Z_OtherInfo_externallyDefinedInfo.
Referenced by ztest_search().
|
static |
checks if it's a dummy Slow database
basename | database name to check |
association | backend association (or NULL if not available) |
1 | is slow database |
0 | is not a slow database |
The Slow database is for testing.. It allows us to simulate a slow server...
Definition at line 180 of file ztest.c.
References bend_assoc_is_alive(), yaz_log(), and YLOG_LOG.
Referenced by ztest_scan(), and ztest_search().
|
static |
Definition at line 240 of file ztest.c.
References delay::d1, delay::d2, and ztest_sleep().
Referenced by ztest_fetch(), ztest_present(), and ztest_search().
|
static |
Definition at line 318 of file ztest.c.
References Z_SRW_extra_arg::name, Z_SRW_extra_arg::next, odr_strdup(), Z_SRW_extra_arg::value, wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), wrbuf_puts(), and wrbuf_xmlputs().
Referenced by ztest_scan(), and ztest_search().
gets hit count for numeric terms in RPN queries
q | RPN Query |
This is just for testing.. A real database of course uses the content of a database to establish a value.. In our case, we have a way to trigger a certain hit count. Good for testing of client applications etc
Definition at line 146 of file ztest.c.
References Z_External::cql, get_term_hit(), Z_RPNQuery::RPNStructure, Z_Query::type_1, Z_Query::type_104, Z_External::u, Z_Query::u, Z_External::which, Z_Query::which, Z_External_CQL, Z_Query_type_1, Z_Query_type_101, and Z_Query_type_104.
Referenced by ztest_search().
|
static |
Definition at line 68 of file ztest.c.
References name, result_set::name, result_set::next, and session_handle::result_sets.
Referenced by ztest_fetch(), ztest_present(), and ztest_search().
|
static |
use term value as hit count
s | RPN structure |
hash | value for compuation |
Traverse RPN tree 'in order' and use term value as hit count. Only terms that looks a numeric is used.. Returns -1 if no sub tree has a hit count term
Definition at line 100 of file ztest.c.
References Z_Operand::attributesPlusTerm, odr_oct::buf, Z_RPNStructure::complex, Z_Term::general, odr_oct::len, odr_atoi(), Z_Complex::s1, Z_Complex::s2, Z_RPNStructure::simple, Z_AttributesPlusTerm::term, Z_RPNStructure::u, Z_Operand::u, Z_Term::u, Z_RPNStructure::which, Z_Operand::which, Z_Term::which, wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), wrbuf_write(), Z_Operand_APT, Z_RPNStructure_complex, Z_RPNStructure_simple, and Z_Term_general.
Referenced by get_hit_count().
|
static |
Definition at line 212 of file ztest.c.
References delay::d1, and delay::d2.
Referenced by ztest_search().
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 1174 of file ztest.c.
References bend_close(), bend_init(), statserv_main(), and yaz_enable_panic_backtrace().
|
static |
Definition at line 217 of file ztest.c.
References delay::d1, and delay::d2.
Referenced by ztest_search().
|
static |
Definition at line 77 of file ztest.c.
References result_set::db, result_set::name, result_set::next, session_handle::result_sets, and xfree.
Referenced by bend_close().
|
static |
Definition at line 204 of file ztest.c.
Referenced by ztest_search().
int ztest_delete | ( | void * | handle, |
bend_delete_rr * | rr | ||
) |
Definition at line 806 of file ztest.c.
References bend_delete_rr::delete_status, bend_delete_rr::num_setnames, bend_delete_rr::setnames, Z_DeleteStatus_resultSetDidNotExist, and Z_DeleteStatus_success.
Referenced by bend_init().
int ztest_esrequest | ( | void * | handle, |
bend_esrequest_rr * | rr | ||
) |
Definition at line 448 of file ztest.c.
References Z_IUOriginPartToKeep::action, Z_IU0OriginPartToKeep::action, Z_IUOriginPartToKeep::actionQualifier, Z_IOOriginPartToKeep::addlBilling, Z_IOTargetPart::auxiliaryStatus, odr_oct::buf, Z_IOOriginPartToKeep::contact, Z_IUTaskPackageRecordStructure::correlationInfo, Z_TaskPackage::creationDateTime, Z_IUOriginPartToKeep::databaseName, bend_esrequest_rr::decode, Z_TaskPackage::description, Z_External::descriptor, Z_External::direct_reference, Z_IUSuppliedRecords::elements, Z_IUOriginPartToKeep::elementSetName, Z_IOContact::email, bend_esrequest_rr::errcode, bend_esrequest_rr::errstring, bend_esrequest_rr::esr, Z_IOItemOrder::esRequest, Z_IUUpdate::esRequest, Z_IU0Update::esRequest, Z_ExtendedServicesRequest::function, Z_IUTargetPart::globalDiagnostics, ill_APDU(), ill_ItemRequest(), Z_External::indirect_reference, Z_IOResultSetItem::item, Z_External::itemOrder, Z_IOOriginPartNotToKeep::itemRequest, Z_IOTargetPart::itemRequest, odr_oct::len, log_level, Z_IOContact::name, Z_IORequest::notToKeep, Z_IUUpdateEsRequest::notToKeep, Z_IUSuppliedRecords::num, Z_IUTargetPart::num_globalDiagnostics, Z_IUTaskPackageRecordStructure::num_supplementalDiagnostics, Z_IUTargetPart::num_taskPackageRecords, Z_External::octet_aligned, odr_create_Odr_oct(), odr_dumpBER(), odr_errmsg(), ODR_EXTERNAL_single, odr_geterror(), ODR_INT_PRINTF, odr_intdup(), odr_malloc(), odr_nullval(), odr_offset(), odr_oiddup(), odr_reset(), odr_setbuf(), odr_strdup(), oid_oidcmp(), OID_STR_MAX, Z_IOTaskPackage::originPart, Z_IUUpdateTaskPackage::originPart, Z_TaskPackage::packageDiagnostics, Z_ExtendedServicesRequest::packageName, Z_TaskPackage::packageName, Z_ExtendedServicesRequest::packageType, Z_TaskPackage::packageType, Z_TaskPackage::permissions, Z_IOContact::phone, bend_esrequest_rr::print, Z_IUSuppliedRecords_elem::record, Z_IUTaskPackageRecordStructure::record, Z_IUTaskPackageRecordStructure::recordStatus, Z_IOResultSetItem::resultSetId, Z_IOOriginPartNotToKeep::resultSetItem, Z_TaskPackage::retentionTime, Z_IUOriginPartToKeep::schema, Z_External::single_ASN1_type, Z_IOTargetPart::statusOrErrorReport, bend_esrequest_rr::stream, Z_IUTaskPackageRecordStructure::supplementalDiagnostics, Z_External::sutrs, Z_IOTaskPackage::targetPart, Z_IUUpdateTaskPackage::targetPart, Z_TaskPackage::targetReference, bend_esrequest_rr::taskPackage, Z_IOItemOrder::taskPackage, Z_IUUpdate::taskPackage, Z_IUTargetPart::taskPackageRecords, Z_ExtendedServicesRequest::taskSpecificParameters, Z_TaskPackage::taskSpecificParameters, Z_TaskPackage::taskStatus, Z_IORequest::toKeep, Z_IUUpdateEsRequest::toKeep, Z_IU0UpdateEsRequest::toKeep, Z_External::u, Z_IOItemOrder::u, Z_IUUpdate::u, Z_IUTaskPackageRecordStructure::u, Z_IU0Update::u, Z_External::update, Z_External::update0, Z_IUTargetPart::updateStatus, Z_TaskPackage::userId, Z_ExtendedServicesRequest::waitAction, Z_External::which, Z_IOItemOrder::which, Z_IUUpdate::which, Z_IUTaskPackageRecordStructure::which, YAZ_BIB1_DATABASE_UNAVAILABLE, yaz_log(), yaz_log_file(), yaz_oid_general_isoill_1, yaz_oid_recsyn_xml, yaz_oid_to_string_buf(), z_ext_record_sutrs(), z_ext_record_xml(), Z_External_itemOrder, Z_External_octet, Z_External_sutrs, Z_External_update, Z_External_update0, Z_IOItemOrder_esRequest, Z_IOItemOrder_taskPackage, Z_IUOriginPartToKeep_elementUpdate, Z_IUOriginPartToKeep_recordDelete, Z_IUOriginPartToKeep_recordInsert, Z_IUOriginPartToKeep_recordReplace, Z_IUOriginPartToKeep_specialUpdate, Z_IUTaskPackageRecordStructure_record, Z_IUTaskPackageRecordStructure_success, Z_IUUpdate_esRequest, and Z_IUUpdate_taskPackage.
Referenced by bend_init().
int ztest_explain | ( | void * | handle, |
bend_explain_rr * | rr | ||
) |
Definition at line 1109 of file ztest.c.
References bend_explain_rr::database, and bend_explain_rr::explain_buf.
Referenced by bend_init().
int ztest_fetch | ( | void * | handle, |
bend_fetch_rr * | r | ||
) |
Definition at line 841 of file ztest.c.
References bend_fetch_rr::basename, bend_fetch_rr::comp, result_set::db, do_delay(), dummy_grs_record(), dummy_json_record(), dummy_marc_record(), dummy_opac(), dummy_xml_record(), bend_fetch_rr::errcode, bend_fetch_rr::errstring, result_set::fetch_delay, get_set(), result_set::hits, bend_fetch_rr::last_in_set, bend_fetch_rr::len, bend_fetch_rr::number, odr_malloc(), odr_oiddup(), odr_strdup(), oid_oid_to_dotstring(), oid_oidcmp(), OID_STR_MAX, bend_fetch_rr::output_format, bend_fetch_rr::record, bend_fetch_rr::request_format, bend_fetch_rr::schema, bend_fetch_rr::setname, bend_fetch_rr::stream, bend_fetch_rr::surrogate_flag, YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE, YAZ_BIB1_RECORD_SYNTAX_UNSUPP, YAZ_BIB1_SPECIFIED_RESULT_SET_DOES_NOT_EXIST, YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS, yaz_get_esn(), yaz_oid_is_iso2709(), yaz_oid_recsyn_grs_1, yaz_oid_recsyn_json, yaz_oid_recsyn_opac, yaz_oid_recsyn_postscript, yaz_oid_recsyn_sutrs, yaz_oid_recsyn_usmarc, and yaz_oid_recsyn_xml.
Referenced by bend_init().
int ztest_present | ( | void * | handle, |
bend_present_rr * | rr | ||
) |
Definition at line 825 of file ztest.c.
References do_delay(), bend_present_rr::errcode, bend_present_rr::errstring, get_set(), odr_strdup(), result_set::present_delay, bend_present_rr::setname, bend_present_rr::stream, and YAZ_BIB1_SPECIFIED_RESULT_SET_DOES_NOT_EXIST.
Referenced by bend_init().
int ztest_scan | ( | void * | handle, |
bend_scan_rr * | q | ||
) |
Definition at line 990 of file ztest.c.
References bend_scan_rr::basenames, BEND_SCAN_PARTIAL, BEND_SCAN_SUCCESS, odr_oct::buf, check_slow(), echo_extra_args(), bend_scan_rr::entries, scan_entry::errcode, bend_scan_rr::errcode, scan_entry::errstring, bend_scan_rr::errstring, bend_scan_rr::extra_args, bend_scan_rr::extra_response_data, Z_Term::general, odr_oct::len, bend_scan_rr::num_entries, scan_entry::occurrences, bend_scan_rr::scanClause, bend_scan_rr::status, bend_scan_rr::step_size, bend_scan_rr::stream, scan_entry::term, bend_scan_rr::term, Z_AttributesPlusTerm::term, bend_scan_rr::term_position, Z_Term::u, Z_Term::which, YAZ_BIB1_DATABASE_UNAVAILABLE, YAZ_BIB1_ONLY_ZERO_STEP_SIZE_SUPPORTED_FOR_SCAN, YAZ_BIB1_RESOURCES_EXHAUSTED_NO_RESULTS_AVAILABLE, YAZ_BIB1_SCAN_UNSUPP_VALUE_OF_POSITION_IN_RESPONSE, YAZ_BIB1_TERM_TYPE_UNSUPP, yaz_islower, yaz_matchstr(), yaz_toupper, and Z_Term_general.
Referenced by bend_init().
int ztest_search | ( | void * | handle, |
bend_search_rr * | rr | ||
) |
Definition at line 346 of file ztest.c.
References bend_search_rr::association, bend_search_rr::basenames, build_facet_response(), check_slow(), result_set::db, do_delay(), echo_extra_args(), bend_search_rr::errcode, bend_search_rr::errstring, bend_search_rr::estimated_hit_count, bend_search_rr::extra_args, bend_search_rr::extra_response_data, result_set::fetch_delay, get_hit_count(), get_set(), bend_search_rr::hits, result_set::hits, init_delay(), name, result_set::name, result_set::next, Z_FacetList::num, bend_search_rr::num_bases, odr_strdup(), parse_delay(), result_set::present_delay, bend_search_rr::query, bend_search_rr::replace_set, session_handle::result_sets, result_set::search_delay, bend_search_rr::search_info, bend_search_rr::search_input, bend_search_rr::setname, strcmp_prefix(), bend_search_rr::stream, xfree, xmalloc, xstrdup, YAZ_BIB1_COMBI_OF_SPECIFIED_DATABASES_UNSUPP, YAZ_BIB1_DATABASE_UNAVAILABLE, YAZ_BIB1_RESULT_SET_EXISTS_AND_REPLACE_INDICATOR_OFF, YAZ_BIB1_SERVICE_UNSUPP_FOR_THIS_DATABASE, yaz_log(), yaz_oi_get_facetlist(), yaz_uri_to_array(), YLOG_DEBUG, and YLOG_LOG.
Referenced by bend_init().
|
static |
Definition at line 228 of file ztest.c.
Referenced by do_delay().
int ztest_sort | ( | void * | handle, |
bend_sort_rr * | rr | ||
) |
Definition at line 816 of file ztest.c.
References bend_sort_rr::errcode, bend_sort_rr::sort_status, and Z_SortResponse_success.
Referenced by bend_init().
int ztest_update | ( | void * | handle, |
bend_update_rr * | rr | ||
) |
Definition at line 1123 of file ztest.c.
References bend_update_rr::operation_status.
Referenced by bend_init().
|
static |
Definition at line 40 of file ztest.c.
Referenced by bend_init(), and ztest_esrequest().
|
static |
Definition at line 41 of file ztest.c.
Referenced by bend_init(), tcpip_init(), and unix_init().