Tweaks to Query documentation, add overview for Options.
[ZOOM-Perl-moved-to-github.git] / lib / ZOOM.pod
index f4220d6..337f080 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: ZOOM.pod,v 1.17 2005-12-13 14:40:47 mike Exp $
+# $Id: ZOOM.pod,v 1.19 2005-12-13 15:30:26 mike Exp $
 
 use strict;
 use warnings;
@@ -884,6 +884,7 @@ reuse a Package that has been C<destroy()>ed.
 =head2 ZOOM::Query
 
  $q = new ZOOM::Query::CQL("creator=pike and subject=unix");
+ $q->sortby("1=4 >i 1=21 >s");
  $rs = $conn->search($q);
  $q->destroy();
 
@@ -918,15 +919,34 @@ http://zing.z3950.org/cql/intro.html
 
 =back
 
+See the description of the C<Query> class in the ZOOM Abstract
+API at
+http://zoom.z3950.org/api/zoom-current.html#3.3
+
 =head3 Methods
 
 =head4 new()
 
-Creates a new query object, 
+ $q = new ZOOM::Query::CQL('title=dinosaur'));
+ $q = new ZOOM::Query::PQF('@attr 1=4 dinosaur'));
+
+Creates a new query object, compiling the query passed as its argument
+according to the rules of the particular query-type being
+instantiated.  If compilation fails, an exception is thrown.
+Otherwise, the query may be passed to the C<Connection> method
+<search()>.
 
 =head4 sortby()
 
-I<###>
+ $q->sortby("1=4 >i 1=21 >s");
+
+Sets a sort specification into the query, so that when a C<search()>
+is run on the query, the result is automatically sorted.  The sort
+specification language is the same as the C<yaz> sort-specification
+type of the C<ResultSet> method C<sort()>, described above.
+
+B<It ought to be possible to sort by CQL query, too, but at present
+limitations in the underlying ZOOM-C library make this impossible.>
 
 =head4 destroy()
 
@@ -937,6 +957,52 @@ reuse a Query that has been C<destroy()>ed.
 
 =head2 ZOOM::Options
 
+ $o1 = new ZOOM::Options();
+ $o1->option(user => "alf");
+ $o2 = new ZOOM::Options();
+ $o2->option(password => "fruit");
+ $opts = new ZOOM::Options($o1, $o2);
+ $conn = create ZOOM::Connection($opts);
+ $conn->connect($host);        # Uses the specified username and password
+
+Several classes of ZOOM objects carry their own sets of options, which
+can be manipulated using their C<option()> method.  Sometimes,
+however, it's useful to deal with the option sets directly, and the
+C<ZOOM::Options> class exists to enable this approach.
+
+Option sets are B<not currently described> in the ZOOM
+Abstract API at
+http://zoom.z3950.org/api/zoom-current.html
+They are an extension to that specification.
+
+=head3 Methods
+
+=head4 new()
+
+I<###>
+
+=head4 option()
+
+I<###>
+
+=head4 option_binary()
+
+I<###>
+
+=head4 bool() / int()
+
+I<###>
+
+=head4 set_int()
+
+I<###>
+
+=head4 set_callback()
+
+I<###>
+
+=head4 destroy()
+
 I<###>
 
 =head1 ENUMERATIONS