| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 
 | #include <stddef.h>        // for size_t
 
namespace ZOOM {
  // Forward declarations for type names.
  class query;
  class resultSet;
  class record;
 
  const char *option (const char *key);
  const char *option (const char *key, const char *val);
  int errcode ();
  char *errmsg ();
  char *addinfo ();
 
  class connection {
  public:
    connection (const char *hostname, int portnum);
    ~connection ();
    const char *option (const char *key) const;
    const char *option (const char *key, const char *val);
  };
 
  class query {
      // pure virtual class: derive concrete subclasses from it.
  public:
    virtual ~query ();
  };
 
  class prefixQuery : public query {
  public:
    prefixQuery (const char *pqn);
    ~prefixQuery ();
  };
 
  class CCLQuery : public query {
  public:
    CCLQuery (const char *ccl, void *qualset);
    ~CCLQuery ();
  };
 
  class resultSet {
  public:
    resultSet (connection &c, const query &q);
    ~resultSet ();
    const char *option (const char *key) const;
    const char *option (const char *key, const char *val);
    size_t size () const;
    const record *getRecord (size_t i) const;
  };
 
  class record {
  public:
    ~record ();
    enum syntax {
      UNKNOWN, GRS1, SUTRS, USMARC, UKMARC, XML
    };
    record *clone () const;
    syntax recsyn () const;
    const char *render () const;
    const char *rawdata () const;
  };
 
  class exception {
  public:
    exception (int code);
    int errcode () const;
    const char *errmsg () const;
  };
 
  class systemException: public exception {
  public:
    systemException ();
    int errcode () const;
    const char *errmsg () const;
  };
 
  class bib1Exception: public exception {
  public:
    bib1Exception (int errcode, const char *addinfo);
    int errcode () const;
    const char *errmsg () const;
    const char *addinfo () const;
  };
 
  class queryException: public exception {
  public:
    enum {
     PREFIX = 1,
     CCL = 2
    };
    queryException (int qtype, const char *source);
    int errcode () const;
    const char *errmsg () const;
    const char *addinfo () const;
  };
} | 
Partager