X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fyaz-z-query.cpp;h=e6c84f53b6e928f563b106bbc77a0719015bac4f;hb=acd0ff2a7f87fb33a82475dcc7aa44cd7189d4c0;hp=895fbb00fbc6fdf2e4d619e4531abe31fbaa8c92;hpb=3109185a2036377894be1dd303d899a305b44281;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-query.cpp b/src/yaz-z-query.cpp index 895fbb0..e6c84f5 100644 --- a/src/yaz-z-query.cpp +++ b/src/yaz-z-query.cpp @@ -4,7 +4,24 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: yaz-z-query.cpp,v $ - * Revision 1.3 1999-04-20 10:30:05 adam + * Revision 1.7 2000-05-10 11:36:58 ian + * Added default parameters for refid to request functions. + * Added default parameter for result set name to search and present request. + * Commented out forced logging of PDU contents. + * Added send_deleteResultSetRequest + * + * Revision 1.6 1999/12/06 13:52:45 adam + * Modified for new location of YAZ header files. Experimental threaded + * operation. + * + * Revision 1.5 1999/04/27 07:52:13 adam + * Improved proxy; added query match for result set re-use. + * + * Revision 1.4 1999/04/21 12:09:01 adam + * Many improvements. Modified to proxy server to work with "sessions" + * based on cookies. + * + * Revision 1.3 1999/04/20 10:30:05 adam * Implemented various stuff for client and proxy. Updated calls * to ODR to reflect new name parameter. * @@ -17,12 +34,13 @@ */ #include -#include +#include Yaz_Z_Query::Yaz_Z_Query() { odr_encode = odr_createmem (ODR_ENCODE); odr_decode = odr_createmem (ODR_DECODE); + odr_print = odr_createmem (ODR_PRINT); } int Yaz_Z_Query::set_rpn (const char *rpn) @@ -36,6 +54,7 @@ int Yaz_Z_Query::set_rpn (const char *rpn) return -1; if (!z_Query (odr_encode, &query, 0, 0)) return -1; + // z_Query(odr_print, &query, 0, 0); buf = odr_getbuf (odr_encode, &len, 0); return len; } @@ -53,6 +72,7 @@ Yaz_Z_Query::~Yaz_Z_Query() { odr_destroy (odr_encode); odr_destroy (odr_decode); + odr_destroy (odr_print); } Z_Query *Yaz_Z_Query::get_Z_Query () @@ -70,3 +90,14 @@ void Yaz_Z_Query::print(char *str, int len) { } + +int Yaz_Z_Query::match(Yaz_Z_Query *other) +{ + if (len != other->len) + return 0; + if (!buf || !other->buf) + return 0; + if (memcmp(buf, other->buf, len)) + return 0; + return 1; +}