-# $Id: ZOOM.pod,v 1.32 2006-04-11 16:38:38 mike Exp $
+# $Id: ZOOM.pod,v 1.35 2006-04-12 12:03:10 mike Exp $
use strict;
use warnings;
anyway; but knowing that the same code is running is reassuring.)
The ZOOM module provides two enumerations (C<ZOOM::Error> and
-C<ZOOM::Event>), two utility functions C<diag_str()> and C<event()> in
-the C<ZOOM> package itself, and eight classes:
+C<ZOOM::Event>), three utility functions C<diag_str()>, C<event_str()>
+and C<event()> in the C<ZOOM> package itself, and eight classes:
C<ZOOM::Exception>,
C<ZOOM::Options>,
C<ZOOM::Connection>,
irrespective of whether it is a member of the C<ZOOM::Error>
enumeration or drawn from the BIB-1 diagnostic set.
+=head2 ZOOM::event_str()
+
+ $msg = ZOOM::event_str(ZOOM::Event::RECV_APDU);
+
+Returns a human-readable English-language string corresponding to the
+event code that is its own parameter. This works for any value of the
+C<ZOOM::Event> enumeration.
+
=head2 ZOOM::event()
$connsRef = [ $conn1, $conn2, $conn3 ];
Create several connections to the various servers, each of them having
the option C<async> set, and with whatever additional options are
-required - e.g. setting the piggyback retrieval record-count so that
-records will be returned in search responses.
+required - e.g. the piggyback retrieval record-count can be set so
+that records will be returned in search responses.
=item Operations
-Send searches to the connections, request record retrieval, etc.
+Send searches to the connections, request records, etc.
=item Event harvesting
indicates which of the connections has fired; this connection can then
be interrogated with the C<last_event()> method to discover what event
has occurred, and the return value - an element of the C<ZOOM::Event>
-enumeration can be used to determine what to do next. For example,
-the C<ZEND> operation indicates that no further operations are
+enumeration - can be tested to determine what to do next. For
+example, the C<ZEND> event indicates that no further operations are
outstanding on the connection, so any fetched records can now be
immediately obtained.
=back
Here is a very short program (omitting all error-checking!) which
-demonstrates this process. It parallel-searches two servers (or more
+demonstrates this process. It parallel-searches three servers (or more
of you add them the list), displaying the first record in the
result-set of each server as soon as it becomes available.
use ZOOM;
@servers = ('z3950.loc.gov:7090/Voyager',
- 'bagel.indexdata.com:210/gils');
+ 'bagel.indexdata.com:210/gils',
+ 'agricola.nal.usda.gov:7190/Voyager');
for ($i = 0; $i < @servers; $i++) {
$z[$i] = new ZOOM::Connection($servers[$i], 0,
async => 1, # asynchronous mode