From 8183ba06bf6e3e7df8eb3094be1adfbcee0746a9 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 19 Jun 2006 13:12:04 +0000 Subject: [PATCH] Version 1.0.1. Added assignment operator for class Yaz_Z_Query. --- NEWS | 2 ++ configure.ac | 4 ++-- debian/rules | 2 +- include/yazpp/z-query.h | 8 +++++--- src/yaz-z-query.cpp | 27 ++++++++++++++++++++------- 5 files changed, 30 insertions(+), 13 deletions(-) diff --git a/NEWS b/NEWS index 74ee902..cfa2ce2 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +Added assignment operator for class Yaz_Z_Query. + --- 1.0.0 2006/05/01 On Windows, DEBUG=1 produces yazppd.{lib,dll}. DEBUG=0 producess diff --git a/configure.ac b/configure.ac index 5349e6d..7a8e114 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ dnl YAZ++ Toolkit, Index Data 1994-2006 dnl See the file LICENSE for details. -dnl $Id: configure.ac,v 1.7 2006-06-02 10:57:55 adam Exp $ +dnl $Id: configure.ac,v 1.8 2006-06-19 13:12:04 adam Exp $ AC_PREREQ(2.59) -AC_INIT([yazpp],[1.0.0],[adam@indexdata.dk]) +AC_INIT([yazpp],[1.0.1],[adam@indexdata.dk]) AC_CONFIG_SRCDIR(configure.ac) AC_CONFIG_AUX_DIR([config]) AM_INIT_AUTOMAKE([1.8]) diff --git a/debian/rules b/debian/rules index 1cfe75d..938f20c 100755 --- a/debian/rules +++ b/debian/rules @@ -108,7 +108,7 @@ binary-arch: build install dh_fixperms # dh_perl # dh_python - dh_makeshlibs -V 'libyazpp1 (>= 1.0.0)' + dh_makeshlibs -V 'libyazpp1 (>= 1.0.1)' dh_installdeb dh_shlibdeps -l debian/libyazpp1/usr/lib dh_gencontrol diff --git a/include/yazpp/z-query.h b/include/yazpp/z-query.h index 7f1965e..3e792a6 100644 --- a/include/yazpp/z-query.h +++ b/include/yazpp/z-query.h @@ -2,7 +2,7 @@ * Copyright (c) 1998-2005, Index Data. * See the file LICENSE for details. * - * $Id: z-query.h,v 1.1 2006-03-29 13:14:15 adam Exp $ + * $Id: z-query.h,v 1.2 2006-06-19 13:12:06 adam Exp $ */ #ifndef YAZPP_Z_QUERY_INCLUDED @@ -17,8 +17,10 @@ namespace yazpp_1 { */ class YAZ_EXPORT Yaz_Z_Query : public Yaz_Query { public: - /// Make Query from rpn string + /// Construct query Yaz_Z_Query(); + /// Copy construct + Yaz_Z_Query(const Yaz_Z_Query &q); /// Delete Query virtual ~Yaz_Z_Query(); /// Set RPN @@ -30,7 +32,7 @@ class YAZ_EXPORT Yaz_Z_Query : public Yaz_Query { /// print query void print(char *str, int len); /// match query - int match(Yaz_Z_Query *other); + int match(const Yaz_Z_Query *other); /// Copy Yaz_Z_Query &operator=(const Yaz_Z_Query &); /// Assign RPN string to it 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; -- 1.7.10.4