X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fbackend.h;h=32f87a8613c115562913549d29bef1852bb02855;hp=2cd474555d5f2f69987db45279b3b1a56ed450e5;hb=cb182c3eb21ca4405d0c9f928ceb33f3fd2f95ba;hpb=63ce3b67bdea2b7cd0531f3f11ccbc8c94753455 diff --git a/include/backend.h b/include/backend.h index 2cd4745..32f87a8 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,24 @@ * OF THIS SOFTWARE. * * $Log: backend.h,v $ - * Revision 1.23 1998-10-13 16:12:23 adam + * Revision 1.28 1999-11-04 14:58:44 adam + * Added status elements for backend delete result set handler. + * Updated delete result result set command for client. + * + * 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 * Added support for Surrogate Diagnostics for Scan Term entries. * * Revision 1.22 1998/09/02 12:41:51 adam @@ -72,6 +89,7 @@ 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 */ @@ -91,6 +109,7 @@ 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 */ @@ -109,6 +128,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; @@ -127,6 +147,7 @@ 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 req */ @@ -153,6 +174,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 */ @@ -167,7 +189,7 @@ struct scan_entry { }; typedef enum { - BEND_SCAN_SUCCESS, /* ok */ + BEND_SCAN_SUCCESS, /* ok */ BEND_SCAN_PARTIAL /* not all entries could be found */ } bend_scan_status; @@ -181,6 +203,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); @@ -190,7 +229,9 @@ typedef struct bend_delete_rr { int function; int num_setnames; char **setnames; - int delete_status; + Z_ReferenceId *referenceId; + int delete_status; /* status for the whole operation */ + int *statuses; /* status each set - indexed as setnames */ ODR stream; } bend_delete_rr; @@ -205,6 +246,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; @@ -216,10 +258,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; @@ -228,12 +272,16 @@ typedef struct bend_initrequest char *configname; Z_IdAuthentication *auth; 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