projects
/
yazpp-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added ZOOM.
[yazpp-moved-to-github.git]
/
src
/
yaz-z-query.cpp
diff --git
a/src/yaz-z-query.cpp
b/src/yaz-z-query.cpp
index
e7d9b48
..
c94bd11
100644
(file)
--- a/
src/yaz-z-query.cpp
+++ b/
src/yaz-z-query.cpp
@@
-1,24
+1,21
@@
/*
/*
- * Copyright (c) 1998-1999, Index Data.
+ * Copyright (c) 1998-2001, Index Data.
* See the file LICENSE for details.
* See the file LICENSE for details.
- * Sebastian Hammer, Adam Dickmeiss
*
*
- * $Log: yaz-z-query.cpp,v $
- * Revision 1.1 1999-03-23 14:17:57 adam
- * More work on timeout handling. Work on yaz-client.
- *
+ * $Id: yaz-z-query.cpp,v 1.10 2001-11-04 22:36:21 adam Exp $
*/
*/
-#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);
Yaz_Z_Query::Yaz_Z_Query()
{
odr_encode = odr_createmem (ODR_ENCODE);
odr_decode = odr_createmem (ODR_DECODE);
+ odr_print = odr_createmem (ODR_PRINT);
}
}
-void Yaz_Z_Query::set_rpn (const char *rpn)
+int Yaz_Z_Query::set_rpn (const char *rpn)
{
buf = 0;
odr_reset (odr_encode);
{
buf = 0;
odr_reset (odr_encode);
@@
-26,17
+23,19
@@
void Yaz_Z_Query::set_rpn (const char *rpn)
query->which = Z_Query_type_1;
query->u.type_1 = p_query_rpn (odr_encode, PROTO_Z3950, rpn);
if (!query->u.type_1)
query->which = Z_Query_type_1;
query->u.type_1 = p_query_rpn (odr_encode, PROTO_Z3950, rpn);
if (!query->u.type_1)
- return;
- if (!z_Query (odr_encode, &query, 0))
- return;
+ 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);
buf = odr_getbuf (odr_encode, &len, 0);
+ return len;
}
void Yaz_Z_Query::set_Z_Query(Z_Query *z_query)
{
buf = 0;
odr_reset (odr_encode);
}
void Yaz_Z_Query::set_Z_Query(Z_Query *z_query)
{
buf = 0;
odr_reset (odr_encode);
- if (!z_Query (odr_encode, &z_query, 0))
+ if (!z_Query (odr_encode, &z_query, 0, 0))
return;
buf = odr_getbuf (odr_encode, &len, 0);
}
return;
buf = odr_getbuf (odr_encode, &len, 0);
}
@@
-45,6
+44,7
@@
Yaz_Z_Query::~Yaz_Z_Query()
{
odr_destroy (odr_encode);
odr_destroy (odr_decode);
{
odr_destroy (odr_encode);
odr_destroy (odr_decode);
+ odr_destroy (odr_print);
}
Z_Query *Yaz_Z_Query::get_Z_Query ()
}
Z_Query *Yaz_Z_Query::get_Z_Query ()
@@
-53,7
+53,7
@@
Z_Query *Yaz_Z_Query::get_Z_Query ()
if (!buf)
return 0;
odr_setbuf (odr_decode, buf, len, 0);
if (!buf)
return 0;
odr_setbuf (odr_decode, buf, len, 0);
- if (!z_Query(odr_decode, &query, 0))
+ if (!z_Query(odr_decode, &query, 0, 0))
return 0;
return query;
}
return 0;
return query;
}
@@
-62,3
+62,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;
+}