X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Futil.cpp;h=ea6c9310e23b886ac1cd43689326b1f26ac3d101;hb=e6db0e02a1c60fca3405cb5ecec96d2176a0be09;hp=a6b57be4b73800850b8242c0bdfc82a21c4ea091;hpb=7dcf766ccdb4773635481a86b1a43c3c86c32d42;p=metaproxy-moved-to-github.git diff --git a/src/util.cpp b/src/util.cpp index a6b57be..ea6c931 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2011 Index Data + Copyright (C) 2005-2012 Index Data Metaproxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -24,6 +24,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include +#include #include @@ -188,6 +189,18 @@ void mp_util::piggyback_sr(Z_SearchRequest *sreq, element_set_name); } +void mp_util::piggyback(int smallSetUpperBound, + int largeSetLowerBound, + int mediumSetPresentNumber, + int result_set_size, + int &number_to_present) +{ + Odr_int tmp = number_to_present; + piggyback(smallSetUpperBound, largeSetLowerBound, mediumSetPresentNumber, + 0, 0, result_set_size, tmp, 0); + number_to_present = tmp; +} + void mp_util::piggyback(Odr_int smallSetUpperBound, Odr_int largeSetLowerBound, Odr_int mediumSetPresentNumber, @@ -672,6 +685,25 @@ Z_ReferenceId **mp_util::get_referenceId(const Z_APDU *apdu) return 0; } +std::string mp_util::uri_encode(std::string s) +{ + char *x = (char *) xmalloc(1 + s.length() * 3); + yaz_encode_uri_component(x, s.c_str()); + std::string result(x); + xfree(x); + return result; +} + + +std::string mp_util::uri_decode(std::string s) +{ + char *x = (char *) xmalloc(1 + s.length()); + yaz_decode_uri_component(x, s.c_str(), s.length()); + std::string result(x); + xfree(x); + return result; +} + /* * Local variables: