X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=zoom%2Fzconn.cpp;fp=zoom%2Fzconn.cpp;h=e6f9dc907d296e42209627f2d1b8dd6ba58d587b;hb=8e0f7888835eb1a84882b440209ec125ce5856c1;hp=0000000000000000000000000000000000000000;hpb=a1c32cb5086cc24b6ba776379016bf6adad47821;p=yazpp-moved-to-github.git diff --git a/zoom/zconn.cpp b/zoom/zconn.cpp new file mode 100644 index 0000000..e6f9dc9 --- /dev/null +++ b/zoom/zconn.cpp @@ -0,0 +1,34 @@ +// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.1 2002-08-08 13:31:54 mike Exp $ + +// Z39.50 Connection class + +#include "zoom++.h" + + +namespace ZOOM { + connection::connection(const char *hostname, int portnum) { + c = ZOOM_connection_new(hostname, portnum); + + int errcode; + const char *errmsg; // unused: carries same info as `errcode' + const char *addinfo; + if ((errcode = ZOOM_connection_error(c, &errmsg, &addinfo)) != 0) { + throw bib1Error(errcode, addinfo); + } + } + + const char *connection::option(const char *key) const { + return ZOOM_connection_option_get(c, key); + } + + const char *connection::option(const char *key, const char *val) { + // ### There may be memory-management issues here. + const char *old = ZOOM_connection_option_get(c, key); + ZOOM_connection_option_set(c, key, val); + return old; + } + + connection::~connection() { + ZOOM_connection_destroy(c); + } +}