Merge branch 'icu_refactor' into yaz4
[yaz-moved-to-github.git] / include / yaz / backend.h
index 2ebeee8..5eac060 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2008 Index Data.
+ * Copyright (C) 1995-2009 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:
@@ -24,7 +24,6 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-/* $Id: backend.h,v 1.48 2007-05-30 08:12:17 adam Exp $ */
 
 /** 
  * \file backend.h
@@ -62,7 +61,7 @@ typedef struct {
     bend_request request;
     bend_association association;
     int *fd;
-    int hits;                  /* number of hits */
+    Odr_int hits;                  /* number of hits */
     int errcode;               /* 0==OK */
     char *errstring;           /* system error string or NULL */
     Z_OtherInformation *search_info; /* additional search info */
@@ -71,6 +70,8 @@ typedef struct {
     int *srw_setnameIdleTime;  /* holds SRU/SRW life-time */
     int estimated_hit_count;   /* if hit count is estimated */
     int partial_resultset;     /* if result set is partial */
+    Z_SRW_extra_arg *extra_args; /* extra URL arguments */
+    char *extra_response_data;   /* extra XML response. */
 } bend_search_rr;
 
 /** \brief Information for present handler. Does not replace bend_fetch. */
@@ -86,7 +87,6 @@ typedef struct {
     bend_request request;
     bend_association association;
 
-    int hits;                  /* number of hits */
     int errcode;               /* 0==OK */
     char *errstring;           /* system error string or NULL */
 } bend_present_rr;
@@ -115,7 +115,7 @@ typedef struct bend_fetch_rr {
 /** \brief Information for scan entry */
 struct scan_entry {
     char *term;         /* the returned scan term */
-    int occurrences;    /* no of occurrences or -1 if error (see below) */
+    Odr_int occurrences;/* no of occurrences or -1 if error (see below) */
     int errcode;        /* Bib-1 diagnostic code; only used when occur.= -1 */
     char *errstring;    /* Additional string */
     char *display_term;
@@ -136,8 +136,8 @@ typedef struct bend_scan_rr {
     ODR stream;         /* encoding stream - memory source if required */
     ODR print;          /* printing stream */
 
-    int *step_size;     /* step size */
-    int term_position;  /* desired index of term in result list/returned */
+    Odr_int *step_size;     /* step size */
+    Odr_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
@@ -179,8 +179,8 @@ typedef struct bend_delete_rr {
     int num_setnames;
     char **setnames;
     Z_ReferenceId *referenceId;
-    int delete_status;      /* status for the whole operation */
-    int *statuses;          /* status each set - indexed as setnames */
+    int delete_status;    /* status for the whole operation */
+    Odr_int *statuses;    /* status each set - indexed as setnames */
     ODR stream;
     ODR print; 
 } bend_delete_rr;
@@ -309,6 +309,8 @@ typedef struct bend_initrequest
     /** \brief SRU record update handler */
     int (*bend_srw_update)(void *handle, bend_update_rr *rr);
 
+    /** \brief whether named result sets are supported (0=disable, 1=enable) */
+    int named_result_sets;
 } bend_initrequest;
 
 /** \brief result for init handler (must be filled by handler) */
@@ -374,8 +376,6 @@ YAZ_EXPORT int statserv_main(
     int argc, char **argv,
     bend_initresult *(*bend_init)(bend_initrequest *r),
     void (*bend_close)(void *handle));
-YAZ_EXPORT int statserv_start(int argc, char **argv);
-YAZ_EXPORT void statserv_closedown(void);
 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);
@@ -388,6 +388,7 @@ YAZ_END_CDECL
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab