/*
 * 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 $
 */

#ifndef YAZPP_Z_QUERY_INCLUDED
#define YAZPP_Z_QUERY_INCLUDED

#include <yaz/proto.h>
#include <yazpp/query.h>

namespace yazpp_1 {
/** Z39.50 Query
    RPN, etc.
*/
class YAZ_EXPORT Yaz_Z_Query : public Yaz_Query {
 public:
    /// Make Query from rpn string
    Yaz_Z_Query();
    /// Delete Query
    virtual ~Yaz_Z_Query();
    /// Set RPN
    int set_rpn (const char *rpn);
    /// Set Z Query
    void set_Z_Query (Z_Query *z_query);
    /// Get Z Query
    Z_Query *get_Z_Query ();
    /// print query
    void print(char *str, int len);
    /// match query
    int match(Yaz_Z_Query *other);
    /// Copy
    Yaz_Z_Query &operator=(const Yaz_Z_Query &);
    /// Assign RPN string to it
    Yaz_Z_Query& operator=(const char *rpn);
 private:
    char *m_buf;
    int m_len;
    ODR odr_decode;
    ODR odr_encode;
    ODR odr_print;
    WRBUF zquery2pquery(Z_Query *q);
};
};
#endif
/*
 * Local variables:
 * c-basic-offset: 4
 * indent-tabs-mode: nil
 * End:
 * vim: shiftwidth=4 tabstop=8 expandtab
 */



syntax highlighted by Code2HTML, v. 0.9.1