Apache::Session::Serialize::Base64 - Use Storable and MIME::Base64


Apache-Session documentation Contained in the Apache-Session distribution.

Index


Code Index:

NAME

Top

Apache::Session::Serialize::Base64 - Use Storable and MIME::Base64 to zip up persistent data

SYNOPSIS

Top

 use Apache::Session::Serialize::Base64;

 $zipped = Apache::Session::Serialize::Base64::serialize($ref);
 $ref = Apache::Session::Serialize::Base64::unserialize($zipped);

DESCRIPTION

Top

This module fulfills the serialization interface of Apache::Session. It serializes the data in the session object by use of Storable's nfreeze() and thaw() functions, and MIME::Base64's encode_bas64 and decode_base64. The serialized data is ASCII text, suitable for storage in backing stores that don't handle binary data gracefully, such as Postgres.

AUTHOR

Top

This module was written by Jeffrey William Baker <jwbaker@acm.org>.

SEE ALSO

Top

Apache::Session::Serialize::Storable, Apache::Session


Apache-Session documentation Contained in the Apache-Session distribution.

#############################################################################
#
# Apache::Session::Serialize::Base64
# Serializes session objects using Storable and MIME::Base64
# Copyright(c) 2000 Jeffrey William Baker (jwbaker@acm.org)
# Distribute under the Perl License
#
############################################################################

package Apache::Session::Serialize::Base64;

use strict;
use vars qw($VERSION);
use MIME::Base64;
use Storable qw(nfreeze thaw);

$VERSION = '1.01';

sub serialize {
    my $session = shift;
    
    $session->{serialized} = encode_base64(nfreeze($session->{data}));
}

sub unserialize {
    my $session = shift;
    
    my $data = thaw(decode_base64($session->{serialized}));
    die "Session could not be unserialized" unless defined $data;
    #Storable can return undef or die for different errors
    $session->{data} = $data;
}

1;