X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zoom%2Fzoomtst6.c;h=2ac31f7f72dfd48318c6c0b4493c28228bb78bcf;hp=86f2d3e4ee886ea79203eca2003c9bf5d7a803b7;hb=d84e4c3cd444d04aee7beeadb5bb0ae061ee24c9;hpb=67e7a7a13ff1e787b9e5cfe84494dfd446c1bcb9 diff --git a/zoom/zoomtst6.c b/zoom/zoomtst6.c index 86f2d3e..2ac31f7 100644 --- a/zoom/zoomtst6.c +++ b/zoom/zoomtst6.c @@ -1,7 +1,6 @@ -/* - * $Id: zoomtst6.c,v 1.3 2001-11-06 17:05:19 adam Exp $ - * - * Asynchronous multi-target client doing two searches +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data + * See the file LICENSE for details. */ #include @@ -10,26 +9,33 @@ #include -static void display_records (const char *tname, Z3950_resultset r) +static void display_records (const char *tname, ZOOM_resultset r) { /* OK, no major errors. Look at the result count */ int pos; - printf ("%s: %d hits\n", tname, Z3950_resultset_size(r)); + printf ("%s: %ld hits\n", tname, (long) ZOOM_resultset_size(r)); /* go through all records at target */ - for (pos = 0; pos < 20; pos++) + for (pos = 0; pos < 4; pos++) { - /* get database for record and record itself at pos */ - const char *db = Z3950_resultset_get (r, pos, "database", 0); - int len; - const char *rec = Z3950_resultset_get (r, pos, "render", &len); - /* if rec is non-null, we got a record for display */ - if (rec) - { - printf ("%d %s\n", pos+1, (db ? db : "unknown")); - if (rec) - fwrite (rec, 1, len, stdout); - putchar ('\n'); - } + ZOOM_record rec = ZOOM_resultset_record (r, pos); + if (rec) + { + /* get database for record and record itself at pos */ + const char *db = ZOOM_record_get (rec, "database", 0); + int len; + const char *render = ZOOM_record_get (rec, "render", &len); + /* if rec is non-null, we got a record for display */ + if (rec) + { + printf ("%d %s\n", pos+1, (db ? db : "unknown")); + if (render) + { + if (fwrite (render, 1, len, stdout) != (size_t) len) + printf("write to stdout failed\n"); + } + printf ("\n"); + } + } } } @@ -37,80 +43,93 @@ int main(int argc, char **argv) { int i; int no = argc-3; - Z3950_connection z[500]; /* allow at most 500 connections */ - Z3950_resultset r1[500]; /* and result sets .. */ - Z3950_resultset r2[500]; /* and result sets .. */ - Z3950_query q; - Z3950_options o; + ZOOM_connection z[500]; /* allow at most 500 connections */ + ZOOM_resultset r1[500]; /* and result sets .. */ + ZOOM_resultset r2[500]; /* and result sets .. */ + ZOOM_query q; + ZOOM_options o; - o = Z3950_options_create (); + o = ZOOM_options_create (); if (argc < 4) { - fprintf (stderr, "usage:\n%s target1 .. targetN query1 query2\n", - *argv); - exit (1); + fprintf (stderr, "usage:\n%s target1 .. targetN query1 query2\n", + *argv); + exit (1); } if (no > 500) no = 500; - Z3950_options_set (o, "async", "1"); + ZOOM_options_set (o, "async", "1"); /* get 3 (at most) records from beginning */ - Z3950_options_set (o, "count", "3"); + ZOOM_options_set (o, "count", "3"); - Z3950_options_set (o, "preferredRecordSyntax", "sutrs"); - Z3950_options_set (o, "elementSetName", "B"); + ZOOM_options_set (o, "preferredRecordSyntax", "sutrs"); + ZOOM_options_set (o, "elementSetName", "B"); /* create query */ - q = Z3950_query_create (); - if (Z3950_query_prefix (q, argv[argc-2])) + q = ZOOM_query_create (); + if (ZOOM_query_prefix (q, argv[argc-2])) { - printf ("bad PQF: %s\n", argv[argc-2]); - exit (2); + printf ("bad PQF: %s\n", argv[argc-2]); + exit (2); } /* connect - and search all */ for (i = 0; i