Index: /trunk/DataStore/lib/DataStore/File.pm
===================================================================
--- /trunk/DataStore/lib/DataStore/File.pm	(revision 6600)
+++ /trunk/DataStore/lib/DataStore/File.pm	(revision 6601)
@@ -1,5 +1,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: File.pm,v 1.5 2006-03-15 22:17:41 jhoblitt Exp $
+# $Id: File.pm,v 1.6 2006-03-16 02:47:09 jhoblitt Exp $
 
 package DataStore::File;
@@ -36,5 +36,18 @@
     use DataStore::file;
 
-    my $dsf = DateStore::File->new(...);
+    my $dsf = DateStore::File->new(
+        uri         => 'http://example.org/foo',
+        fileid      => '12buckelyourshoe',
+        bytes       => 12345,
+        md5sum      => 'fe6a2b6564c0d4cfb3bbf1db813824ba',
+        type        => 'foo',
+    );
+
+    my $uri     = $dsf->uri;
+    my fileid   = $dsf->fileid;
+    my $bytes   = $dsf-bytes;
+    my $md5sum  = $dsf->md5sum;
+    my $type    = $dsf-type;
+    my DataStore::Response $response = $dsf->request( filename => "/foo/bar" );
 
 =head1 DESCRIPTION
@@ -54,4 +67,40 @@
 
 =item * C<new()>
+
+Basic constructor.
+
+    my $dsf = DateStore::File->new(
+        uri         => 'http://example.org/foo',
+        fileid      => '12buckelyourshoe',
+        bytes       => 12345,
+        md5sum      => 'fe6a2b6564c0d4cfb3bbf1db813824ba',
+        type        => 'foo',
+    );
+
+Accepts a mandatory hash and returns a L<DataStore::Product> object.
+
+=over 4
+
+=item * uri
+
+A valid I<HTTP> URI as a string.  I<No trailing slash is allowed.>
+
+=item * fileid
+
+The FIle ID as a string.
+
+=item * bytes
+
+The size of the file as an integer number of bytes.
+
+=item * md5sum
+
+The hex encoded md5 checksum of the file.
+
+=item * type
+
+The type of file as a string.
+
+=back
 
 =cut
@@ -94,5 +143,43 @@
 =over 4
 
+=item * C<uri>
+
+Basic accessor.
+
+=item * C<fileid>
+
+Basic accessor.
+
+=item * C<bytes>
+
+Basic accessor.
+
+=item * C<md5sum>
+
+Basic accessor.
+
+=item * C<type>
+
+Basic accessor.
+
 =item * C<request()>
+
+Retrieves and processes the File listing pointed to by the L<uri> of this
+object.
+
+XXX writing the file into memory or to a filehandle will be implimented upon
+request.
+
+    my $response = $dsf->request( filename => "/foo/bar" );
+
+Accepts a mandatory hash and returns a L<DataStore::Response> object.
+
+=over 4
+
+=item * filename
+
+The filename/path to save the file to disk as.
+
+=back
 
 =cut
@@ -158,4 +245,12 @@
 }
 
+=back
+
+=head1 SEE ALSO
+
+L<DataStore::Response>
+
+=cut
+
 1;
 
Index: /trunk/DataStore/lib/DataStore/FileSet.pm
===================================================================
--- /trunk/DataStore/lib/DataStore/FileSet.pm	(revision 6600)
+++ /trunk/DataStore/lib/DataStore/FileSet.pm	(revision 6601)
@@ -1,5 +1,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: FileSet.pm,v 1.3 2006-03-15 03:18:25 jhoblitt Exp $
+# $Id: FileSet.pm,v 1.4 2006-03-16 02:47:09 jhoblitt Exp $
 
 package DataStore::FileSet;
@@ -35,5 +35,16 @@
     use DataStore::FileSet;
 
-    my $dsfs = DateStore::FileSet->new(...);
+    my $dsfs = DateStore::FileSet->new(
+        uri         => 'http://example.org/',
+        fileset     => '12buckelyourshoe',
+        datetime    => '2042-01-01T00:00:00Z',
+        type        => 'foo',
+    );
+
+    my $uri         = $dsfs->uri;
+    my $fileset     = $dsfs->fileset;
+    my $datatime    = $dsfs->datetime;
+    my $type        = $dsfs->type;
+    my DataStore::Response $response = $dsfs->request;
 
 =head1 DESCRIPTION
@@ -53,4 +64,35 @@
 
 =item * C<new()>
+
+Basic constructor.
+
+    my $dsfs = DateStore::FileSet->new(
+        uri         => 'http://example.org/',
+        fileset     => '12buckelyourshoe',
+        datetime    => '2042-01-01T00:00:00Z',
+        type        => 'foo',
+    );
+
+Accepts a mandatory hash and returns a L<DataStore::FileSet> object.
+
+=over 4
+
+=item * uri
+
+A valid I<HTTP> URI as a string.  I<A trailing slash is required.>
+
+=item * fileset
+
+The FileSet ID as a string.
+
+=item * datetime
+
+The time and date as a string.
+
+=item * type
+
+The I<type> of record as a string.
+
+=back
 
 =cut
@@ -91,5 +133,26 @@
 =over 4
 
+=item * C<uri()>
+
+Basic accessor.
+
+=item * C<fileset()>
+
+Basic accessor.
+
+=item * C<datetime()>
+
+Basic accessor.
+
+=item * C<type()>
+
+Basic accessor.
+
 =item * C<request()>
+
+Retrieves and processes the File listing pointed to by the L<uri> of this
+object.
+
+Accepts no parameters and returns a L<DataStore::Response> object.
 
 =cut
@@ -133,4 +196,12 @@
 }
 
+=back
+
+=head1 SEE ALSO
+
+L<DataStore::Response>
+
+=cut
+
 1;
 
Index: /trunk/DataStore/lib/DataStore/Product.pm
===================================================================
--- /trunk/DataStore/lib/DataStore/Product.pm	(revision 6600)
+++ /trunk/DataStore/lib/DataStore/Product.pm	(revision 6601)
@@ -1,5 +1,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: Product.pm,v 1.3 2006-03-14 23:24:05 jhoblitt Exp $
+# $Id: Product.pm,v 1.4 2006-03-16 02:47:09 jhoblitt Exp $
 
 package DataStore::Product;
@@ -43,5 +43,7 @@
     );
 
-    my DataStore::Response $response = $dsp->fetch;
+    my $uri     = $dsp->uri;
+    my $fileset = $dsp_fileset;
+    my DataStore::Response $response = $dsp->request;
 
 =head1 DESCRIPTION
@@ -64,5 +66,24 @@
 Basic constructor.
 
-Accepts no arguments and returns a L<DataStore::Product> object.
+    my $dsp = DataStore::Product->new(
+        uri             => 'http://example.com/productid/',
+        last_fileset    => 'foobar',
+    );
+
+Accepts a mandatory hash and returns a L<DataStore::Product> object.
+
+=over 4
+
+=item * uri
+
+A valid I<HTTP> URI as a string.  I<A trailing slash is required.>
+
+=item * last_fileset
+
+The last FileSet ID that was requested as a string.
+
+This key is optional.
+
+=back
 
 =cut
@@ -105,5 +126,18 @@
 =over 4
 
+=item * C<uri()>
+
+Basic accessor.
+
+=item * C<last_fileset()>
+
+Basic accessor.
+
 =item * C<request()>
+
+Retrieves and processes the FileSet listing pointed to by the L<uri> of this
+object.
+
+Accepts no parameters and returns a L<DataStore::Response> object.
 
 =cut
@@ -118,5 +152,12 @@
     # make request
     my $ua = LWP::UserAgent->new;
-    my $request = HTTP::Request->new(GET => $self->uri);
+    my $request;
+    if ($self->last_fileset) {
+        $request = HTTP::Request->new(
+            GET => $self->uri . "?" . $self->last_fileset,
+        );
+    } else {
+        $request = HTTP::Request->new(GET => $self->uri);
+    }
     my $response = $ua->request($request);
 
@@ -147,4 +188,12 @@
 }
 
+=back
+
+=head1 SEE ALSO
+
+L<DataStore::Response>
+
+=cut
+
 1;
 
Index: /trunk/DataStore/lib/DataStore/Response.pm
===================================================================
--- /trunk/DataStore/lib/DataStore/Response.pm	(revision 6600)
+++ /trunk/DataStore/lib/DataStore/Response.pm	(revision 6601)
@@ -1,5 +1,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: Response.pm,v 1.1 2006-03-08 02:11:46 jhoblitt Exp $
+# $Id: Response.pm,v 1.2 2006-03-16 02:47:09 jhoblitt Exp $
 
 package DataStore::Response;
@@ -31,5 +31,17 @@
     use DataStore::Response;
 
-    my $dsr = DateStore::Response->new(...);
+    my $dsr = DateStore::Response->new(
+        is_success  => undef,
+        code        => 500,
+        status_line => 'foo',
+        data        => 'bar',
+        request     => DataStore::Product->new( uri => 'http://example.org/' ),
+    );
+
+    my $success     = $dsr->is_success;
+    my $code        = $dsr->code;
+    my $status_line = $dsr->status_line;
+    my $data        = $dsr->data;
+    my DataStore::Response $response = $dsp->request;
 
 =head1 DESCRIPTION
@@ -49,4 +61,40 @@
 
 =item * C<new()>
+
+Basic constructor.
+
+    my $dsr = DateStore::Response->new(
+        is_success  => undef,
+        code        => 500,
+        status_line => 'foo',
+        data        => 'bar',
+        request     => DataStore::Product->new( uri => 'http://example.org/' ),
+    );
+
+Accepts a mandatory hash and returns a L<DataStore::Product> object.
+
+=over 4
+
+=item * uri
+
+A vvalid I<HTTP> URI as a string.
+
+=item * code
+
+An HTTP status code.
+
+=item * status_line
+
+An HTTP status line.
+
+=item * data
+
+Either a scalar value or an arrayref of scalar data.
+
+=item * request
+
+An object that I<isa> L<DataStore::Record>.
+
+=back
 
 =cut
@@ -88,4 +136,32 @@
 }
 
+=back
+
+=head3 Object Methods
+
+=over 4
+
+=item * C<uri>
+
+Basic accessor.
+
+=item * C<code>
+
+Basic accessor.
+
+=item * C<status_line>
+
+Basic accessor.
+
+=item * C<data>
+
+Basic accessor.
+
+=item * C<request>
+
+Basic accessor.
+
+=cut
+
 1;
 
