C++ Binding: changes for version 1.3a

4th November 2002

The following changes were made between versions 1.0g and 1.3a of the ZOOM C++ binding:

  1. Added #include <stddef.h> for the definition of size_t.
  2. Added destructor declaration to connection class.
  3. Removed the errcode(), errmsg() and addinfo() methods from the connection and resultSet classes, since exceptions should be used in these enlightened days.
  4. Renamed the record::recordSyntax enumeration to record::syntax, and added an UNKNOWN element.
  5. Removed virtual from all the record class's methods, including its destructor, since we no longer expect to derive record subclasses representing records expressed in specific record-syntaxes.
  6. Removed the nfields() and field() methods from the record class - see section 3.5.4 of version 1.3 of the Abstract API.
  7. Renamed the error class to exception, and its subclasses likewise. This brings the C++ binding's type names in line with the terminology used in the Abstract API.
  8. Added some substance to the exception base class: it can now be created (with an error-code specified), and the error-code may be both fetched and rendered as a human-readable string. This is necessary so that it's possible to meaningfully catch(exception& e)
  9. Added the missing char *errmsg() method to the systemException and bib1Exception classes.
  10. Added a new exception subclass, queryException, for reporting malformed query strings, etc.

Apart from those arising from amendments to the Abstract API, most of these changes arise from the new implementation of the ZOOM C++ binding as a part of Index Data's recently released YAZ++ toolkit.

The large version-number jump from the previous version of the C++ binding (1.0g) to this one (1.3a) does not reflect large changes in the binding itself, but the fact that the new version is based on v1.3 of the Abstract API, while 1.0g was based on AAPI version 1.0.

Feedback to <mike@indexdata.com> is welcome!