annotate variant_effect_predictor/Bio/EnsEMBL/IdMapping/Serialisable.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 Bio::EnsEMBL::IdMapping::Serialisable - base class for serialisable objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 # instantiate an object which extends Serialisable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 my $object = YourObject->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 -DUMP_PATH => '/tmp',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 -CACHE_FILE => 'object_cache.ser',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 # serialise object to file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 my $filesize = $object->write_to_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 print LOG "Serialised object to file of size $filesize.\n";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 # later, create another object defining the same serialisation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 # location. specifying -LOAD_AUTO will automatically load it from the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 # serialisation file.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 my $object1 = YourObject->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 -DUMP_PATH => '/tmp',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 -CACHE_FILE => 'object_cache.ser',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 -LOAD_AUTO => 1,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 # alternatively, manually load the object from file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 $object1->load_from_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 This is the base class for serialisable objects used by the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 stable Id mapping. It's essentially an OO wrapper for Storable,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 providing a method to store (write_to_file(()) and one to retrieve
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 (read_from_file()) serialised objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 This class is not instantiated itself, but rather extended by
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 implementing classes.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 =head1 METHODS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 write_to_file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 read_from_file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 dump_path
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 cache_file_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66 cache_file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 loaded
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 package Bio::EnsEMBL::IdMapping::Serialisable;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 no warnings 'uninitialized';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 use Bio::EnsEMBL::Utils::ScriptUtils qw(parse_bytes);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 use Storable qw(nstore retrieve);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Arg [DUMP_PATH] : String - path for object serialisation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Arg [CACHE_FILE] : String - filename of serialised object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Arg [AUTO_LOAD] : Boolean - determines whether object should be automatically
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 loaded on instantiation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Description : Constructor.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Return type : Bio::EnsEMBL::IdMapping::Serialisable implementing object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 Exceptions : thrown on missing argument
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 Caller : implementing subclass
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 my $caller = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 my $class = ref($caller) || $caller;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 my ($dump_path, $cache_file, $auto_load) =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 rearrange([qw(DUMP_PATH CACHE_FILE AUTO_LOAD)], @_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 throw("You must provide a cache file name") unless ($cache_file);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 my $self = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 bless ($self, $class);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 # initialise internal datastructure
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 $self->{'dump_path'} = $dump_path || '.';
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 $self->{'cache_file_name'} = $cache_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 # automatically load serialised object from file if requested
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 if ($auto_load) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 if (-s $self->cache_file) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 $self->read_from_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 $self->{'loaded'} = 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 =head2 write_to_file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 Example : my $filesize = $object->write_to_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 Description : Serialises an object to a file (determined by
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 $self->cache_file).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 Return type : String - size of serialisation file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Exceptions : thrown on I/O errors
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 sub write_to_file {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 # create dump directory if it doesn't exist
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 if (my $dump_path = $self->dump_path) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 unless (-d $dump_path) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 system("mkdir -p $dump_path") == 0 or
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 throw("Unable to create directory $dump_path.\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 my $cache_file = $self->cache_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 eval { nstore($self->{'cache'}, $cache_file) };
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 if ($@) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 throw("Unable to store $cache_file: $@\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 my $size = -s $cache_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 return parse_bytes($size);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 =head2 read_from_file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 Example : $object->read_from_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 Description : Reads a serialised object from file (determined by
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 $self->cache_file).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Return type : Bio::EnsEMBL::IdMapping::Serialisable implementing object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Exceptions : thrown on I/O errors
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 sub read_from_file {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 my $cache_file = $self->cache_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 unless (-s $cache_file) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 throw("No valid cache file found at $cache_file.");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 eval { $self->{'cache'} = retrieve($cache_file); };
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 if ($@) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 throw("Unable to retrieve cache: $@");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 =head2 dump_path
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 Arg[1] : String - dump path for serialisation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Example : $object->dump_path('/tmp');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 Description : Getter/setter for the dump path for serialisation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 sub dump_path {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 $self->{'dump_path'} = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 return $self->{'dump_path'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 =head2 cache_file_name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 Arg[1] : String - file name for serialisation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 Example : $object->cache_file_name('object_cache.ser');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 Description : Getter/setter for the file name for serialisation.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 sub cache_file_name {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 $self->{'cache_file_name'} = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 return $self->{'cache_file_name'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 =head2 cache_file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 Example : my $cache_file = $object->cache_file;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 Description : Returns the path and name of the serialised object file.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 Return type : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 sub cache_file {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 return $self->dump_path.'/'.$self->cache_file_name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 =head2 loaded
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 Arg[1] : Boolean - "loaded" status
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 Example : if ($object->loaded) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 # do something with the object that was loaded from a file
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 # the object wasn't loaded but is new, so fill it
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 Description : Indicates whether a given object was loaded from its serialised
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 state on disk.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 Return type : Boolean - TRUE if loaded from disk, FALSE otherwise
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 Status : At Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 : under development
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 sub loaded {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 $self->{'loaded'} = shift if (@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 return $self->{'loaded'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277