X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=zoom%2Fzconn.cpp;h=9ac4fcbcb361d2cf5c304aa9b301f93e4a13be9b;hb=5b172c484238c964c547e7e45fb3c836f2d66fe5;hp=4c1c7a6ea0d8728e9ebb62edc1442c56e78864ba;hpb=dcd535eeb3ceaa9cfb19395f8e1780609f7c7d4b;p=yazpp-moved-to-github.git diff --git a/zoom/zconn.cpp b/zoom/zconn.cpp index 4c1c7a6..9ac4fcb 100644 --- a/zoom/zconn.cpp +++ b/zoom/zconn.cpp @@ -1,4 +1,4 @@ -// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.7 2005-05-03 16:21:16 mike Exp $ +// $Header: /home/cvsroot/yaz++/zoom/zconn.cpp,v 1.9 2005-06-25 15:53:21 adam Exp $ // Z39.50 Connection class @@ -6,34 +6,53 @@ namespace ZOOM { + 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"; + ZOOM_connection_connect(c, line_printer_size_hostname, portnum); + //###cerr << "opened\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"; + throw bib1Exception(errcode, addinfo); + } + } + 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); - } + 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(); + const char* val = ZOOM_connection_option_get(c, key.c_str()); + return (val) ? val : std::string(); } 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; + // 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() { - ZOOM_connection_destroy(c); + ZOOM_connection_destroy(c); } } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +