[ZOOM] hello and first impressions of the C++ bindings

Jacob Chr. Poulsen ja7 at dbc.dk
Sun Nov 4 02:03:56 CET 2001


First i wan't to say that i like the ide of the ZOOM abstraction. 

Some stuff about me:
        - I suffers from dyslexica so the spelling is at best funny.
          but if i don't make sence just say so, and i will try to
        - I been doing Z39.50 servers for 5 years (at DBC).
        - I been using both the yaz and DBVosi tools.
        - I is mostly using C++.
        - I work for Danish Bibliograhic Center, but the 
          work i am prepared to do on the zoom c++ bindings is done 
	  in my spare time. this also mean that the stuff i am writing 
          in not the supported by dbc, or in any way part of a dbc policy.

Comments to the Abstract API:

- why is the set option call retyrning the old value?
  i wood argue that close to all clients setting a option is
  not interested in the old value. and if it ware the call of
  the get function is not be a  large overhead.

- The record object is trying to do stuff that others do betters.
  eg. if I was dooing a client which was using xml. i wood proberly
  have a som libs ad hand to handle the xml, and the samme gos for any 
  other recordsyntax. many excluding grs-1 which seams to be invented 
  for Z3950. personaly i think the enumerate mensioned in 3.5.2,  is bogus 
  in that it semas to be a good idea but in real world client the enmu wil 
  always miss one importend item. why not just give the client programmer 
  the OID and defines the names of the regristrated OIDS from the motherpage.
  then the programmer dont need to know that 1.2.840.10003.5.14 is danMarc
  unless he wants to. and the use of a oid class.

- personaly i think the ZOOM api shut returns records as octetsreams, and 
  let the client application decode the record. optionaly supply a support
  lib for GRS-1. 

- Howto is one access multible database on the same target. i am missing 
  a list of databases as part of the search class.

My initial comments to the zoom-1.0f.hh this is not in any order just 
writen as i notes stuff warking tru the .hh file.

- There is to many char* why not use std::string. 
  if wirried about to much copying use references

- To me it don't semams as the connection obejct shut be copyed. 
  if it is, the question arises a what is the semantics of copying a connection.
  if the connection shut not be copyed the make a private copy constructor and 
	assignment operator. 

- enum ZOOM::record::recordSyntax, a enu of record syntaxes will allways be wrong. 
  in my current work we uses 1.2.840.10003.5.1000.105.221 to send special present
  formats. and as it is a private OID used.

- I can't figure how the errors is to be returned, in the Abstract API 3.4.6,
  about the errcode, errmsg,addinfo, and a not saying that the language binding 
  is allowed to throw the sam info as exceptions. and i the diags is comming as 
  exceptions then there is no object to ask for the error coded and eg. no 
  need for the functions in the resultset class. 
  I wood prefere errors as exceptions, but is haveing a problem with howto 
  represent multible diagnostics from a search. 

I hope somene wil enlitem me on the stuff i can't read from the list arcive 
that renders all this clules :) 

mvh. Jacob Chr Poulsen
  ja7 at dbc.dk
--- Det Er ingen skam at være ordblid, med holdkeft hvor er det besverligt.
--- it's no chame for a word-bliend not beeing abel to spell duslexica.

More information about the ZOOM mailing list