X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=zoom%2Fzclient.cpp;h=aa3f603b6d0ed51b6f8812e8a33bb1aa00330119;hp=16a2ae3a48ed6c3aa78e863f37fb169e5b727814;hb=63caccd96329d38750b23c1962bc6a37e7d3c7b5;hpb=927890f041728f42cb5e1ed3646fce2f07b4f52c diff --git a/zoom/zclient.cpp b/zoom/zclient.cpp index 16a2ae3..aa3f603 100644 --- a/zoom/zclient.cpp +++ b/zoom/zclient.cpp @@ -1,57 +1,56 @@ -// $Header: /home/cvsroot/yaz++/zoom/zclient.cpp,v 1.3 2002-10-08 23:55:52 mike Exp $ +// $Id: zclient.cpp,v 1.8 2005-06-25 15:53:21 adam Exp $ // Simple sample client -#include // for atoi() -#include -#include "zoom++.h" +#include // for atoi() +#include +#include "zoom.h" int main(int argc, char **argv) { if (argc != 5) { - cerr << "Usage: " << argv[0] << - " <@prefix-search>\n"; - return 1; + std::cerr << "Usage: " << + argv[0] << " <@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; - } - - 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) { - //fprintf(stderr, "caught exception 0x%lx\n", (long) &err); - cerr << argv[0] << ": search: " << - err.errmsg() << " (" << err.addinfo() << ")\n"; - return 3; - } + 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; - 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(); + } 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 + */ +