+# TODO: Implement 'stale' checks, so that there is no need to explicitly
+# write out a record, before closing.
+
+package Debbugs::DBase::Log;
+
+use strict;
+
+sub new
+{
+ my $self = {};
+# $self->{LOG} = new FileHandle;
+# $self->{AGE} = undef;
+# $self->{PEERS} = [];
+ $self->{log} = [];
+ bless ($self);
+ return $self;
+}
+my %logClass = ();
+my %logType = ();
+sub Register
+{
+ my ($char, $type, $class) = (shift, shift, shift);
+ $logClass{ $char } = $class;
+ $logType{ $char } = $type;
+
+}
+
+sub Load
+{
+ my ($self, $handle) = (shift, shift);
+ foreach (keys %$self) {
+print "key=$_\n";
+}
+ while (<$handle>) {
+ chomp;
+ my ($char, $class, $type) = ($_, $logClass{ $_ }, $logType{ $_ });
+ my $msg = "";
+ while (<$handle>) {
+ chomp;
+ if ( $_ eq "\3" ) {
+ last;
+ } else {
+ $msg .= "$_\n";
+ }
+ }
+ if( defined($class) ) {
+ print "found handler $type for $char\n";
+ my $log = $class->new($msg);
+
+ my @log = $self->{log};
+ push @log, ($log);
+ } else {
+ print "undefined handler for $char\n";
+ }
+ }
+}
+
+BEGIN {
+ use Exporter ();
+ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+
+ # set the version for version checking
+ $VERSION = 1.00;
+
+ @ISA = qw(Exporter);
+ @EXPORT = qw(new);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = qw();
+
+}
+
+1;