57a2c449b6767240cfd938ed68e4588bee208445
[yazpp-moved-to-github.git] / include / yaz++ / z-query.h
1 /*
2  * Copyright (c) 1998-2000, Index Data.
3  * See the file LICENSE for details.
4  * 
5  * $Id: z-query.h,v 1.2 2003-10-01 13:13:51 adam Exp $
6  */
7
8 #include <yaz/proto.h>
9 #include <yaz++/query.h>
10
11 /** Z39.50 Query
12     RPN, etc.
13 */
14 class YAZ_EXPORT Yaz_Z_Query : public Yaz_Query {
15  public:
16     /// Make Query from rpn string
17     Yaz_Z_Query();
18     /// Delete Query
19     virtual ~Yaz_Z_Query();
20     /// Set RPN
21     int set_rpn (const char *rpn);
22     /// Set Z Query
23     void set_Z_Query (Z_Query *z_query);
24     /// Get Z Query
25     Z_Query *get_Z_Query ();
26     /// print query
27     void print(char *str, int len);
28     /// match query
29     int match(Yaz_Z_Query *other);
30  private:
31     char *buf;
32     int len;
33     ODR odr_decode;
34     ODR odr_encode;
35     ODR odr_print;
36     void oid2str(Odr_oid *o, WRBUF buf);
37     int rpn2pquery(Z_RPNStructure *s, WRBUF buf);
38     WRBUF zquery2pquery(Z_Query *q);
39     void pr_term(WRBUF wbuf, char *buf, int len);
40 };