YAZ  4.2.57
Data Structures | Macros | Typedefs | Enumerations | Functions
zoom-p.h File Reference

Internal header for ZOOM implementation. More...

#include <yaz/proto.h>
#include <yaz/oid_db.h>
#include <yaz/comstack.h>
#include <yaz/wrbuf.h>
#include <yaz/zoom.h>
#include <yaz/srw.h>
#include <yaz/mutex.h>

Go to the source code of this file.

Data Structures

struct  ZOOM_connection_p
struct  ZOOM_resultset_p
struct  facet_term_p
struct  ZOOM_facet_field_p
struct  ZOOM_scanset_p
struct  ZOOM_package_p
struct  ZOOM_task_p

Macros

#define SHPTR   1
#define ZOOM_RESULT_LISTS   0
#define STATE_IDLE   0
#define STATE_CONNECTING   1
#define STATE_ESTABLISHED   2
#define RECORD_HASH_SIZE   131
#define ZOOM_TASK_SEARCH   1
#define ZOOM_TASK_RETRIEVE   2
#define ZOOM_TASK_CONNECT   3
#define ZOOM_TASK_SCAN   4
#define ZOOM_TASK_PACKAGE   5
#define ZOOM_TASK_SORT   6

Typedefs

typedef struct ZOOM_Event_pZOOM_Event
typedef struct ZOOM_task_pZOOM_task
typedef struct
ZOOM_record_cache_p
ZOOM_record_cache

Enumerations

enum  zoom_sru_mode {
  zoom_sru_error, zoom_sru_soap, zoom_sru_get, zoom_sru_post,
  zoom_sru_solr
}
enum  zoom_ret { zoom_pending, zoom_complete }

Functions

void ZOOM_options_addref (ZOOM_options opt)
void ZOOM_handle_Z3950_apdu (ZOOM_connection c, Z_APDU *apdu)
void ZOOM_set_dset_error (ZOOM_connection c, int error, const char *dset, const char *addinfo, const char *addinfo2)
void ZOOM_set_error (ZOOM_connection c, int error, const char *addinfo)
ZOOM_Event ZOOM_Event_create (int kind)
void ZOOM_connection_put_event (ZOOM_connection c, ZOOM_Event event)
zoom_ret ZOOM_connection_Z3950_send_search (ZOOM_connection c)
zoom_ret send_Z3950_present (ZOOM_connection c)
zoom_ret ZOOM_connection_Z3950_send_scan (ZOOM_connection c)
zoom_ret ZOOM_send_buf (ZOOM_connection c)
zoom_ret send_Z3950_sort (ZOOM_connection c, ZOOM_resultset resultset)
char ** ZOOM_connection_get_databases (ZOOM_connection con, ZOOM_options options, int *num, ODR odr)
zoom_ret ZOOM_connection_Z3950_send_init (ZOOM_connection c)
ZOOM_task ZOOM_connection_add_task (ZOOM_connection c, int which)
void ZOOM_connection_remove_task (ZOOM_connection c)
int ZOOM_test_reconnect (ZOOM_connection c)
ZOOM_record ZOOM_record_cache_lookup (ZOOM_resultset r, int pos, const char *syntax, const char *elementSetName)
void ZOOM_record_cache_add (ZOOM_resultset r, Z_NamePlusRecord *npr, int pos, const char *syntax, const char *elementSetName, const char *schema, Z_SRW_diagnostic *diag)
Z_QueryZOOM_query_get_Z_Query (ZOOM_query s)
Z_SortKeySpecListZOOM_query_get_sortspec (ZOOM_query s)
const char * ZOOM_query_get_query_string (ZOOM_query s)
const char * ZOOM_query_get_sru11 (ZOOM_query s)
int ZOOM_uri_to_code (const char *uri)
zoom_ret ZOOM_connection_srw_send_search (ZOOM_connection c)
zoom_ret ZOOM_connection_srw_send_scan (ZOOM_connection c)
int ZOOM_handle_sru (ZOOM_connection c, Z_HTTP_Response *hres, zoom_ret *cret, char **addinfo)
void ZOOM_set_HTTP_error (ZOOM_connection c, int error, const char *addinfo, const char *addinfo2)
ZOOM_Event ZOOM_connection_get_event (ZOOM_connection c)
void ZOOM_connection_remove_events (ZOOM_connection c)
void ZOOM_Event_destroy (ZOOM_Event event)
zoom_ret ZOOM_send_GDU (ZOOM_connection c, Z_GDU *gdu)
void ZOOM_handle_facet_list (ZOOM_resultset r, Z_FacetList *fl)

Detailed Description

Internal header for ZOOM implementation.

Definition in file zoom-p.h.

Macro Definition Documentation

#define RECORD_HASH_SIZE   131

Definition at line 128 of file zoom-p.h.

Referenced by record_hash(), ZOOM_resultset_cache_reset(), and ZOOM_resultset_create().

#define SHPTR   1

Definition at line 39 of file zoom-p.h.

#define STATE_CONNECTING   1

Definition at line 56 of file zoom-p.h.

Referenced by do_connect_host(), and do_write_ex().

#define STATE_ESTABLISHED   2

Definition at line 57 of file zoom-p.h.

Referenced by do_connect_host(), and ZOOM_connection_do_io().

#define STATE_IDLE   0

Definition at line 55 of file zoom-p.h.

Referenced by do_connect_host(), and ZOOM_connection_create().

#define ZOOM_RESULT_LISTS   0

Definition at line 40 of file zoom-p.h.

#define ZOOM_TASK_CONNECT   3
#define ZOOM_TASK_PACKAGE   5
#define ZOOM_TASK_RETRIEVE   2
#define ZOOM_TASK_SCAN   4
#define ZOOM_TASK_SEARCH   1
#define ZOOM_TASK_SORT   6

Typedef Documentation

typedef struct ZOOM_Event_p* ZOOM_Event

Definition at line 42 of file zoom-p.h.

Definition at line 126 of file zoom-p.h.

typedef struct ZOOM_task_p* ZOOM_task

Definition at line 53 of file zoom-p.h.

Enumeration Type Documentation

enum zoom_ret
Enumerator:
zoom_pending 
zoom_complete 

Definition at line 228 of file zoom-p.h.

Enumerator:
zoom_sru_error 
zoom_sru_soap 
zoom_sru_get 
zoom_sru_post 
zoom_sru_solr 

Definition at line 44 of file zoom-p.h.

Function Documentation

zoom_ret send_Z3950_present ( ZOOM_connection  c)

Definition at line 1455 of file zoom-z3950.c.

References bool_t, CLASS_RECSYN, CLASS_SCHEMA, Z_RecordComposition::complex, Z_CompSpec::dbSpecific, Z_ElementSpec::elementSetName, Z_Specification::elementSpec, ZOOM_connection_p::error, Z_ElementSetNames::generic, Z_CompSpec::generic, ZOOM_connection_p::log_details, Z_CompSpec::num_dbSpecific, Z_CompSpec::num_recordSyntax, Z_PresentRequest::numberOfRecordsRequested, odr_malloc(), ZOOM_connection_p::odr_out, odr_strdup(), Z_Specification::oid, Z_PresentRequest::preferredRecordSyntax, Z_APDU::presentRequest, Z_PresentRequest::recordComposition, Z_CompSpec::recordSyntax, Z_PresentRequest::resultSetId, Z_PresentRequest::resultSetStartPoint, ZOOM_task_p::retrieve, ZOOM_resultset_p::schema, Z_Specification::schema, ZOOM_task_p::search, Z_CompSpec::selectAlternativeSyntax, send_APDU(), ZOOM_resultset_p::setname, Z_RecordComposition::simple, ZOOM_resultset_p::size, ZOOM_resultset_p::step, ZOOM_connection_p::tasks, ZOOM_task_p::u, Z_APDU::u, Z_RecordComposition::u, Z_ElementSetNames::u, Z_ElementSpec::u, ZOOM_task_p::which, Z_RecordComposition::which, Z_ElementSetNames::which, Z_ElementSpec::which, Z_Specification::which, YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE, yaz_log(), Z_APDU_presentRequest, Z_ElementSetNames_generic, Z_ElementSpec_elementSetName, Z_RecordComp_complex, Z_RecordComp_simple, Z_Schema_oid, zget_APDU(), zoom_complete, ZOOM_connection_put_event(), ZOOM_Event_create(), ZOOM_EVENT_RECV_RECORD, ZOOM_record_cache_lookup(), ZOOM_set_dset_error(), ZOOM_TASK_RETRIEVE, ZOOM_TASK_SEARCH, and zoom_yaz_str_to_z3950oid().

Referenced by send_Z3950_sort_present(), ZOOM_connection_exec_task(), and ZOOM_handle_Z3950_apdu().

zoom_ret send_Z3950_sort ( ZOOM_connection  c,
ZOOM_resultset  resultset 
)
ZOOM_task ZOOM_connection_add_task ( ZOOM_connection  c,
int  which 
)
char** ZOOM_connection_get_databases ( ZOOM_connection  con,
ZOOM_options  options,
int *  num,
ODR  odr 
)
ZOOM_Event ZOOM_connection_get_event ( ZOOM_connection  c)
void ZOOM_connection_put_event ( ZOOM_connection  c,
ZOOM_Event  event 
)
void ZOOM_connection_remove_events ( ZOOM_connection  c)

Definition at line 95 of file zoom-event.c.

References ZOOM_connection_get_event(), and ZOOM_Event_destroy().

Referenced by clear_error(), and ZOOM_connection_destroy().

void ZOOM_connection_remove_task ( ZOOM_connection  c)
zoom_ret ZOOM_connection_srw_send_scan ( ZOOM_connection  c)
zoom_ret ZOOM_connection_srw_send_search ( ZOOM_connection  c)

Definition at line 125 of file zoom-sru.c.

References Z_SRW_searchRetrieveRequest::cql, Z_External::cql, ZOOM_connection_p::error, Z_SRW_searchRetrieveRequest::facetList, Z_SRW_searchRetrieveRequest::maximumRecords, odr_intdup(), ZOOM_connection_p::odr_out, odr_strdup(), ZOOM_resultset_p::options, Z_SRW_searchRetrieveRequest::pqf, Z_SRW_searchRetrieveRequest::query, ZOOM_resultset_p::query, Z_SRW_searchRetrieveRequest::query_type, Z_SRW_searchRetrieveRequest::recordPacking, Z_SRW_searchRetrieveRequest::recordSchema, Z_SRW_PDU::request, ZOOM_task_p::retrieve, ZOOM_resultset_p::schema, ZOOM_task_p::search, send_srw(), ZOOM_resultset_p::setname, ZOOM_resultset_p::size, Z_SRW_searchRetrieveRequest::sort, Z_SRW_searchRetrieveRequest::sort_type, Z_SRW_searchRetrieveRequest::sortKeys, Z_SRW_searchRetrieveRequest::startRecord, ZOOM_resultset_p::step, ZOOM_connection_p::tasks, Z_Query::type_1, Z_Query::type_104, Z_External::u, Z_SRW_PDU::u, ZOOM_task_p::u, Z_Query::u, Z_External::which, ZOOM_task_p::which, Z_Query::which, xstrdup, yaz_encode_sru_extra(), yaz_pqf_parse_facet_list(), Z_External_CQL, Z_Query_type_1, Z_Query_type_104, Z_SRW_query_type_cql, Z_SRW_query_type_pqf, Z_SRW_searchRetrieve_request, Z_SRW_sort_type_sort, zoom_complete, ZOOM_connection_put_event(), ZOOM_ERROR_UNSUPPORTED_QUERY, ZOOM_Event_create(), ZOOM_EVENT_RECV_RECORD, ZOOM_options_get(), ZOOM_options_set(), ZOOM_query_get_query_string(), ZOOM_query_get_sru11(), ZOOM_query_get_Z_Query(), ZOOM_record_cache_lookup(), ZOOM_resultset_option_get(), ZOOM_set_error(), ZOOM_srw_get_pdu(), ZOOM_TASK_RETRIEVE, and ZOOM_TASK_SEARCH.

Referenced by handle_srw_response(), and ZOOM_connection_exec_task().

zoom_ret ZOOM_connection_Z3950_send_init ( ZOOM_connection  c)

Definition at line 562 of file zoom-z3950.c.

References ZOOM_connection_p::charset, Z_OtherInformationUnit::externallyDefinedInfo, ZOOM_connection_p::group, Z_IdPass::groupId, ZOOM_connection_p::host_port, Z_InitRequest::idAuthentication, Z_IdAuthentication::idPass, Z_InitRequest::implementationId, Z_InitRequest::implementationName, Z_InitRequest::implementationVersion, Z_OtherInformationUnit::information, Z_APDU::initRequest, ZOOM_connection_p::lang, ZOOM_connection_p::maximum_record_size, Z_InitRequest::maximumRecordSize, odr_malloc(), ODR_MASK_SET, ZOOM_connection_p::odr_out, odr_prepend(), odr_strdup(), odr_strdup_null(), Z_IdAuthentication::open, ZOOM_connection_p::options, Z_InitRequest::options, Z_InitRequest::otherInfo, ZOOM_connection_p::password, Z_IdPass::password, ZOOM_connection_p::preferred_message_size, Z_InitRequest::preferredMessageSize, Z_InitRequest::protocolVersion, ZOOM_connection_p::proxy, send_APDU(), Z_APDU::u, Z_IdAuthentication::u, ZOOM_connection_p::user, Z_IdPass::userId, Z_IdAuthentication::which, Z_OtherInformationUnit::which, yaz_oi_APDU(), yaz_oi_set_string_oid(), yaz_oi_update(), yaz_oid_userinfo_proxy, yaz_set_proposal_charneg_list(), Z_APDU_initRequest, Z_IdAuthentication_idPass, Z_IdAuthentication_open, Z_Options_extendedServices, Z_Options_namedResultSets, Z_Options_negotiationModel, Z_Options_present, Z_Options_scan, Z_Options_search, Z_Options_sort, Z_OtherInfo_externallyDefinedInfo, Z_ProtocolVersion_1, Z_ProtocolVersion_2, Z_ProtocolVersion_3, zget_APDU(), and ZOOM_options_get().

Referenced by do_connect_host(), and ZOOM_connection_do_io().

zoom_ret ZOOM_connection_Z3950_send_scan ( ZOOM_connection  c)
zoom_ret ZOOM_connection_Z3950_send_search ( ZOOM_connection  c)

Definition at line 640 of file zoom-z3950.c.

References CLASS_RECSYN, ZOOM_resultset_p::databaseNames, Z_SearchRequest::databaseNames, Z_ElementSetNames::generic, Z_SearchRequest::largeSetLowerBound, ZOOM_connection_p::log_details, Z_SearchRequest::mediumSetElementSetNames, Z_SearchRequest::mediumSetPresentNumber, ZOOM_resultset_p::next, ZOOM_resultset_p::num_databaseNames, Z_SearchRequest::num_databaseNames, odr_malloc(), ZOOM_connection_p::odr_out, odr_strdup(), ZOOM_resultset_p::options, ZOOM_resultset_p::piggyback, Z_SearchRequest::preferredRecordSyntax, ZOOM_resultset_p::query, Z_SearchRequest::query, ZOOM_resultset_p::r_sort_spec, Z_SearchRequest::resultSetName, ZOOM_connection_p::resultsets, ZOOM_resultset_p::schema, ZOOM_task_p::search, Z_APDU::searchRequest, send_APDU(), ZOOM_resultset_p::setname, Z_SearchRequest::smallSetElementSetNames, Z_SearchRequest::smallSetUpperBound, ZOOM_resultset_p::step, ZOOM_connection_p::support_named_resultsets, ZOOM_connection_p::tasks, Z_Query::type_1, ZOOM_task_p::u, Z_APDU::u, Z_Query::u, Z_ElementSetNames::u, ZOOM_task_p::which, Z_Query::which, Z_ElementSetNames::which, xstrdup, yaz_copy_Z_Query(), yaz_iconv_close(), yaz_iconv_open(), yaz_log(), yaz_oi_APDU(), yaz_oi_set_facetlist(), yaz_pqf_parse_facet_list(), yaz_query_charset_convert_rpnquery_check(), YLOG_WARN, Z_APDU_searchRequest, Z_ElementSetNames_generic, Z_Query_type_1, Z_Query_type_101, zget_APDU(), zoom_complete, ZOOM_ERROR_INVALID_QUERY, ZOOM_options_get(), ZOOM_options_get_int(), ZOOM_options_set(), ZOOM_query_get_Z_Query(), ZOOM_set_error(), ZOOM_TASK_SEARCH, and zoom_yaz_str_to_z3950oid().

Referenced by ZOOM_connection_exec_task().

ZOOM_Event ZOOM_Event_create ( int  kind)
void ZOOM_Event_destroy ( ZOOM_Event  event)

Definition at line 90 of file zoom-event.c.

References xfree.

Referenced by ZOOM_connection_process(), and ZOOM_connection_remove_events().

void ZOOM_handle_facet_list ( ZOOM_resultset  r,
Z_FacetList fl 
)
int ZOOM_handle_sru ( ZOOM_connection  c,
Z_HTTP_Response hres,
zoom_ret cret,
char **  addinfo 
)
void ZOOM_handle_Z3950_apdu ( ZOOM_connection  c,
Z_APDU apdu 
)

Definition at line 1617 of file zoom-z3950.c.

References Z_APDU::close, ZOOM_connection_p::cookie_in, Z_Close::diagnosticInformation, Z_APDU::extendedServicesResponse, handle_Z3950_es_response(), handle_Z3950_present_response(), handle_Z3950_scan_response(), handle_Z3950_search_response(), handle_Z3950_sort_response(), ZOOM_connection_p::host_port, Z_InitResponse::implementationId, Z_InitResponse::implementationName, Z_InitResponse::implementationVersion, Z_APDU::initResponse, ZOOM_connection_p::log_api, ZOOM_connection_p::log_details, nmem_create(), nmem_destroy(), ODR_MASK_GET, Z_InitResponse::options, Z_InitResponse::otherInfo, Z_APDU::presentResponse, Z_InitResponse::protocolVersion, response_default_diag(), Z_InitResponse::result, Z_APDU::scanResponse, Z_APDU::searchResponse, send_Z3950_present(), send_Z3950_sort_present(), set_init_option(), Z_APDU::sortResponse, ZOOM_connection_p::support_named_resultsets, ZOOM_connection_p::tasks, Z_APDU::u, ZOOM_task_p::which, Z_APDU::which, xfree, xstrdup, yaz_decode_init_diag(), yaz_get_charneg_record(), yaz_get_response_charneg(), yaz_init_opt_decode(), yaz_log(), yaz_oi_get_string_oid(), yaz_oid_userinfo_cookie, Z_APDU_close, Z_APDU_extendedServicesResponse, Z_APDU_initResponse, Z_APDU_presentResponse, Z_APDU_scanResponse, Z_APDU_searchResponse, Z_APDU_sortResponse, Z_Options_namedResultSets, Z_Options_negotiationModel, Z_ProtocolVersion_3, zoom_complete, ZOOM_connection_close(), ZOOM_connection_exec_task(), ZOOM_connection_option_set(), ZOOM_connection_remove_task(), ZOOM_connection_set_mask(), ZOOM_ERROR_CONNECTION_LOST, ZOOM_ERROR_DECODE, ZOOM_ERROR_INIT, ZOOM_set_dset_error(), ZOOM_set_error(), ZOOM_TASK_CONNECT, and ZOOM_test_reconnect().

Referenced by do_read().

void ZOOM_options_addref ( ZOOM_options  opt)

Definition at line 113 of file zoom-opt.c.

const char* ZOOM_query_get_query_string ( ZOOM_query  s)
Z_SortKeySpecList* ZOOM_query_get_sortspec ( ZOOM_query  s)
const char* ZOOM_query_get_sru11 ( ZOOM_query  s)

Definition at line 122 of file zoom-query.c.

References ZOOM_query_p::sru11_sort_spec, wrbuf_cstr(), and wrbuf_len.

Referenced by ZOOM_connection_srw_send_search().

Z_Query* ZOOM_query_get_Z_Query ( ZOOM_query  s)
void ZOOM_record_cache_add ( ZOOM_resultset  r,
Z_NamePlusRecord npr,
int  pos,
const char *  syntax,
const char *  elementSetName,
const char *  schema,
Z_SRW_diagnostic diag 
)
ZOOM_record ZOOM_record_cache_lookup ( ZOOM_resultset  r,
int  pos,
const char *  syntax,
const char *  elementSetName 
)
zoom_ret ZOOM_send_buf ( ZOOM_connection  c)
zoom_ret ZOOM_send_GDU ( ZOOM_connection  c,
Z_GDU gdu 
)
void ZOOM_set_dset_error ( ZOOM_connection  c,
int  error,
const char *  dset,
const char *  addinfo,
const char *  addinfo2 
)
void ZOOM_set_error ( ZOOM_connection  c,
int  error,
const char *  addinfo 
)
void ZOOM_set_HTTP_error ( ZOOM_connection  c,
int  error,
const char *  addinfo,
const char *  addinfo2 
)

Definition at line 1578 of file zoom-c.c.

References ZOOM_set_dset_error().

Referenced by handle_http(), and ZOOM_handle_sru().

int ZOOM_test_reconnect ( ZOOM_connection  c)
int ZOOM_uri_to_code ( const char *  uri)

Definition at line 90 of file zoom-c.c.

Referenced by set_SRU_error(), and ZOOM_record_error().