X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fyaz-z-query.cpp;h=f149b384c5efc52932aedea6759b1200ba59746d;hb=8183ba06bf6e3e7df8eb3094be1adfbcee0746a9;hp=d0276408bd369fe7db9317c629dea5e017311ff5;hpb=1ab37c2eae194fafbdc1485f96aae60df6ba4c57;p=yazpp-moved-to-github.git diff --git a/src/yaz-z-query.cpp b/src/yaz-z-query.cpp index d027640..f149b38 100644 --- a/src/yaz-z-query.cpp +++ b/src/yaz-z-query.cpp @@ -2,12 +2,13 @@ * Copyright (c) 1998-2005, Index Data. * See the file LICENSE for details. * - * $Id: yaz-z-query.cpp,v 1.19 2006-03-29 13:14:18 adam Exp $ + * $Id: yaz-z-query.cpp,v 1.20 2006-06-19 13:12:07 adam Exp $ */ #include #include #include +#include using namespace yazpp_1; @@ -18,21 +19,33 @@ Yaz_Z_Query::Yaz_Z_Query() odr_print = odr_createmem(ODR_PRINT); } -Yaz_Z_Query& Yaz_Z_Query::operator=(const Yaz_Z_Query &p) + +Yaz_Z_Query::Yaz_Z_Query(const Yaz_Z_Query &q) +{ + odr_encode = odr_createmem(ODR_ENCODE); + odr_decode = odr_createmem(ODR_DECODE); + odr_print = odr_createmem(ODR_PRINT); + + m_len = q.m_len; + m_buf = (char*) odr_malloc(odr_encode, m_len); + memcpy(m_buf, q.m_buf, m_len); +} + +Yaz_Z_Query& Yaz_Z_Query::operator=(const Yaz_Z_Query &q) { - if (this != &p) + if (this != &q) { odr_reset(odr_encode); - if (!p.m_buf) + if (!q.m_buf) { m_buf = 0; m_len = 0; } else { - m_len = p.m_len; + m_len = q.m_len; m_buf = (char*) odr_malloc(odr_encode, m_len); - memcpy(m_buf, p.m_buf, m_len); + memcpy(m_buf, q.m_buf, m_len); } } return *this; @@ -112,7 +125,7 @@ void Yaz_Z_Query::print(char *str, int len) odr_reset(odr_decode); } -int Yaz_Z_Query::match(Yaz_Z_Query *other) +int Yaz_Z_Query::match(const Yaz_Z_Query *other) { if (m_len != other->m_len) return 0;