68 if (!strcmp (str,
"create"))
70 if (!strcmp (str,
"delete"))
72 if (!strcmp (str,
"modify"))
79 if (!strcmp (str,
"wait"))
81 if (!strcmp (str,
"waitIfPossible"))
83 if (!strcmp (str,
"dontWait"))
85 if (!strcmp (str,
"dontReturnPackage"))
112 int ill_request_size;
113 char *ill_request_buf =
odr_getbuf(out, &ill_request_size, 0);
115 odr_setbuf(out, ill_request_buf, ill_request_size, 1);
120 int illRequest_size = 0;
121 char *illRequest_buf =
odr_getbuf(out, &illRequest_size, 0);
192 (str ? atoi(str) : 1);
217 const char *first_db =
"Default";
253 *notToKeepP = notToKeep;
285 const char *first_db =
"Default";
290 int recordIdOpaque_len;
292 &recordIdOpaque_len);
298 int recordOpaque_len;
304 const char *correlationInfo_note =
306 const char *correlationInfo_id =
316 if (!record_buf && !recordOpaque_buf)
320 syntax_str =
"SUTRS";
344 action =
"recordInsert";
348 action =
"specialUpdate";
353 action =
"specialUpdate";
361 if (!strcmp(action,
"recordInsert"))
363 else if (!strcmp(action,
"recordReplace"))
365 else if (!strcmp(action,
"recordDelete"))
367 else if (!strcmp(action,
"elementUpdate"))
369 else if (!strcmp(action,
"specialUpdate"))
384 const char *elementSetName =
426 else if (recordIdNumber)
433 else if (recordIdString)
442 if (correlationInfo_note || correlationInfo_id)
448 ci->
id = correlationInfo_id ?
453 if (recordOpaque_buf)
457 recordOpaque_buf, recordOpaque_len);
463 record_buf, record_len);
470 z_APDU(print, &apdu, 0, 0);
480 for (i = 0; i < 200; i++)
489 sprintf(buf,
"otherInfo%d", i);
493 cp = strchr(val,
':');
497 if (len >=
sizeof(buf))
499 memcpy(buf, val, len);
532 if (!
z_APDU(out, &a, 0, 0))
534 FILE *outf = fopen(
"/tmp/apdu.txt",
"a");
538 fprintf(outf,
"a=%p\n", a);
651 int lslb, ssub, mspn;
656 const char *elementSetName;
657 const char *smallSetElementSetName;
658 const char *mediumSetElementSetName;
670 smallSetElementSetName =
672 mediumSetElementSetName =
675 if (!smallSetElementSetName)
676 smallSetElementSetName = elementSetName;
678 if (!mediumSetElementSetName)
679 mediumSetElementSetName = elementSetName;
699 if (!search_req->
query)
740 if (lslb != -1 && ssub != -1 && mspn != -1)
759 smallSetElementSetName = 0;
760 mediumSetElementSetName = 0;
763 if (smallSetElementSetName && *smallSetElementSetName)
772 if (mediumSetElementSetName && *mediumSetElementSetName)
793 for (ord = 1; ; ord++)
796 sprintf(setname,
"%d", ord);
805 "allocating set %s", c, r->
setname);
901 if (!strcmp(
type,
"itemorder"))
918 else if (!strcmp(
type,
"create"))
923 else if (!strcmp(
type,
"drop"))
928 else if (!strcmp(
type,
"commit"))
933 else if (!strcmp(
type,
"update"))
937 else if (!strcmp(
type,
"xmlupdate"))
943 if (
encode_APDU(p->connection, apdu, p->odr_out) == 0)
950 p->buf_out = (
char *)
xmalloc(p->len_out);
951 memcpy(p->buf_out, buf, p->len_out);
969 const char *oid_name;
1005 "updateStatus",
"success");
1009 "updateStatus",
"partial");
1013 "updateStatus",
"failure");
1034 "updateStatus",
"success");
1038 "updateStatus",
"partial");
1042 "updateStatus",
"failure");
1059 "targetReference", (
char*) id->
buf, id->
len);
1064 "taskStatus",
"pending");
1068 "taskStatus",
"active");
1072 "taskStatus",
"complete");
1076 "taskStatus",
"aborted");
1101 const char *opStatus = 0;
1113 "esError", c->
error);
1127 opStatus =
"accepted";
1130 opStatus =
"failure";
1147 "xmlUpdateDoc", (
char*) doc->
buf, doc->
len);
1153 switch (term->
which)
1172 facet_field->num_terms = facet->
num_terms;
1175 facet_field->facet_terms =
1180 facet_field->facet_terms[i].frequency = *facetTerm->
count;
1183 i, facet_field->facet_terms[i].term,
1184 facet_field->facet_terms[i].frequency);
1197 for (j = 0; j < fl->
num; j++)
1231 switch (term->
which)
1256 sprintf(opt_name,
"%s.term",
name);
1283 resultset->
options,
"searchresult.size", sr->
num);
1285 for (j = 0; j < sr->
num; j++)
1291 sprintf(pref,
"searchresult.%d", j);
1296 yaz_snprintf(opt_name,
sizeof(opt_name),
"%s.id", pref);
1304 "%s.subquery", pref);
1312 "%s.interpretation", pref);
1320 "%s.recommendation", pref);
1343 const char *resultCountPrecision =
"exact";
1358 resultCountPrecision =
"estimate";
1368 resultCountPrecision);
1376 resultCountPrecision);
1421 const char *syntax = 0, *elementSetName = 0, *schema = 0;
1461 syntax, elementSetName, schema, 0);
1468 "handle_records resultset=%p start=%d count=%d",
1469 resultset, *
start, *count);
1481 "ZOOM C generated. Present phase and no records");
1483 syntax, elementSetName, schema, 0);
1487 else if (present_phase)
1494 "ZOOM C generated: Present response and no records");
1496 syntax, elementSetName, schema, 0);
1513 sprintf(buf,
"init_opt_%.70s",
name);
1547 const char *elementSetName = c->
tasks->
u.
search.elementSetName;
1563 if (syntax && *syntax)
1567 if (schema && *schema)
1594 if (elementSetName && *elementSetName)
1610 else if (elementSetName && *elementSetName)
1630 const char *syntax = 0;
1631 const char *elementSetName = 0;
1632 const char *schema = 0;
1651 if (*
start < 0 || *count < 0)
1654 "start/count < 0", 0);
1661 else if (*
start + *count >= resultset->
size)
1668 for (i = 0; i < *count; i++)
1672 syntax, elementSetName, schema);
1679 if (*count == 0 && resultset->
live_set)
1706 switch (apdu->
which)
1709 yaz_log(c->
log_api,
"%p handle_Z3950_apdu: Received Init response", c);
1747 xfree(c->cookie_in);
1753 c->support_named_resultsets = 1;
1769 char *charset = NULL, *lang = NULL;
1773 yaz_log(c->log_details,
"%p handle_Z3950_apdu target accepted: "
1774 "charset %s, language %s, select %d",
1776 charset ? charset :
"none", lang ? lang :
"none", sel);
1785 c,
"negotiation-charset-in-effect-for-records",
1786 (sel != 0) ?
"1" :
"0");
1792 yaz_log(c->log_api,
"%p handle_Z3950_apdu Search response", c);
1798 yaz_log(c->log_api,
"%p handle_Z3950_apdu Present response", c);
1804 yaz_log(c->log_api,
"%p handle_Z3950_apdu Sort response", c);
1810 yaz_log(c->log_api,
"%p handle_Z3950_apdu Scan response", c);
1815 yaz_log(c->log_api,
"%p handle_Z3950_apdu Extended Services response", c);
1820 yaz_log(c->log_api,
"%p handle_Z3950_apdu Close PDU", c);
1828 yaz_log(c->log_api,
"%p Received unknown PDU", c);
void yaz_get_response_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, char **charset, char **lang, int *selected)
Z_CharSetandLanguageNegotiation * yaz_get_charneg_record(Z_OtherInformation *p)
Z_External * yaz_set_proposal_charneg_list(ODR o, const char *delim, const char *charset_list, const char *lang_list, int selected)
Header for Z39.50 Charset negotiation utilities.
Z_Query * yaz_copy_Z_Query(Z_Query *q, ODR out)
Copies various Z39.50 types.
Z_RPNQuery * yaz_copy_z_RPNQuery(Z_RPNQuery *q, ODR out)
Diagnostics: Generated by csvtodiag.tcl from ./bib1.csv.
#define YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE
#define YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS
Header for errno utilities.
void yaz_facet_attr_init(struct yaz_facet_attr *attr_values)
void yaz_oi_set_facetlist(Z_OtherInformation **otherInformation, ODR odr, Z_FacetList *facet_list)
void yaz_facet_attr_get_z_attributes(const Z_AttributeList *attributes, struct yaz_facet_attr *av)
Header for the facet utilities.
int ill_Request(ODR o, ILL_Request **p, int opt, const char *name)
ILL_Request * ill_get_ILLRequest(struct ill_get_ctl *gc, const char *name, const char *sub)
Z_DefaultDiagFormat * yaz_decode_init_diag(int no, Z_InitResponse *initrs)
returns diagnostics from an init response
void yaz_init_opt_decode(Z_Options *opt, void(*pr)(const char *name, void *clientData), void *clientData)
Decodes Z39.50 Init Options - for printing.
void yaz_log(int level, const char *fmt,...)
Writes log message.
#define YLOG_WARN
log level: warning
#define YLOG_DEBUG
log level: debugging
void nmem_transfer(NMEM dst, NMEM src)
transfers memory from one NMEM handle to another
NMEM nmem_create(void)
returns new NMEM handle
void nmem_destroy(NMEM n)
destroys NMEM handle and memory associated with it
ODR odr_createmem(int direction)
void odr_setbuf(ODR o, char *buf, int len, int can_grow)
void odr_setprint(ODR o, FILE *file)
Odr_null * odr_nullval(void)
char * odr_getbuf(ODR o, int *len, int *size)
#define ODR_MASK_SET(mask, num)
#define ODR_MASK_GET(mask, num)
NMEM odr_extract_mem(ODR o)
char * odr_strdupn(ODR o, const char *str, size_t n)
char * odr_strdup_null(ODR o, const char *str)
char * odr_strdup(ODR o, const char *str)
Odr_int * odr_intdup(ODR o, Odr_int v)
void * odr_malloc(ODR o, size_t size)
Odr_oct * odr_create_Odr_oct(ODR o, const char *buf, int sz)
Odr_oid * odr_oiddup(ODR odr, const Odr_oid *o)
char * odr_prepend(ODR o, const char *prefix, const char *old)
const char * yaz_oid_to_string_buf(const Odr_oid *oid, oid_class *oclass, char *buf)
maps any OID to string (named or dot-notation)
yaz_oid_db_t yaz_oid_std(void)
returns standard OID database
Odr_oid * yaz_string_to_oid_odr(yaz_oid_db_t oid_list, oid_class oclass, const char *name, ODR o)
creates ODR malloc'ed OID from string
const Odr_oid yaz_oid_extserv_database_update[]
const Odr_oid yaz_oid_userinfo_client_ip[]
const Odr_oid yaz_oid_extserv_xml_es[]
const Odr_oid yaz_oid_userinfo_proxy[]
const Odr_oid yaz_oid_extserv_item_order[]
const Odr_oid yaz_oid_attset_bib_1[]
const Odr_oid yaz_oid_general_isoill_1[]
const Odr_oid yaz_oid_extserv_database_update_first_version[]
const Odr_oid yaz_oid_userinfo_cookie[]
const Odr_oid yaz_oid_extserv_admin[]
const Odr_oid yaz_oid_extserv_database_update_second_version[]
void yaz_oi_APDU(Z_APDU *apdu, Z_OtherInformation ***oip)
Z_OtherInformationUnit * yaz_oi_update(Z_OtherInformation **otherInformationP, ODR odr, const Odr_oid *oid, int categoryValue, int delete_flag)
void yaz_oi_set_string_oid(Z_OtherInformation **otherInformation, ODR odr, const Odr_oid *oid, int categoryValue, const char *str)
char * yaz_oi_get_string_oid(Z_OtherInformation **otherInformation, const Odr_oid *oid, int categoryValue, int delete_flag)
Header for Z39.50 OtherInfo utilities.
Z_FacetList * yaz_pqf_parse_facet_list(ODR o, const char *qbuf)
Z_NamePlusRecord * zget_surrogateDiagRec(ODR o, const char *dbname, int error, const char *addinfo)
Creates Surrogate Diagnostic Records.
Z_APDU * zget_APDU(ODR o, int which)
Z_External * z_ext_record_xml(ODR o, const char *buf, int len)
encodes EXTERNAL XML record
Z_External * z_ext_record_oid(ODR o, const Odr_oid *oid, const char *buf, int len)
encodes EXTERNAL record based on OID (NULL if not known)
Z_External * z_ext_record_oid_any(ODR o, const Odr_oid *oid, const char *buf, int len)
encodes EXTERNAL record as ANY
#define Z_External_single
#define Z_External_update0
#define Z_External_searchResult1
#define Z_External_userFacets
#define Z_External_update
#define Z_External_extendedService
#define Z_External_ESAdmin
#define Z_External_itemOrder
int yaz_query_charset_convert_rpnquery_check(Z_RPNQuery *q, ODR o, yaz_iconv_t cd)
void yaz_query_charset_convert_rpnquery(Z_RPNQuery *q, ODR o, yaz_iconv_t cd)
Query to WRBUF (to strings)
int yaz_iconv_close(yaz_iconv_t cd)
just like iconv_close(3)
yaz_iconv_t yaz_iconv_open(const char *tocode, const char *fromcode)
just like iconv_open(3)
void yaz_snprintf(char *buf, size_t size, const char *fmt,...)
Header for config file reading utilities.
int preferred_message_size
ZOOM_resultset resultsets
int support_named_resultsets
ZOOM_connection connection
ZOOM_facet_field * res_facets
Z_SortKeySpecList * r_sort_spec
Z_SRW_scanResponse * srw_scan_response
Z_ScanResponse * scan_response
struct ZOOM_task_p::@133::@134 search
union ZOOM_task_p::@133 u
Z_InitRequest * initRequest
Z_ScanResponse * scanResponse
Z_InitResponse * initResponse
Z_ExtendedServicesResponse * extendedServicesResponse
Z_ScanRequest * scanRequest
Z_SearchResponse * searchResponse
Z_PresentResponse * presentResponse
Z_ExtendedServicesRequest * extendedServicesRequest
Z_SortRequest * sortRequest
Z_SearchRequest * searchRequest
Z_SortResponse * sortResponse
Z_PresentRequest * presentRequest
Z_ESAdminOriginPartNotToKeep * notToKeep
Z_ESAdminOriginPartToKeep * toKeep
Z_AdminEsRequest * esRequest
Z_InternationalString * diagnosticInformation
Z_DbSpecific ** dbSpecific
Odr_bool * selectAlternativeSyntax
Z_Specification * generic
Z_DefaultDiagFormat * defaultFormat
union Z_ESAdminOriginPartNotToKeep::@109 u
Odr_null * recordsWillFollow
Z_InternationalString * databaseName
union Z_ESAdminOriginPartToKeep::@108 u
union Z_ElementSetNames::@58 u
Z_InternationalString * generic
Z_InternationalString * elementSetName
union Z_ElementSpec::@59 u
Z_InternationalString * userId
Z_InternationalString * packageName
Z_External * taskSpecificParameters
Odr_int * operationStatus
structure for all known EXTERNALs
Odr_int * indirect_reference
Z_TaskPackage * extendedService
Odr_oid * direct_reference
Odr_any * single_ASN1_type
Z_SearchInfoReport * searchResult1
Z_AttributeList * attributes
union Z_IOItemOrder::@115 u
Z_IOResultSetItem * resultSetItem
Z_IOBilling * addlBilling
Z_External * supplDescription
Z_IOOriginPartToKeep * toKeep
Z_IOOriginPartNotToKeep * notToKeep
Z_InternationalString * resultSetId
Z_DiagRec ** globalDiagnostics
int num_globalDiagnostics
Z_IU0TargetPart * targetPart
Z_IU0UpdateTaskPackage * taskPackage
union Z_IU0Update::@128 u
Z_InternationalString * note
Z_InternationalString * databaseName
Z_External * actionQualifier
Z_InternationalString * elementSetName
Z_InternationalString * string
Z_IUSuppliedRecordsId * supplementalId
union Z_IUSuppliedRecords_elem::@126 u
Z_IUCorrelationInfo * correlationInfo
Z_IUSuppliedRecords_elem ** elements
Z_DiagRec ** globalDiagnostics
int num_globalDiagnostics
Z_IUOriginPartToKeep * toKeep
Z_IUOriginPartNotToKeep * notToKeep
Z_IUTargetPart * targetPart
Z_IUUpdateEsRequest * esRequest
Z_IUUpdateTaskPackage * taskPackage
union Z_IdAuthentication::@44 u
Z_InternationalString * password
Z_InternationalString * groupId
Z_InternationalString * userId
Z_InternationalString * implementationVersion
Odr_int * maximumRecordSize
Z_IdAuthentication * idAuthentication
Z_InternationalString * implementationId
Z_ProtocolVersion * protocolVersion
Z_InternationalString * implementationName
Odr_int * preferredMessageSize
Z_OtherInformation * otherInfo
Z_InternationalString * implementationId
Z_InternationalString * implementationVersion
Z_OtherInformation * otherInfo
Z_InternationalString * implementationName
Z_ProtocolVersion * protocolVersion
Z_DiagRec ** nonsurrogateDiagnostics
Z_NamePlusRecord ** records
Z_AttributesPlusTerm * attributesPlusTerm
Z_ResultSetId * resultSetId
Odr_int * resultSetStartPoint
Odr_oid * preferredRecordSyntax
Z_RecordComposition * recordComposition
Odr_int * numberOfRecordsRequested
union Z_QueryExpression::@105 u
Z_QueryExpressionTerm * term
Z_AttributeSetId * attributeSetId
Z_RPNStructure * RPNStructure
union Z_RPNStructure::@46 u
union Z_RecordComposition::@52 u
Z_ElementSetNames * simple
Z_NamePlusRecordList * databaseOrSurDiagnostics
Z_DefaultDiagFormat * nonSurrogateDiagnostic
Z_DiagRecs * multipleNonSurDiagnostics
Z_AttributeSetId * attributeSet
Odr_int * preferredPositionInResponse
Z_DatabaseName ** databaseNames
Z_AttributesPlusTerm * termListAndStartPoint
Odr_int * numberOfTermsRequested
Odr_int * numberOfEntriesReturned
Z_QueryExpression * subqueryRecommendation
Z_InternationalString * subqueryId
Z_QueryExpression * subqueryExpression
Z_QueryExpression * subqueryInterpretation
Z_SearchInfoReport_s ** elements
Z_InternationalString * resultSetName
Z_ElementSetNames * smallSetElementSetNames
Z_OtherInformation * additionalSearchInfo
Z_DatabaseName ** databaseNames
Odr_int * largeSetLowerBound
Z_ElementSetNames * mediumSetElementSetNames
Odr_int * mediumSetPresentNumber
Odr_oid * preferredRecordSyntax
Odr_int * smallSetUpperBound
Z_PresentStatus * presentStatus
Odr_int * resultSetStatus
Z_OtherInformation * additionalSearchInfo
int num_inputResultSetNames
Z_InternationalString * sortedResultSetName
Z_SortKeySpecList * sortSequence
Z_InternationalString ** inputResultSetNames
union Z_Specification::@60 schema
Z_ElementSpec * elementSpec
Odr_oct * targetReference
int num_packageDiagnostics
Z_External * taskSpecificParameters
Z_DiagRec ** packageDiagnostics
Z_InternationalString * characterString
const char *(* f)(void *clientData, const char *element)
Header for memory handling functions.
#define xstrdup(s)
utility macro which calls xstrdup_f
#define xfree(x)
utility macro which calls xfree_f
#define xmalloc(x)
utility macro which calls malloc_f
Header for common YAZ utilities.
#define Z_ProtocolVersion_1
#define Z_Options_extendedServices
#define Z_ProtocolVersion_2
#define Z_APDU_initRequest
#define Z_ElementSetNames_generic
#define Z_ExtendedServicesRequest_create
#define Z_DiagRec_defaultFormat
#define Z_RecordComp_complex
#define Z_Options_present
#define Z_Term_characterString
#define Z_ExtendedServicesResponse_accepted
#define Z_ExtendedServicesRequest_dontWait
#define Z_ExtendedServicesRequest_dontReturnPackage
#define Z_APDU_scanRequest
#define Z_APDU_presentResponse
#define Z_DefaultDiagFormat_v3Addinfo
#define Z_ExtendedServicesRequest_delete
#define Z_APDU_sortResponse
#define Z_ElementSpec_elementSetName
#define Z_APDU_presentRequest
#define Z_ExtendedServicesResponse_failure
#define Z_ExtendedServicesRequest_waitIfPossible
#define Z_IdAuthentication_open
#define Z_APDU_extendedServicesResponse
#define Z_APDU_searchRequest
#define Z_APDU_initResponse
#define Z_RecordComp_simple
#define Z_Options_negotiationModel
#define Z_OtherInfo_externallyDefinedInfo
#define Z_IdAuthentication_idPass
#define Z_ExtendedServicesRequest_wait
#define Z_SearchResponse_estimate
#define Z_APDU_scanResponse
#define Z_RPNStructure_simple
#define Z_ExtendedServicesResponse_done
char Z_InternationalString
#define Z_Records_multipleNSD
#define Z_ExtendedServicesRequest_modify
int z_APDU(ODR o, Z_APDU **p, int opt, const char *name)
#define Z_ProtocolVersion_3
#define Z_APDU_sortRequest
#define Z_Options_namedResultSets
#define Z_APDU_searchResponse
#define Z_DefaultDiagFormat_v2Addinfo
#define Z_APDU_extendedServicesRequest
#define Z_TaskPackage_complete
#define Z_TaskPackage_pending
#define Z_TaskPackage_active
#define Z_TaskPackage_aborted
#define Z_QueryExpression_term
#define Z_QueryExpression_query
#define Z_ESAdminOriginPartNotToKeep_recordsWillFollow
#define Z_Admin_esRequest
#define Z_ESAdminOriginPartToKeep_create
#define Z_ESAdminOriginPartToKeep_commit
#define Z_ESAdminOriginPartToKeep_drop
#define Z_IOItemOrder_esRequest
#define Z_IU0TargetPart_failure
#define Z_IU0TargetPart_success
#define Z_IU0TargetPart_partial
#define Z_IUSuppliedRecords_elem_opaque
#define Z_IUOriginPartToKeep_recordInsert
#define Z_IUTargetPart_partial
#define Z_IUOriginPartToKeep_recordReplace
#define Z_IUUpdate_esRequest
#define Z_IUSuppliedRecords_elem_string
#define Z_IUOriginPartToKeep_recordDelete
#define Z_IUSuppliedRecords_elem_number
#define Z_IUTargetPart_failure
#define Z_IUOriginPartToKeep_elementUpdate
#define Z_IUTargetPart_success
#define Z_IUOriginPartToKeep_specialUpdate
zoom_ret ZOOM_send_buf(ZOOM_connection c)
int ZOOM_test_reconnect(ZOOM_connection c)
void ZOOM_set_error(ZOOM_connection c, int error, const char *addinfo)
void ZOOM_connection_remove_task(ZOOM_connection c)
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)
void ZOOM_connection_remove_tasks(ZOOM_connection c)
void ZOOM_set_dset_error(ZOOM_connection c, int error, const char *dset, const char *addinfo, const char *addinfo2)
ZOOM_Event ZOOM_Event_create(int kind)
void ZOOM_connection_put_event(ZOOM_connection c, ZOOM_Event event)
void ZOOM_memcached_hitcount(ZOOM_connection c, ZOOM_resultset resultset, Z_OtherInformation *oi, const char *precision)
void ZOOM_memcached_search(ZOOM_connection c, ZOOM_resultset resultset)
Internal header for ZOOM implementation.
ZOOM_record ZOOM_record_cache_lookup(ZOOM_resultset r, int pos, const char *syntax, const char *elementSetName, const char *schema)
#define ZOOM_TASK_PACKAGE
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)
#define ZOOM_TASK_CONNECT
Z_Query * ZOOM_query_get_Z_Query(ZOOM_query s)
static const char * ill_array_lookup(void *clientData, const char *idx)
static void handle_Z3950_scan_response(ZOOM_connection c, Z_ScanResponse *res)
static char * get_term_cstr(ODR odr, Z_Term *term)
static void handle_Z3950_records(ZOOM_connection c, Z_Records *sr, int present_phase)
static void handle_queryExpression(ZOOM_options opt, const char *name, Z_QueryExpression *exp)
static int es_response_taskpackage_update0(ZOOM_connection c, Z_IU0UpdateTaskPackage *utp)
void ZOOM_handle_search_result(ZOOM_connection c, ZOOM_resultset resultset, Z_OtherInformation *o)
static int es_response_taskpackage(ZOOM_connection c, Z_TaskPackage *taskPackage)
static Z_APDU * create_es_package(ZOOM_package p, const Odr_oid *oid)
ZOOM_package_send(ZOOM_package p, const char *type)
static Odr_oid * zoom_yaz_str_to_z3950oid(ZOOM_connection c, oid_class oid_class, const char *str)
void ZOOM_handle_facet_result(ZOOM_connection c, ZOOM_resultset r, Z_OtherInformation *o)
static Z_APDU * create_xmlupdate_package(ZOOM_package p)
static Z_APDU * create_update_package(ZOOM_package p)
static zoom_ret send_APDU(ZOOM_connection c, Z_APDU *a)
static void handle_Z3950_present_response(ZOOM_connection c, Z_PresentResponse *pr)
static Z_ItemOrder * encode_item_order(ZOOM_package p)
static int encode_APDU(ZOOM_connection c, Z_APDU *a, ODR out)
static void handle_Z3950_sort_response(ZOOM_connection c, Z_SortResponse *res)
static void set_init_option(const char *name, void *clientData)
static Z_External * encode_ill_request(ZOOM_package p)
static void response_default_diag(ZOOM_connection c, Z_DefaultDiagFormat *r)
static void response_diag(ZOOM_connection c, Z_DiagRec *p)
void ZOOM_handle_Z3950_apdu(ZOOM_connection c, Z_APDU *apdu)
zoom_ret ZOOM_connection_Z3950_send_scan(ZOOM_connection c)
static void handle_queryExpressionTerm(ZOOM_options opt, const char *name, Z_Term *term)
static void handle_Z3950_es_response(ZOOM_connection c, Z_ExtendedServicesResponse *res)
zoom_ret send_Z3950_sort(ZOOM_connection c, ZOOM_resultset resultset)
void ZOOM_handle_facet_list(ZOOM_resultset r, Z_FacetList *fl)
static zoom_ret Z3950_send_search(ZOOM_connection c)
zoom_ret ZOOM_connection_Z3950_send_init(ZOOM_connection c)
static zoom_ret send_Z3950_sort_present(ZOOM_connection c)
static zoom_ret Z3950_send_present(ZOOM_connection c)
static void handle_Z3950_search_response(ZOOM_connection c, Z_SearchResponse *sr)
Z_APDU * create_admin_package(ZOOM_package p, int type, Z_ESAdminOriginPartToKeep **toKeepP, Z_ESAdminOriginPartNotToKeep **notToKeepP)
zoom_ret ZOOM_connection_Z3950_search(ZOOM_connection c)
static int es_response_taskpackage_update(ZOOM_connection c, Z_IUUpdateTaskPackage *utp)
static void otherInfo_attach(ZOOM_connection c, Z_APDU *a, ODR out)
static ZOOM_facet_field get_zoom_facet_field(ODR odr, Z_FacetField *facet)
#define ZOOM_ERROR_UNSUPPORTED_QUERY
ZOOM_event(int no, ZOOM_connection *cs)
wait for events on connection(s) (BLOCKING)
#define ZOOM_ERROR_ES_INVALID_SYNTAX
#define ZOOM_ERROR_ES_INVALID_ACTION
ZOOM_options_getl(ZOOM_options opt, const char *name, int *lenp)
struct ZOOM_package_p * ZOOM_package
typedefZOOM_BEGIN_CDECL struct ZOOM_options_p * ZOOM_options
ZOOM_connection_set_mask(ZOOM_connection c, int mask)
set socket mask for connection (DO NOT call outside zoom)
ZOOM_options_get_int(ZOOM_options opt, const char *name, int defa)
ZOOM_options_set(ZOOM_options opt, const char *name, const char *v)
ZOOM_facet_field_name(ZOOM_facet_field facet_field)
ZOOM_options_set_int(ZOOM_options opt, const char *name, int value)
#define ZOOM_ERROR_ES_INVALID_VERSION
#define ZOOM_ERROR_CONNECTION_LOST
ZOOM_options_setl(ZOOM_options opt, const char *name, const char *value, int len)
ZOOM_connection_option_set(ZOOM_connection c, const char *key, const char *val)
#define ZOOM_ERROR_DECODE
#define ZOOM_ERROR_INVALID_QUERY
struct ZOOM_connection_p * ZOOM_connection
ZOOM_connection_close(ZOOM_connection c)
#define ZOOM_EVENT_SEND_APDU
ZOOM_options_get(ZOOM_options opt, const char *name)
#define ZOOM_EVENT_RECV_SEARCH
ZOOM_connection_exec_task(ZOOM_connection c)
executes non-blocking tasks for connection
#define ZOOM_ERROR_ENCODE