From: Sebastian Hammer Date: Mon, 16 Oct 1995 13:51:41 +0000 (+0000) Subject: Changes to provide Especs to the backend. X-Git-Tag: YAZ.1.8~897 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=a3fb25600e5a7366e761b46c419462080fc13f73;ds=sidebyside Changes to provide Especs to the backend. --- diff --git a/include/backend.h b/include/backend.h index e7ef944..2c45752 100644 --- a/include/backend.h +++ b/include/backend.h @@ -71,6 +71,7 @@ typedef struct bend_fetchrequest char *setname; /* set name */ int number; /* record number */ oid_value format; /* One of the CLASS_RECSYN members */ + Z_RecordComposition *comp; /* Formatting instructions */ ODR stream; /* encoding stream - memory source if required */ } bend_fetchrequest; diff --git a/include/dmalloc.h b/include/dmalloc.h index 59b1ffb..a68b59b 100644 --- a/include/dmalloc.h +++ b/include/dmalloc.h @@ -24,7 +24,10 @@ * OF THIS SOFTWARE. * * $Log: dmalloc.h,v $ - * Revision 1.4 1995-09-29 17:12:02 quinn + * Revision 1.5 1995-10-16 13:51:43 quinn + * Changes to provide Especs to the backend. + * + * Revision 1.4 1995/09/29 17:12:02 quinn * Smallish * * Revision 1.3 1995/09/27 15:02:47 quinn @@ -48,8 +51,6 @@ #ifdef DEBUG_MALLOC -#include - #ifdef malloc #undef malloc #endif diff --git a/include/prt-esp.h b/include/prt-esp.h index ce0f3b8..26e947b 100644 --- a/include/prt-esp.h +++ b/include/prt-esp.h @@ -137,7 +137,7 @@ typedef struct Z_Espec1 Z_Variant *defaultVariantRequest; /* OPTIONAL */ int *defaultTagType; /* OPTIONAL */ int num_elements; - Z_ElementRequest *elements; /* OPTIONAL */ + Z_ElementRequest **elements; /* OPTIONAL */ } Z_Espec1; int z_Espec1(ODR o, Z_Espec1 **p, int opt); diff --git a/include/yconfig.h b/include/yconfig.h index f2a09ff..879943b 100644 --- a/include/yconfig.h +++ b/include/yconfig.h @@ -1,6 +1,8 @@ #ifndef YCONFIG_H #define YCONFIG_H +#include + #ifdef WINDOWS #define MDF #else diff --git a/server/seshigh.c b/server/seshigh.c index 7e88771..2722d43 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.48 1995-10-06 08:51:20 quinn + * Revision 1.49 1995-10-16 13:51:53 quinn + * Changes to provide Especs to the backend. + * + * Revision 1.48 1995/10/06 08:51:20 quinn * Added Write-buffer. * * Revision 1.47 1995/08/29 14:24:16 quinn @@ -807,7 +810,7 @@ static Z_DiagRecs *diagrecs(oid_proto proto, int error, char *addinfo) #define MAX_RECORDS 256 static Z_Records *pack_records(association *a, char *setname, int start, - int *num, Z_ElementSetNames *esn, + int *num, Z_RecordComposition *comp, int *next, int *pres, oid_value format) { int recno, total_length = 0, toget = *num; @@ -848,6 +851,7 @@ static Z_Records *pack_records(association *a, char *setname, int start, } freq.setname = setname; freq.number = recno; + freq.comp = comp; freq.format = format; freq.stream = a->encode; if (!(fres = bend_fetch(a->backend, &freq, 0))) @@ -1036,24 +1040,25 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb, else { static int toget; - Z_ElementSetNames *setnames; + Z_RecordComposition comp; static int presst = 0; resp.records = 0; resp.resultCount = &bsrt->hits; + comp.which = Z_RecordComp_simple; /* how many records does the user agent want, then? */ if (bsrt->hits <= *req->smallSetUpperBound) { toget = bsrt->hits; - setnames = req->smallSetElementSetNames; + comp.u.simple = req->smallSetElementSetNames; } else if (bsrt->hits < *req->largeSetLowerBound) { toget = *req->mediumSetPresentNumber; if (toget > bsrt->hits) toget = bsrt->hits; - setnames = req->mediumSetElementSetNames; + comp.u.simple = req->mediumSetElementSetNames; } else toget = 0; @@ -1069,7 +1074,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb, else form = prefformat->value; resp.records = pack_records(assoc, req->resultSetName, 1, - &toget, setnames, &next, &presst, form); + &toget, &comp, &next, &presst, form); if (!resp.records) return 0; resp.numberOfRecordsReturned = &toget; @@ -1133,7 +1138,8 @@ static Z_APDU *process_presentRequest(association *assoc, request *reqb, form = prefformat->value; num = *req->numberOfRecordsRequested; resp.records = pack_records(assoc, req->resultSetId, - *req->resultSetStartPoint, &num, 0, &next, &presst, form); + *req->resultSetStartPoint, &num, req->recordComposition, &next, + &presst, form); if (!resp.records) return 0; resp.numberOfRecordsReturned = #