First complete version.
authorMike Taylor <mike@indexdata.com>
Wed, 13 Sep 2006 16:31:59 +0000 (16:31 +0000)
committerMike Taylor <mike@indexdata.com>
Wed, 13 Sep 2006 16:31:59 +0000 (16:31 +0000)
lib/ZOOM/IRSpy/Maintenance.pod

index 5f22d13..29294f6 100644 (file)
@@ -1,4 +1,4 @@
-# $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;
 
@@ -125,15 +125,75 @@ self-contained.  The library is contained in the C<lib> directory.
 
 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