ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/URL/URLcache.pm
(Generate patch)

Comparing COMP/SCRAM/src/URL/URLcache.pm (file contents):
Revision 1.2 by williamc, Thu Nov 4 10:08:11 1999 UTC vs.
Revision 1.4 by williamc, Fri Nov 12 17:38:27 1999 UTC

# Line 16 | Line 16
16   # clear()               : clear cache
17   # filestore()           : Return the directory to download files to
18   # filename(url)         : return a unique file/dir in cache for the given url
19 + # updatenumber(int)     : return an integer number changed with each store
20  
21   package URL::URLcache;
22   require 5.004;
23 < use Utilities::HashDB;
24 <
24 < sub new {
25 <        my $class=shift;
26 <        $self={};
27 <        bless $self, $class;
28 <        $self->init(@_);
29 <        return $self;
30 < }
31 <
32 < sub filestore {
33 <        my $self=shift;
34 <        return $self->{cachedir};
35 < }
36 <
37 < sub filename {
38 <        my $self=shift;
39 <        my $url=shift;
40 <        
41 <        my $filenumber;
42 <
43 <        my $file=$self->file($url);
44 <        if ( $file eq "" ) {
45 <          # need to generate a new filename - a random number will do
46 <          srand();
47 <          do {
48 <            $filenumber=int(rand 9999999)+1;
49 <            $file=$self->filestore()."/".$filenumber;
50 <          } until ( ! ( -e $file ) );
51 <        }
52 <        return $file;
53 < }
54 <
55 < sub init {
56 <        my $self=shift;
57 <        $self->{cachetop}=shift;
58 <        $self->{cachedir}=$self->{cachetop}."/files";
59 <        AddDir::adddir($self->{cachedir});
60 <
61 <        $self->{cacheindex}=$self->{cachetop}."/index.db";
62 <        $self->{urlDB}=Utilities::HashDB->new();
63 <        if ( -f $self->{cacheindex} ) {
64 <          $self->{urlDB}->restore($self->{cacheindex});
65 <        }
66 <        else {
67 <          AddDir::adddir($self->{cachedir});
68 <        }
69 < }
70 <
71 < sub file {
72 <        my $self=shift;
73 <        my $url=shift;
74 <
75 <        my @found=$self->{urlDB}->getdata($url);
76 <        return ( ($#found == -1)?"":$found[0]);
77 < }
78 <
79 < sub delete {
80 <        my $self=shift;
81 <        my $url=shift;
82 <        unlink ($self->{urlDB}->getdata($URL));
83 <        $self->{urlDB}->deletedata($url);
84 <        $self->{urlDB}->store($self->{cacheindex});
85 < }
86 <
87 < sub store {
88 <        my $self=shift;
89 <        my $url=shift;
90 <        my $file=shift;
91 <
92 <        $self->{urlDB}->deletedata($url);
93 <        $self->{urlDB}->setdata($file,$url);
94 <        $self->{urlDB}->store($self->{cacheindex});
95 < }
96 <
97 < sub clear {
98 <        my $self=shift;
99 <        foreach $item ( $self->{urlDB}->match() ) {
100 <          $self->delete($item->keys());
101 <        }
102 < }
23 > use Utilities::IndexedFileStore;
24 > @ISA=qw(Utilities::IndexedFileStore)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines