buildconf.sh --disable-shared --enable-static
[yazpp-moved-to-github.git] / zoom / zclient.cpp
index 863968d..aa3f603 100644 (file)
@@ -1,55 +1,56 @@
-// $Header: /home/cvsroot/yaz++/zoom/zclient.cpp,v 1.2 2002-08-08 16:06:08 mike Exp $
+// $Id: zclient.cpp,v 1.8 2005-06-25 15:53:21 adam Exp $
 
-// Trivial sample client
+// Simple sample client
+
+#include <stdlib.h>             // for atoi()
+#include <iostream>
+#include "zoom.h"
 
-#include <stdlib.h>            // for atoi()
-#include <iostream.h>
-#include "zoom++.h"
 
 int main(int argc, char **argv)
 {
     if (argc != 5) {
-       cerr << "Usage: " << argv[0] <<
-           " <host> <port> <db> <@prefix-search>\n";
-       return 1;
-    }
-
-    const char *hostname = argv[1];
-    const int port = atoi(argv[2]);
-    const char *dbname = argv[3];
-    const char *searchSpec = argv[4];
-
-    ZOOM::connection *conn;
-    try {
-       conn = new ZOOM::connection(hostname, port);
-    } catch(ZOOM::bib1Exception err) {
-       cerr << argv[0] << ": connect: bib1Exception " <<
-           err.errmsg() << " (" << err.addinfo() << ")\n";
-       return 2;
-    } catch(ZOOM::exception err) {
-       cerr << argv[0] << ": connect: exception " <<
-           err.errmsg() << "\n";
-       return 2;
+        std::cerr << "Usage: " <<
+            argv[0] << " <host> <port> <dbname> <@prefix-search>\n";
+        return 1;
     }
 
-    conn->option("databaseName", dbname);
-    ZOOM::prefixQuery pq(searchSpec);
-    ZOOM::resultSet *rs;
+    using namespace ZOOM;
     try {
-       rs = new ZOOM::resultSet(*conn, pq);
-    } catch(ZOOM::bib1Exception err) {
-       cerr << argv[0] << ": searchSpec: " <<
-           err.errmsg() << " (" << err.addinfo() << ")\n";
-       return 3;
-    }
-
-    size_t n = rs->size();
-    cout << "found " << n << " records:\n";
-    for (size_t i = 0; i < n; i++) {
-       const ZOOM::record *rec = rs->getRecord(i);
-       cout << "=== record " << i+1 << " (recsyn " << rec->recsyn()
-            << ") ===\n" << rec->render();
+        connection conn(argv[1], atoi(argv[2]));
+        conn.option("databaseName", argv[3]);
+        conn.option("preferredRecordSyntax",
+                    record::syntax(record::syntax::XML));
+        prefixQuery pq(argv[4]);
+        resultSet rs(conn, pq);
+
+        size_t n = rs.size();
+        std::cout << "found " << n << " records:\n";
+        for (size_t i = 0; i < n; i++) {
+            const record rec(rs, i);
+            std::cout << "=== record " << i+1 <<
+                " (record-syntax " << (std::string) rec.recsyn() << ")" <<
+                " ===\n" << rec.render();
+        }
+
+    } catch(bib1Exception& err) {
+        std::cerr << argv[0] << ": bib1Exception " <<
+            err.errmsg() << " (" << err.addinfo() << ")\n";
+        return 2;
+
+    } catch(ZOOM::exception& err) {
+        std::cerr << argv[0] << ": exception " <<
+            err.errmsg() << "\n";
+        return 3;
     }
 
     return 0;
 }
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+