X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=zoom%2Fzconn.cpp;h=3b3137a40397effc8f56c87fc5346d9df5a05ef1;hb=1b6019ff065a98af709be905adc6c08094471d57;hp=9b02a9bdb6ed9f5c1bbccfc4ac160eb2af7a7dde;hpb=b8248fc2b2eb866a23a677135deb4633cb1f3322;p=yazpp-moved-to-github.git diff --git a/zoom/zconn.cpp b/zoom/zconn.cpp index 9b02a9b..3b3137a 100644 --- a/zoom/zconn.cpp +++ b/zoom/zconn.cpp @@ -1,4 +1,4 @@ -// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.3 2002-10-09 09:07:10 mike Exp $ +// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.6 2003-09-22 12:25:20 mike Exp $ // Z39.50 Connection class @@ -6,26 +6,30 @@ namespace ZOOM { - connection::connection(const char *hostname, int portnum) { - c = ZOOM_connection_new(hostname, portnum); + connection::connection(const std::string &hostname, int portnum) { + const char *line_printer_size_hostname = hostname.c_str(); + //###cerr << "opening " << hostname << ":" << portnum << "\n"; + c = ZOOM_connection_new(line_printer_size_hostname, portnum); + //###cerr << "opened, got " << c << "\n"; int errcode; const char *errmsg; // unused: carries same info as `errcode' const char *addinfo; if ((errcode = ZOOM_connection_error(c, &errmsg, &addinfo)) != 0) { + //###cerr << "oops: no connect, errcode=" << errcode << "\n"; + ZOOM_connection_destroy(c); throw bib1Exception(errcode, addinfo); } } - const char *connection::option(const char *key) const { - return ZOOM_connection_option_get(c, key); + std::string connection::option(const std::string &key) const { + return ZOOM_connection_option_get(c, key.c_str()); } - 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; + bool connection::option(const std::string &key, const std::string &val) { + // No way to tell whether ZOOM_connection_option_set() accepts key + ZOOM_connection_option_set(c, key.c_str(), val.c_str()); + return true; } connection::~connection() {