- 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);
- }
+ 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);
+ }