X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fyaz-z-query.cpp;h=641934cfb5fc61e36b55228f3abc5e9cd583cd1a;hb=86726b00b052694e65b036c262f5fe9096554175;hp=c0bed5eee5b2d7f1e32a202d3462db6e1a2c5ac5;hpb=28588b9224eb5189af32b10f440ef2a917a05ea2;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-query.cpp b/src/yaz-z-query.cpp index c0bed5e..641934c 100644 --- a/src/yaz-z-query.cpp +++ b/src/yaz-z-query.cpp @@ -2,12 +2,14 @@ * Copyright (c) 1998-2003, Index Data. * See the file LICENSE for details. * - * $Id: yaz-z-query.cpp,v 1.12 2003-10-01 13:13:51 adam Exp $ + * $Id: yaz-z-query.cpp,v 1.16 2005-06-02 06:40:21 adam Exp $ */ #include #include +using namespace yazpp_1; + Yaz_Z_Query::Yaz_Z_Query() { odr_encode = odr_createmem (ODR_ENCODE); @@ -17,7 +19,7 @@ Yaz_Z_Query::Yaz_Z_Query() int Yaz_Z_Query::set_rpn (const char *rpn) { - buf = 0; + m_buf = 0; odr_reset (odr_encode); Z_Query *query = (Z_Query*) odr_malloc (odr_encode, sizeof(*query)); query->which = Z_Query_type_1; @@ -27,17 +29,17 @@ int Yaz_Z_Query::set_rpn (const char *rpn) 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; + m_buf = odr_getbuf (odr_encode, &m_len, 0); + return m_len; } void Yaz_Z_Query::set_Z_Query(Z_Query *z_query) { - buf = 0; + m_buf = 0; odr_reset (odr_encode); if (!z_Query (odr_encode, &z_query, 0, 0)) return; - buf = odr_getbuf (odr_encode, &len, 0); + m_buf = odr_getbuf (odr_encode, &m_len, 0); } Yaz_Z_Query::~Yaz_Z_Query() @@ -50,10 +52,10 @@ Yaz_Z_Query::~Yaz_Z_Query() Z_Query *Yaz_Z_Query::get_Z_Query () { Z_Query *query; - if (!buf) + if (!m_buf) return 0; odr_reset(odr_decode); - odr_setbuf(odr_decode, buf, len, 0); + odr_setbuf(odr_decode, m_buf, m_len, 0); if (!z_Query(odr_decode, &query, 0, 0)) return 0; return query; @@ -63,9 +65,9 @@ void Yaz_Z_Query::print(char *str, int len) { Z_Query *query; *str = 0; - if (!buf) + if (!m_buf) return; - odr_setbuf (odr_decode, buf, len, 0); + odr_setbuf (odr_decode, m_buf, m_len, 0); if (!z_Query(odr_decode, &query, 0, 0)) return; WRBUF wbuf = zquery2pquery(query); @@ -78,18 +80,18 @@ void Yaz_Z_Query::print(char *str, int len) } else strcpy(str, wrbuf_buf(wbuf)); + wrbuf_free(wbuf,1); } odr_reset(odr_decode); - wrbuf_free(wbuf,1); } int Yaz_Z_Query::match(Yaz_Z_Query *other) { - if (len != other->len) + if (m_len != other->m_len) return 0; - if (!buf || !other->buf) + if (!m_buf || !other->m_buf) return 0; - if (memcmp(buf, other->buf, len)) + if (memcmp(m_buf, other->m_buf, m_len)) return 0; return 1; } @@ -179,10 +181,9 @@ int Yaz_Z_Query::rpn2pquery(Z_RPNStructure *s, WRBUF buf) WRBUF Yaz_Z_Query::zquery2pquery(Z_Query *q) { - WRBUF buf = wrbuf_alloc(); - if (q->which != Z_Query_type_1 && q->which != Z_Query_type_101) return 0; + WRBUF buf = wrbuf_alloc(); if (q->u.type_1->attributeSetId) { /* Output attribute set ID */ wrbuf_puts(buf, "@attrset ");