ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Cache/CacheUtilities.pm
Revision: 1.2
Committed: Fri Dec 10 13:41:39 2004 UTC (20 years, 4 months ago) by sashby
Content type: text/plain
Branch: MAIN
CVS Tags: V1_0_0
Changes since 1.1: +62 -0 lines
Log Message:
Merged V1_0 branch to HEAD

File Contents

# User Rev Content
1 sashby 1.2 #____________________________________________________________________
2     # File: CacheUtilities.pm
3     #____________________________________________________________________
4     #
5     # Author: Shaun Ashby <Shaun.Ashby@cern.ch>
6     # Update: 2003-10-30 11:51:58+0100
7     # Revision: $Id: CacheUtilities.pm,v 1.1.2.2 2004/09/28 15:54:00 sashby Exp $
8     #
9     # Copyright: 2003 (C) Shaun Ashby
10     #
11     #--------------------------------------------------------------------
12     package Cache::CacheUtilities;
13     require 5.004;
14    
15     use IO::File;
16     use English;
17     use Exporter;
18    
19     @ISA=qw(Exporter);
20    
21     #
22     # Common functions for interacting with caches:
23     #
24    
25     sub read()
26     {
27     my ($cachefilename) = @_;
28     my $cachefh = IO::File->new($cachefilename, O_RDONLY)
29     || die "Unable to read cached data file $cachefilename: ",$ERRNO,"\n";
30     my @cacheitems = <$cachefh>;
31     close $cachefh;
32    
33     # Copy the new cache object to self and return:
34     $cache = eval "@cacheitems";
35     die "Cache load error: ",$EVAL_ERROR,"\n", if ($EVAL_ERROR);
36     return $cache;
37     }
38    
39     sub write()
40     {
41     my ($cacheobject,$cachefilename) = @_;
42    
43     use Data::Dumper;
44     use File::Copy;
45    
46     # Rename the cache file to make a backup copy:
47     move($cachefilename,$cachefilename.".bak") if ( -r $cachefilename);
48     # Dump the cache to file:
49     my $cachefh = IO::File->new($cachefilename, O_WRONLY|O_CREAT)
50     or die "Couldn't write to $cachefilename: ",$ERRNO,"\n";
51    
52     # Name that should replace "VAR1" in the dumped
53     # representation of the cache object:
54     $Data::Dumper::Varname='cache';
55     $Data::Dumper::Purity = 1;
56     print $cachefh Dumper($cacheobject);
57     close $cachefh;
58    
59     return;
60     }
61    
62     1;