aa3f603b6d0ed51b6f8812e8a33bb1aa00330119
[yazpp-moved-to-github.git] / zoom / zclient.cpp
1 // $Id: zclient.cpp,v 1.8 2005-06-25 15:53:21 adam Exp $
2
3 // Simple sample client
4
5 #include <stdlib.h>             // for atoi()
6 #include <iostream>
7 #include "zoom.h"
8
9
10 int main(int argc, char **argv)
11 {
12     if (argc != 5) {
13         std::cerr << "Usage: " <<
14             argv[0] << " <host> <port> <dbname> <@prefix-search>\n";
15         return 1;
16     }
17
18     using namespace ZOOM;
19     try {
20         connection conn(argv[1], atoi(argv[2]));
21         conn.option("databaseName", argv[3]);
22         conn.option("preferredRecordSyntax",
23                     record::syntax(record::syntax::XML));
24         prefixQuery pq(argv[4]);
25         resultSet rs(conn, pq);
26
27         size_t n = rs.size();
28         std::cout << "found " << n << " records:\n";
29         for (size_t i = 0; i < n; i++) {
30             const record rec(rs, i);
31             std::cout << "=== record " << i+1 <<
32                 " (record-syntax " << (std::string) rec.recsyn() << ")" <<
33                 " ===\n" << rec.render();
34         }
35
36     } catch(bib1Exception& err) {
37         std::cerr << argv[0] << ": bib1Exception " <<
38             err.errmsg() << " (" << err.addinfo() << ")\n";
39         return 2;
40
41     } catch(ZOOM::exception& err) {
42         std::cerr << argv[0] << ": exception " <<
43             err.errmsg() << "\n";
44         return 3;
45     }
46
47     return 0;
48 }
49 /*
50  * Local variables:
51  * c-basic-offset: 4
52  * indent-tabs-mode: nil
53  * End:
54  * vim: shiftwidth=4 tabstop=8 expandtab
55  */
56