Implemented bend_sort_rr handler for frontend server.
[yaz-moved-to-github.git] / include / backend.h
index b531fe3..278978b 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: backend.h,v $
- * Revision 1.24  1999-03-31 11:18:24  adam
+ * Revision 1.27  1999-10-11 10:01:24  adam
+ * Implemented bend_sort_rr handler for frontend server.
+ *
+ * Revision 1.26  1999/06/17 10:54:44  adam
+ * Added facility to specify implementation version - and name
+ * for server.
+ *
+ * Revision 1.25  1999/06/01 14:29:12  adam
+ * Work on Extended Services.
+ *
+ * Revision 1.24  1999/03/31 11:18:24  adam
  * Implemented odr_strdup. Added Reference ID to backend server API.
  *
  * Revision 1.23  1998/10/13 16:12:23  adam
@@ -189,6 +199,23 @@ typedef struct bend_scanresult
     char *errstring;
 } bend_scanresult;
 
+typedef struct bend_scan_rr {
+    int num_bases;      /* number of elements in databaselist */
+    char **basenames;   /* databases to search */
+    oid_value attributeset;
+    Z_ReferenceId *referenceId; /* reference ID */
+    Z_AttributesPlusTerm *term;
+    ODR stream;         /* encoding stream - memory source if required */
+
+    int term_position;  /* desired index of term in result list/returned */
+    int num_entries;    /* number of entries requested/returned */
+
+    struct scan_entry *entries;
+    bend_scan_status status;
+    int errcode;
+    char *errstring;
+} bend_scan_rr;
+
 YAZ_EXPORT bend_scanresult *bend_scan(void *handle, bend_scanrequest *r,
                                       int *fd);
 YAZ_EXPORT bend_scanresult *bend_scanresponse(void *handle);
@@ -231,7 +258,7 @@ typedef struct bend_esrequest_rr
     Z_ReferenceId *referenceId;/* reference ID */
     bend_request request;
     bend_association association;
-    int errcode;               /* 0==success */
+    int errcode;               /* 0==success, -1==accepted, >0 = failure */
     char *errstring;           /* system error string or NULL */
 } bend_esrequest_rr;
 
@@ -242,11 +269,14 @@ typedef struct bend_initrequest
     ODR stream;                /* encoding stream */
     Z_ReferenceId *referenceId;/* reference ID */
     
+    char *implementation_name;
+    char *implementation_version;
     int (*bend_sort) (void *handle, bend_sort_rr *rr);
     int (*bend_search) (void *handle, bend_search_rr *rr);
     int (*bend_present) (void *handle, bend_present_rr *rr);
     int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr);
     int (*bend_delete)(void *handle, bend_delete_rr *rr);
+    int (*bend_scan)(void *handle, bend_scan_rr *rr);
 } bend_initrequest;
 
 typedef struct bend_initresult