record_conv: modify new API for conversion types
[yaz-moved-to-github.git] / include / yaz / backend.h
index e6681a7..319b91d 100644 (file)
@@ -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);