-# $Id: Maintenance.pod,v 1.2 2006-09-13 15:38:29 mike Exp $
+# $Id: Maintenance.pod,v 1.3 2006-09-13 16:31:59 mike Exp $
package ZOOM::IRSpy::Maintenance;
The library consists of the following hierarchy of classes:
- IRSpy.pm
+ IRSpy.pm -- the controlling class
IRSpy/Maintenance.pod -- this document
- IRSpy/Record.pm
- IRSpy/Test.pm
- IRSpy/Test
- IRSpy/Test/Main.pm
- IRSpy/Test/Ping.pm
- IRSpy/Test/Search
- IRSpy/Test/Search/Title.pm
+ IRSpy/Record.pm -- a record of a probed database
+ IRSpy/Test.pm -- base class for individual tests
+ IRSpy/Test -- contains individual tests
+ IRSpy/Test/Main.pm -- the top-level test, calls others
+ IRSpy/Test/Ping.pm -- simplest test: checks server is alive
+ IRSpy/Test/Search -- contains tests for searching
+ IRSpy/Test/Search/Title.pm -- test for title search
+
+=head2 IRSpy.pm
+
+The main class, and the only one used directly by the command-line
+application. And C<IRSpy> object represents a connection to a
+database of extended ZeeRex records, together with a set of
+connections to target databases being tested.
+
+With the aid of C<IRSpy/Record.pm>, this class implements a framework
+within which separately authored tests may be run, the tests running
+sequentially but with all connections attempting each test in parallel
+- i.e. all connections must complete a given test (whether
+successfully or not) before the next test is begun.
+
+=head2 IRSpy/Maintenance.pod
+
+Do you really need a section about this file?
+
+=head2 IRSpy/Record.pm
+
+Represents a record describing a target database, based on an extended
+ZeeRex record. Includes the results of the tests that have been run
+during the current session.
+
+=head2 IRSpy/Test.pm
+
+This is an abstract base-class that is used by all the concrete
+classes implementing specific tests. Its principle purpose is to
+provide the C<run_tests()> method whereby high-level tests such as
+C<Main> can invoke lower-level tests.
+
+=head2 IRSpy/Test
+
+Directory containing plugins for specific tests.
+
+=head2 IRSpy/Test/Main.pm
+
+The top-level test: running an IRSpy object (by calling its C<check()>
+method) consists of running the C<Main> test, then writing the results
+of that test back to the database. This test itself does nothing but
+call lower-level tests, using the C<run_tests()> method provided by
+its superclass.
+
+=head2 IRSpy/Test/Ping.pm
+
+The simplest of all the "real" tests (i.e. not including C<Main>) and
+good one to use as a template when developing new tests. It tests
+whether the target can be connected to, using C<ZOOM::Pod> callbacks
+to be notified of each target's success or failure, and updates the
+associated record accordingly.
+
+=head2 IRSpy/Test/Search
+
+Directory containing plugins for specific tests of searching. In
+time, we will probably have analogous directories for retrieval tests,
+extended services tests. etc.
+
+=head2 IRSpy/Test/Search/Title.pm
+
+A simple test of title-searching.
=cut