ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/ActiveDoc/ActiveStore.pm
Revision: 1.1.2.1.2.1
Committed: Fri Oct 6 18:45:17 2000 UTC (24 years, 7 months ago) by williamc
Content type: text/plain
Branch: V0_15branch
CVS Tags: BuildSystemProto1, V0_18_0, V0_18_0model, V0_17_1, V0_18_0alpha, V0_17_0, V0_16_4, V0_16_3, V0_16_2, V0_16_1, V0_16_0, V0_15_1, V0_15_0
Branch point for: V0_17branch, V0_16branch
Changes since 1.1.2.1: +1 -0 lines
Log Message:
Make sure objectostore initialises with ActiveStore

File Contents

# User Rev Content
1 williamc 1.1.2.1 #
2     # ActiveStore.pm
3     #
4     # Originally Written by Christopher Williams
5     #
6     # Description
7     # Implements ObjectStore interface
8     #
9     # Interface
10     # ---------
11     # new([directory|[ObjectStore ObjectCache]]): A new ActiveConfig object
12     # cache() : Return the cache
13     # store(object,@keys) :
14     # find (@keys) :
15    
16     package ActiveDoc::ActiveStore;
17     require 5.004;
18     use URL::URLcache;
19     use ObjectUtilities::ObjectStore;
20     use Utilities::Verbose;
21     @ISA=qw(Utilities::Verbose);
22    
23     sub new {
24     my $class=shift;
25     $self={};
26     bless $self, $class;
27     $self->init(@_);
28     return $self;
29     }
30    
31     sub init {
32     my $self=shift;
33    
34     if ( $#_ == 0 ) {
35     my $dir=shift;
36    
37     $self->{objectstore}=ObjectUtilities::ObjectStore->
38     new($dir."/ObjectStore", $self);
39     $self->{cache}=URL::URLcache->new($dir."/cache");
40     }
41     elsif ( $#_ == 1 ) {
42     $self->{objectstore}=shift;
43 williamc 1.1.2.1.2.1 $self->{objectstore}->storeref($self);
44 williamc 1.1.2.1 $self->{cache}=shift;
45     }
46     else {
47     $self->error("Unable to initialise with arguments @_");
48     }
49     }
50    
51     sub cache {
52     my $self=shift;
53     return $self->{cache};
54     }
55    
56     sub AUTOLOAD { # Call any method in the ObjectStore directly
57     my $self=shift;
58     my $call;
59    
60     # dont propogate a destroy method
61     return if $AUTOLOAD=~/::DESTROY$/;
62    
63     ($call=$AUTOLOAD)=~s/^.*:://;
64     # print "Calling $call from ".$self->{objectstore}."\n";
65     return $self->{objectstore}->$call(@_);
66     }