X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Futil.cpp;h=15aa7aea4ffb7be59ba8ba4b5bd5e9d2f1161c66;hb=2e6b6e87fae70c8acbcd7c428ca511d7095f1d55;hp=38fd9e2f73230bc525518d8e5c52954d4d5cc14f;hpb=84e8420d3ac503078b37b947b5bc71fa2fe56801;p=metaproxy-moved-to-github.git diff --git a/src/util.cpp b/src/util.cpp index 38fd9e2..15aa7ae 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,4 +1,4 @@ -/* $Id: util.cpp,v 1.8 2006-01-17 16:56:48 adam Exp $ +/* $Id: util.cpp,v 1.9 2006-01-17 17:55:40 adam Exp $ Copyright (c) 2005, Index Data. %LICENSE% @@ -11,6 +11,32 @@ #include #include "util.hpp" +void yp2::util::piggyback(int smallSetUpperBound, + int largeSetLowerBound, + int mediumSetPresentNumber, + int result_set_size, + int &number_to_present) +{ + // deal with piggyback + + if (result_set_size < smallSetUpperBound) + { + // small set . Return all records in set + number_to_present = result_set_size; + } + else if (result_set_size > largeSetLowerBound) + { + // large set . Return no records + number_to_present = 0; + } + else + { + // medium set . Return mediumSetPresentNumber records + number_to_present = mediumSetPresentNumber; + if (number_to_present > result_set_size) + number_to_present = result_set_size; + } +} bool yp2::util::pqf(ODR odr, Z_APDU *apdu, const std::string &q) { YAZ_PQF_Parser pqf_parser = yaz_pqf_create();