X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=zoom%2Fzconn.cpp;h=4edb20c88dc57fc574f647b72eea8d60a89cba17;hb=eea2caea1263bed0aae268f72d985cbb1822ac30;hp=d5d4c85ac8d6e75e628fd153ac70e5f530894636;hpb=88e190489a5c483e5b860048aeebde41bf262962;p=yazpp-moved-to-github.git diff --git a/zoom/zconn.cpp b/zoom/zconn.cpp index d5d4c85..4edb20c 100644 --- a/zoom/zconn.cpp +++ b/zoom/zconn.cpp @@ -1,4 +1,4 @@ -// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.4 2002-11-30 22:33:21 mike Exp $ +// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.8 2005-05-03 16:29:52 mike Exp $ // Z39.50 Connection class @@ -6,11 +6,16 @@ namespace ZOOM { - connection::connection(const string &hostname, int portnum) { + connection::connection() { + ZOOM_options o = ZOOM_options_create(); + c = ZOOM_connection_create(o); + } + + void connection::connect(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"; + ZOOM_connection_connect(c, line_printer_size_hostname, portnum); + //###cerr << "opened\n"; int errcode; const char *errmsg; // unused: carries same info as `errcode' @@ -21,11 +26,18 @@ namespace ZOOM { } } - string connection::option(const string &key) const { - return ZOOM_connection_option_get(c, key.c_str()); + connection::connection(const std::string &hostname, int portnum) { + ZOOM_options o = ZOOM_options_create(); + c = ZOOM_connection_create(o); + connect(hostname, portnum); + } + + std::string connection::option(const std::string &key) const { + const char* val = ZOOM_connection_option_get(c, key.c_str()); + return (val) ? val : std::string(); } - bool connection::option(const string &key, const string &val) { + 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;