Revision: | 1.3 |
Committed: | Mon Oct 9 12:34:22 2000 UTC (24 years, 7 months ago) by williamc |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | V1_0_3-p4, forV1_1_0, v103_xml_071106, V1_0_3-p3, V1_0_3-p2, before110xmlBRmerge, V110p2, V110p1, V1_0_4p1, V1_0_3-p1, V1_0_3, V1_0_2, V1_0_2_p1, v102p1, V1_0_1, V1_0_0, V1_pre0, SCRAM_V1, SCRAMV1_IMPORT, V0_19_7, V0_19_6, V0_19_6p1, V0_19_5, SFATEST, V0_19_4, V0_19_4_pre3, V0_19_4_pre2, V0_19_4_pre1, V0_19_3, V0_19_2, V0_19_1, V0_19_0, V0_18_5, V0_18_4, V_18_3_TEST, VO_18_3, V0_18_2, V0_18_1 |
Branch point for: | v103_with_xml, v103_branch, V1_pre1, SCRAM_V1_BRANCH, V0_19_4_B |
Changes since 1.2: | +1 -0 lines |
Log Message: | Import from V0_15branch - storeref method |
# | Content |
---|---|
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 | $self->{objectstore}->storeref($self); |
44 | $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 | } |