Moved header files to include/yaz++. Switched to libtool and automake.
[yazpp-moved-to-github.git] / src / yaz-z-query.cpp
index 895fbb0..9846d84 100644 (file)
@@ -1,10 +1,33 @@
 /*
- * Copyright (c) 1998-1999, Index Data.
+ * Copyright (c) 1998-2000, Index Data.
  * See the file LICENSE for details.
- * Sebastian Hammer, Adam Dickmeiss
  * 
  * $Log: yaz-z-query.cpp,v $
- * Revision 1.3  1999-04-20 10:30:05  adam
+ * Revision 1.9  2000-10-11 11:58:17  adam
+ * Moved header files to include/yaz++. Switched to libtool and automake.
+ * Configure script creates yaz++-config script.
+ *
+ * Revision 1.8  2000/09/08 10:23:42  adam
+ * Added skeleton of yaz-z-server.
+ *
+ * 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.
  *
  *
  */
 
-#include <yaz-z-query.h>
-#include <pquery.h>
+#include <yaz++/yaz-z-query.h>
+#include <yaz/pquery.h>
 
 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 +60,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 +78,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 +96,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;
+}