X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-z-server-sr.cpp;h=0fb2ce4a045b945a91acb101a5d724e7d7299015;hb=805b4fdf7b70b0e9b298064f24ceff0c1d38e05b;hp=872da5daffc03e1c8f1394de362ec38aa220002c;hpb=d588f1d530f53c4d38a4a5f954545b06b2751968;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-server-sr.cpp b/src/yaz-z-server-sr.cpp index 872da5d..0fb2ce4 100644 --- a/src/yaz-z-server-sr.cpp +++ b/src/yaz-z-server-sr.cpp @@ -1,11 +1,11 @@ -/* - * Copyright (c) 2000-2004, Index Data. +/* This file is part of the yazpp toolkit. + * Copyright (C) 1998-2013 Index Data and Mike Taylor * See the file LICENSE for details. - * - * $Id: yaz-z-server-sr.cpp,v 1.13 2007-05-08 12:04:50 adam Exp $ - * */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -15,7 +15,7 @@ Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, const char *resultSetName, int start, int xnum, Z_RecordComposition *comp, - int *next, int *pres, + Odr_int *next, Odr_int *pres, Odr_oid *format) { int recno, total_length = 0, toget = xnum, dumped_records = 0; @@ -30,7 +30,7 @@ Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, records->u.databaseOrSurDiagnostics = reclist; reclist->num_records = 0; reclist->records = list; - *pres = Z_PRES_SUCCESS; + *pres = Z_PresentStatus_success; *next = 0; for (recno = start; reclist->num_records < toget; recno++) @@ -47,7 +47,7 @@ Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, if (records->which != Z_Records_DBOSD) { - *pres = Z_PRES_FAILURE; + *pres = Z_PresentStatus_failure; return records; } @@ -68,7 +68,7 @@ Z_Records *Yaz_Facility_Retrieval::pack_records (Z_Server *s, /* record is small enough, really */ if (this_length <= m_preferredMessageSize) { - *pres = Z_PRES_PARTIAL_2; + *pres = Z_PresentStatus_partial_2; break; } if (this_length >= m_maximumRecordSize) @@ -111,15 +111,15 @@ void Yaz_Facility_Retrieval::fetch_via_piggyback (Z_Server *s, { bool_t *sr = (bool_t *)odr_malloc (odr_encode(), sizeof(*sr)); *sr = 1; - + int toget = 0; - + Z_RecordComposition comp, *compp = 0; int hits = *res->resultCount; - - int *nulint = (int *)odr_malloc (odr_encode(), sizeof(*nulint)); + + Odr_int *nulint = (Odr_int *)odr_malloc (odr_encode(), sizeof(*nulint)); *nulint = 0; - + comp.which = Z_RecordComp_simple; /* how many records does the user agent want, then? */ if (hits <= *req->smallSetUpperBound) @@ -136,13 +136,14 @@ void Yaz_Facility_Retrieval::fetch_via_piggyback (Z_Server *s, if ((comp.u.simple = req->mediumSetElementSetNames)) compp = ∁ } - + if (toget && !res->records) { - res->presentStatus = (int *) odr_malloc (odr_encode(), sizeof(int)); - *res->presentStatus = Z_PRES_SUCCESS; + res->presentStatus = (Odr_int *) + odr_malloc (odr_encode(), sizeof(Odr_int)); + *res->presentStatus = Z_PresentStatus_success; res->records = - pack_records(s, req->resultSetName, 1, toget, compp, + pack_records(s, req->resultSetName, 1, toget, compp, res->nextResultSetPosition, res->presentStatus, req->preferredRecordSyntax); @@ -170,7 +171,7 @@ void Yaz_Facility_Retrieval::fetch_via_present (Z_Server *s, Z_PresentResponse *res) { res->records = - pack_records (s, req->resultSetId,*req->resultSetStartPoint, + pack_records (s, req->resultSetId,*req->resultSetStartPoint, *req->numberOfRecordsRequested, req->recordComposition, res->nextResultSetPosition, @@ -186,7 +187,7 @@ int Yaz_Facility_Retrieval::init(Z_Server *s, Z_InitRequest *initRequest, { Z_Options *req = initRequest->options; Z_Options *res = initResponse->options; - + if (ODR_MASK_GET(req, Z_Options_search)) ODR_MASK_SET(res, Z_Options_search); if (ODR_MASK_GET(req, Z_Options_present)) @@ -207,7 +208,7 @@ ODR Yaz_Facility_Retrieval::odr_decode() } int Yaz_Facility_Retrieval::recv(Z_Server *s, Z_APDU *apdu_request) -{ +{ Z_APDU *apdu_response; m_odr_encode = s->odr_encode(); m_odr_decode = s->odr_decode(); @@ -241,6 +242,7 @@ int Yaz_Facility_Retrieval::recv(Z_Server *s, Z_APDU *apdu_request) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab