X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=2722d439c010e826cc15693a95e6f89810001539;hb=a3fb25600e5a7366e761b46c419462080fc13f73;hp=7e88771d0553c4598e29a9dca2a4aa210cb04148;hpb=b22117b182e372c6d1adc77c7da6a1de508e8594;p=yaz-moved-to-github.git 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 = #