X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fbackend.h;h=7dbd2112d34b858f9a8b41f3657f489a9613eb22;hb=4e664c278636002a3a0c7897d233a258ac1ec18d;hp=d4dd0b5ca484da5e8734f6cd080eef6658c5b7b2;hpb=b436ce38e1e619d2225c7c75c1f0de841aa13bad;p=yaz-moved-to-github.git diff --git a/include/backend.h b/include/backend.h index d4dd0b5..7dbd211 100644 --- a/include/backend.h +++ b/include/backend.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995-1998, Index Data. + * Copyright (c) 1995-1999, Index Data. * * Permission to use, copy, modify, distribute, and sell this software and * its documentation, in whole or in part, for any purpose, is hereby granted, @@ -24,7 +24,25 @@ * OF THIS SOFTWARE. * * $Log: backend.h,v $ - * Revision 1.19 1998-03-31 11:07:45 adam + * 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 + * Added support for Surrogate Diagnostics for Scan Term entries. + * + * Revision 1.22 1998/09/02 12:41:51 adam + * Added decode stream in bend search structures. + * + * Revision 1.21 1998/07/20 12:38:41 adam + * Implemented delete result set service to server API. + * + * Revision 1.20 1998/05/27 16:57:06 adam + * Support for surrogate diagnostic records added for bend_fetch. + * + * Revision 1.19 1998/03/31 11:07:45 adam * Furhter work on UNIverse resource report. * Added Extended Services handling in frontend server. * @@ -60,8 +78,10 @@ typedef struct int replace_set; /* replace set, if it already exists */ int num_bases; /* number of databases in list */ char **basenames; /* databases to search */ + Z_ReferenceId *referenceId;/* reference ID */ Z_Query *query; /* query structure */ ODR stream; /* encoding stream */ + ODR decode; /* decoding stream */ } bend_searchrequest; /* old search request output */ @@ -78,8 +98,10 @@ typedef struct { int replace_set; /* replace set, if it already exists */ int num_bases; /* number of databases in list */ char **basenames; /* databases to search */ + Z_ReferenceId *referenceId;/* reference ID */ Z_Query *query; /* query structure */ ODR stream; /* encode stream */ + ODR decode; /* decode stream */ bend_request request; bend_association association; @@ -95,6 +117,7 @@ typedef struct { int start; int number; /* record number */ oid_value format; /* One of the CLASS_RECSYN members */ + Z_ReferenceId *referenceId;/* reference ID */ Z_RecordComposition *comp; /* Formatting instructions */ ODR stream; /* encoding stream - memory source if required */ bend_request request; @@ -113,9 +136,11 @@ typedef struct { char *setname; /* set name */ int number; /* record number */ + Z_ReferenceId *referenceId;/* reference ID */ oid_value format; /* One of the CLASS_RECSYN members */ Z_RecordComposition *comp; /* Formatting instructions */ - ODR stream; /* encoding stream - memory source if required */ + ODR stream; /* encoding stream - memory source if req */ + int surrogate_flag; /* surrogate diagnostic flag (rw) */ } bend_fetchrequest; typedef struct @@ -138,6 +163,7 @@ typedef struct int num_bases; /* number of elements in databaselist */ char **basenames; /* databases to search */ oid_value attributeset; + Z_ReferenceId *referenceId; /* reference ID */ Z_AttributesPlusTerm *term; int term_position; /* desired index of term in result list */ int num_entries; /* number of entries requested */ @@ -145,12 +171,14 @@ typedef struct } bend_scanrequest; struct scan_entry { - char *term; - int occurrences; + char *term; /* the returned scan term */ + 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 */ }; typedef enum { - BEND_SCAN_SUCCESS, /* ok */ + BEND_SCAN_SUCCESS, /* ok */ BEND_SCAN_PARTIAL /* not all entries could be found */ } bend_scan_status; @@ -168,21 +196,17 @@ YAZ_EXPORT bend_scanresult *bend_scan(void *handle, bend_scanrequest *r, int *fd); YAZ_EXPORT bend_scanresult *bend_scanresponse(void *handle); -typedef struct bend_deleterequest -{ - char *setname; -} bend_deleterequest; - -typedef struct bend_deleteresult -{ - int errcode; /* 0==success */ - char *errstring; /* system error string or NULL */ -} bend_deleteresult; - -YAZ_EXPORT bend_deleteresult *bend_delete(void *handle, - bend_deleterequest *r, int *fd); -YAZ_EXPORT bend_deleteresult *bend_deleteresponse(void *handle); +/* delete handler */ +typedef struct bend_delete_rr { + int function; + int num_setnames; + char **setnames; + Z_ReferenceId *referenceId; + int delete_status; + ODR stream; +} bend_delete_rr; +/* close handler */ YAZ_EXPORT void bend_close(void *handle); /* sort handler */ @@ -193,6 +217,7 @@ typedef struct bend_sort_rr char *output_setname; Z_SortKeySpecList *sort_sequence; ODR stream; + Z_ReferenceId *referenceId;/* reference ID */ int sort_status; int errcode; @@ -204,10 +229,12 @@ typedef struct bend_esrequest_rr { int ItemNo; Z_ExtendedServicesRequest *esr; + ODR stream; /* encoding stream */ + 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; @@ -216,11 +243,13 @@ typedef struct bend_initrequest char *configname; Z_IdAuthentication *auth; ODR stream; /* encoding stream */ + Z_ReferenceId *referenceId;/* reference ID */ 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); } bend_initrequest; typedef struct bend_initresult @@ -244,7 +273,6 @@ 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); - #ifdef __cplusplus } #endif