X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fbackend.h;h=319b91d69666071f9d4a40751e50f75f41a8b796;hp=e6681a73ecbbd2d49b259dcbd341061494db2884;hb=a3e65bcd3250b107397675bc65b35b5939355025;hpb=8965b9ad303ed2ef26f55db2224860745a0a5128 diff --git a/include/yaz/backend.h b/include/yaz/backend.h index e6681a7..319b91d 100644 --- a/include/yaz/backend.h +++ b/include/yaz/backend.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data. + * Copyright (C) 1995-2012 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: @@ -43,7 +43,6 @@ YAZ_BEGIN_CDECL -typedef struct request *bend_request; typedef struct association *bend_association; /** \brief Information for Z39.50/SRU search handler @@ -63,9 +62,7 @@ typedef struct { ODR decode; /**< decode stream (input) */ ODR print; /**< print stream (input) */ - bend_request request; /**< GFS request handle (input) */ bend_association association; /**< GFS association / sesssion (input) */ - int *fd; /**< select fd - not working (output) */ Odr_int hits; /**< hits (output) */ int errcode; /**< Diagnostic code / 0 for no error (output) */ char *errstring; /**< Additional info (output) */ @@ -77,6 +74,7 @@ typedef struct { 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) */ } bend_search_rr; /** \brief Information for present handler. Does not replace bend_fetch. */ @@ -89,7 +87,6 @@ typedef struct { Z_RecordComposition *comp; /**< Formatting instructions (input) */ ODR stream; /**< encoding stream (input) */ ODR print; /**< printing stream (input) */ - bend_request request; /**< GFS request handle (input) */ bend_association association; /**< GFS association / sesssion (input) */ int errcode; /**< Diagnostic code / 0 for no error (output) */ @@ -141,8 +138,8 @@ typedef struct bend_scan_rr { 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 @@ -185,7 +182,7 @@ typedef struct bend_delete_rr { 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; } bend_delete_rr; @@ -216,7 +213,6 @@ typedef struct bend_esrequest_rr ODR decode; /* decoding stream */ ODR print; /* printing stream */ Z_ReferenceId *referenceId;/* reference ID */ - bend_request request; bend_association association; int errcode; /* 0==success, -1==accepted, >0 = failure */ char *errstring; /* system error string or NULL */ @@ -229,7 +225,6 @@ typedef struct bend_segment_rr { ODR stream; ODR decode; ODR print; - bend_request request; bend_association association; } bend_segment_rr; @@ -326,18 +321,6 @@ typedef struct bend_initresult void *handle; /* private handle to the backend module */ } bend_initresult; -YAZ_EXPORT void bend_request_send (bend_association a, bend_request req, - Z_APDU *res); - -YAZ_EXPORT bend_request bend_request_mk (bend_association a); - -YAZ_EXPORT void bend_request_destroy (bend_request *req); - -YAZ_EXPORT Z_ReferenceId *bend_request_getid (ODR odr, bend_request req); -YAZ_EXPORT int bend_backend_respond (bend_association a, bend_request req); -YAZ_EXPORT void bend_request_setdata(bend_request r, void *p); -YAZ_EXPORT void *bend_request_getdata(bend_request r); - /** \brief control block for server */ typedef struct statserv_options_block { @@ -375,12 +358,14 @@ typedef struct statserv_options_block 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( int argc, char **argv, bend_initresult *(*bend_init)(bend_initrequest *r), void (*bend_close)(void *handle)); + YAZ_EXPORT statserv_options_block *statserv_getcontrol(void); YAZ_EXPORT void statserv_setcontrol(statserv_options_block *block); YAZ_EXPORT int check_ip_tcpd(void *cd, const char *addr, int len, int type);