/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2010 Index Data.
+ * Copyright (C) 1995-2013 Index Data.
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/**
+/**
* \file backend.h
* \brief Header for GFS
*
#include <yaz/oid_db.h>
YAZ_BEGIN_CDECL
-
+
typedef struct association *bend_association;
/** \brief Information for Z39.50/SRU search handler
ODR decode; /**< decode stream (input) */
ODR print; /**< print stream (input) */
- bend_association association; /**< GFS association / sesssion (input) */
+ bend_association association; /**< GFS association / session (input) */
Odr_int hits; /**< hits (output) */
int errcode; /**< Diagnostic code / 0 for no error (output) */
char *errstring; /**< Additional info (output) */
int partial_resultset; /**< 1=partial results; 0=full (output)*/
Z_SRW_extra_arg *extra_args; /**< SRU extra request parameters (input) */
char *extra_response_data; /**< SRW extra XML response (output) */
+ Z_OtherInformation *search_input; /**< extra search info request (input) */
+ Odr_int present_number; /**< piggyback present number (>0) (input) */
} bend_search_rr;
/** \brief Information for present handler. Does not replace bend_fetch. */
Z_RecordComposition *comp; /**< Formatting instructions (input) */
ODR stream; /**< encoding stream (input) */
ODR print; /**< printing stream (input) */
- bend_association association; /**< GFS association / sesssion (input) */
+ bend_association association; /**< GFS association / session (input) */
int errcode; /**< Diagnostic code / 0 for no error (output) */
char *errstring; /**< Additional info (output) */
ODR stream; /**< encoding stream (input) */
ODR print; /**< printing stream (input) */
- Odr_int *step_size; /**< step size */
- Odr_int term_position; /**< desired index of term in result list/returned */
+ int *step_size; /**< step size */
+ int term_position; /**< desired index of term in result list/returned */
int num_entries; /**< number of entries requested/returned */
/* scan term entries. The called handler does not have
char *errstring;
char *scanClause; /**< CQL scan clause */
char *setname; /**< Scan in result set (NULL if omitted) */
+ Z_SRW_extra_arg *extra_args; /**< SRU extra request parameters (input) */
+ char *extra_response_data; /**< SRW extra XML response (output) */
} bend_scan_rr;
/** \brief Information for SRU record update handler */
char **setnames;
Z_ReferenceId *referenceId;
int delete_status; /**< status for the whole operation */
- Odr_int *statuses; /**< status each set - indexed as setnames */
+ int *statuses; /**< status each set - indexed as setnames */
ODR stream;
- ODR print;
+ ODR print;
} bend_delete_rr;
/** \brief Information for Z39.50 sort handler */
{
int ItemNo;
Z_ExtendedServicesRequest *esr;
-
+
ODR stream; /* encoding stream */
ODR decode; /* decoding stream */
ODR print; /* printing stream */
This includes both request
information (to be read) and response information which should be
-set by the bend_init handler
+set by the bend_init handler
*/
typedef struct bend_initrequest
{
/** \brief user/name/password to be read */
- Z_IdAuthentication *auth;
+ Z_IdAuthentication *auth;
/** \brief encoding stream (for results) */
ODR stream;
/** \brief printing stream */
ODR print;
/** \brief decoding stream (use stream for results) */
- ODR decode;
+ ODR decode;
/** \brief reference ID */
Z_ReferenceId *referenceId;
/** \brief peer address of client */
- char *peer_name;
-
- /** \brief character set and language negotiation
+ char *peer_name;
+
+ /** \brief character set and language negotiation
- see include/yaz/z-charneg.h
+ see include/yaz/z-charneg.h
*/
Z_CharSetandLanguageNegotiation *charneg_request;
/** \brief character negotiation response */
Z_External *charneg_response;
- /** \brief character set (encoding) for query terms
-
+ /** \brief character set (encoding) for query terms
+
This is NULL by default. It should be set to the native character
set that the backend assumes for query terms */
- char *query_charset;
+ char *query_charset;
+
+ /** \brief whehter query_charset also applies to recors
- /** \brief whehter query_charset also applies to recors
-
Is 0 (No) by default. Set to 1 (yes) if records is in the same
character set as queries. If in doubt, use 0 (No).
*/
char apdufile[ODR_MAXNAME+1]; /**< file for pretty-printed PDUs */
char logfile[ODR_MAXNAME+1]; /**< file for diagnostic output */
char default_listen[1024]; /**< 0 == no default listen */
- enum oid_proto default_proto; /**< PROTO_SR or PROTO_Z3950 */
+ enum oid_proto default_proto; /**< PROTO_SR or PROTO_Z3950 */
int idle_timeout; /**< how many minutes to wait before closing */
int maxrecordsize; /**< maximum value for negotiation */
char configname[ODR_MAXNAME+1]; /**< given to the backend in bend_init */
int background; /**< auto daemon */
char cert_fname[128]; /**< SSL certificate fname */
char xml_config[128]; /**< XML config filename */
+ int keepalive; /**< keep alive if HTTP 1.1 (default: 1) */
} statserv_options_block;
YAZ_EXPORT int statserv_main(