Version 1.0.1. Added assignment operator for class Yaz_Z_Query.
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 19 Jun 2006 13:12:04 +0000 (13:12 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 19 Jun 2006 13:12:04 +0000 (13:12 +0000)
NEWS
configure.ac
debian/rules
include/yazpp/z-query.h
src/yaz-z-query.cpp

diff --git a/NEWS b/NEWS
index 74ee902..cfa2ce2 100644 (file)
--- 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
index 5349e6d..7a8e114 100644 (file)
@@ -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])
index 1cfe75d..938f20c 100755 (executable)
@@ -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
index 7f1965e..3e792a6 100644 (file)
@@ -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
index d027640..f149b38 100644 (file)
@@ -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 <yaz/logrpn.h>
 #include <yazpp/z-query.h>
 #include <yaz/pquery.h>
+#include <assert.h>
 
 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;