Missing include of stdio.h
[yazpp-moved-to-github.git] / zoom / zquery.cpp
1 // $Header: /home/cvsroot/yaz++/zoom/zquery.cpp,v 1.5 2003-07-02 10:25:13 adam Exp $
2
3 // Z39.50 Query classes
4
5 #include "zoom.h"
6
7
8 namespace ZOOM {
9     query::~query() {
10         ZOOM_query_destroy(q);
11         q = 0;
12     }
13
14     prefixQuery::prefixQuery(const std::string &pqn) {
15         q = ZOOM_query_create();
16         if (ZOOM_query_prefix(q, pqn.c_str()) == -1) {
17             ZOOM_query_destroy(q);
18             throw queryException(queryException::PREFIX, pqn);
19         }
20     }
21
22     // The binding specification says we have to have destructors for
23     // the query subclasses, so in they go -- even though they don't
24     // actually _do_ anything that inheriting the base query type's
25     // destructor wouldn't do.  It's an irritant of C++ that the
26     // declaration of a subclass has to express explicitly the
27     // implementation detail of whether destruction is implemented
28     // by a specific destructor or by inheritance.  Oh well.
29     //
30     // ### Not sure whether I need to do nothing at all, and the
31     // superclass destructor gets called anyway (I think that only
32     // works when you _don't_ define a destructor so that the default
33     // one pertains) or whether I need to duplicate the functionality
34     // of that destructor.  Let's play safe by assuming the latter and
35     // zeroing what we free so that we get bitten if we're wrong.
36     //
37     prefixQuery::~prefixQuery() {
38         ZOOM_query_destroy(q);
39         q = 0;
40     }
41
42
43
44     CCLQuery::CCLQuery(const std::string &ccl, void *qualset) {
45         throw "Oops.  No CCL support in ZOOM-C yet.  Sorry.";
46     }
47
48     CCLQuery::~CCLQuery() {
49         ZOOM_query_destroy(q);
50         q = 0;
51     }
52 }