Add Ubuntu quantal
[ZOOM-Perl-moved-to-github.git] / samples / net-z3950-zoom / zoomtst3.pl
index 83ee94e..140e5f0 100644 (file)
@@ -1,7 +1,7 @@
-# $Id: zoomtst3.pl,v 1.2 2006-04-07 07:18:27 mike Exp $
-#
 # See ../README for a description of this program.
 # perl -I../../blib/lib -I../../blib/arch zoomtst3.pl <t1> [...] <tN> <query>
+# for example:
+# perl -I../../blib/lib -I../../blib/arch zoomtst3.pl z3950.loc.gov:7090/Voyager z3950.indexdata.com:210/gils endeavor.flo.org:7090/Voyager mineral
 
 use strict;
 use warnings;
@@ -9,7 +9,7 @@ use Net::Z3950::ZOOM;
 
 if (@ARGV < 2) {
     print STDERR "Usage: $0 target1 target2 ... targetN query\n";
-    print STDERR "     eg. $0 bagel.indexdata.dk/gils localhost:9999 fish\n";
+    print STDERR "     eg. $0 z3950.indexdata.dk/gils localhost:9999 fish\n";
     exit 1;
 }
 
@@ -23,7 +23,7 @@ Net::Z3950::ZOOM::options_set($o, count => 10);
 
 # Preferred record syntax
 Net::Z3950::ZOOM::options_set($o, preferredRecordSyntax => "usmarc");
-Net::Z3950::ZOOM::options_set($o, elementSetName => "F");
+Net::Z3950::ZOOM::options_set($o, elementSetName => "B");
 
 # Connect to all targets: options are the same for all of them
 for (my $i = 0; $i < $n; $i++) {
@@ -37,10 +37,15 @@ for (my $i = 0; $i < $n; $i++) {
 }
 
 # Network I/O.  Pass number of connections and array of connections
-while ((my $i = Net::Z3950::ZOOM::event([ @z ])) != 0) {
+while ((my $i = Net::Z3950::ZOOM::event(\@z)) != 0) {
     my $ev = Net::Z3950::ZOOM::connection_last_event($z[$i-1]);
     print("connection ", $i-1, ": event $ev (",
-         Net::Z3950::ZOOM::eventstr($ev), ")\n");
+         Net::Z3950::ZOOM::event_str($ev), ")\n");
+    # It would be nice to display results as they come in, but the
+    # ability to do so is dependent on the END event, which was
+    # introduced only in YAZ 2.1.17.  If you have a sufficiently new
+    # YAZ, please use the alternative "async.pl", which is similar to
+    # this program except in its asynchronous display.
 }
 
 # No more to be done.  Inspect results
@@ -62,18 +67,18 @@ for (my $i = 0; $i < $n; $i++) {
     # Go through all records at target
     $size = 10 if $size > 10;
     for (my $pos = 0; $pos < $size; $pos++) {
-       my $len = 0; # length of buffer rec
        print "$tname: fetching ", $pos+1, " of $size\n";
        my $tmp = Net::Z3950::ZOOM::resultset_record($r[$i], $pos);
        if (!defined $tmp) {
            print "$tname: can't get record ", $pos+1, "\n";
            next;
        }
-       my $rec = Net::Z3950::ZOOM::record_get($tmp, "render", $len);
-       # if rec is non-null, we got a record for display
-       if (defined $rec) {
-           print $pos+1, "\n", $rec, "\n";
+       my $rec = Net::Z3950::ZOOM::record_get($tmp, "render");
+       if (!defined $rec) {
+           print "$tname: can't render record ", $pos+1, "\n";
+           next;
        }
+       print $pos+1, "\n", $rec, "\n";
     }
 }