File Coverage

blib/lib/Apache/Session/Serialize/Storable.pm
Criterion Covered Total %
statement 15 15 100.0
branch 1 2 50.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 21 24 87.5


line stmt bran cond sub pod time code
1             #############################################################################
2             #
3             # Apache::Session::Serialize::Storable
4             # Serializes session objects using Storable
5             # Copyright(c) 2000 Jeffrey William Baker (jwbaker@acm.org)
6             # Distribute under the Perl License
7             #
8             ############################################################################
9              
10             package Apache::Session::Serialize::Storable;
11              
12 3     3   3737 use strict;
  3         7  
  3         144  
13 3     3   17 use vars qw($VERSION);
  3         5  
  3         218  
14 3     3   3893 use Storable qw(nfreeze thaw);
  3         19099  
  3         613  
15              
16             $VERSION = '1.01';
17              
18             sub serialize {
19 5     5 0 1064 my $session = shift;
20            
21 5         21 $session->{serialized} = nfreeze $session->{data};
22             }
23              
24             sub unserialize {
25 2     2 0 99 my $session = shift;
26            
27 2         32 my $data = thaw $session->{serialized};
28 2 50       107 die "Session could not be unserialized" unless defined $data;
29             #Storable can return undef or die for different errors
30 2         8 $session->{data} = $data;
31             }
32              
33             1;
34              
35             =pod
36              
37             =head1 NAME
38              
39             Apache::Session::Serialize::Storable - Use Storable to zip up persistent data
40              
41             =head1 SYNOPSIS
42              
43             use Apache::Session::Serialize::Storable;
44              
45             $zipped = Apache::Session::Serialize::Storable::serialize($ref);
46             $ref = Apache::Session::Serialize::Storable::unserialize($zipped);
47              
48             =head1 DESCRIPTION
49              
50             This module fulfills the serialization interface of Apache::Session.
51             It serializes the data in the session object by use of Storable's
52             C<nfreeze()> and C<thaw()> functions. The result is a binary object ready
53             for storage.
54              
55             =head1 AUTHOR
56              
57             This module was written by Jeffrey William Baker <jwbaker@acm.org>.
58              
59             =head1 SEE ALSO
60              
61             L<Apache::Session::Serialize::Base64>, L<Apache::Session>