NAME
CGI::MxScreen::Serializer - Abstract serializer interface
SYNOPSIS
# Deferred class, only heirs may be instantiated
# In heirs:
use base qw(CGI::MxScreen::Serializer);
sub make {             # define the creation routine
    ...
    $self->_init(\&freeze, \&thaw, $compress);
}
# Access interface - $ser is an instantiated heir
my $serialized   = $ser->serialize($ref);
my $deserialized = $ser->deserialize($serialized);
DESCRIPTION
This module implements a serializer abstraction and should probably be a CPAN module of its own. I'm seriously thinking about it.
The CGI::MxScreen::Serializer class is deferred. The only thing it lacks is a creation routine, which will initialize the freeze and thaw attributes with code references to the proper freezing and thawing routines.
It bluntly assumes those routine will conform to the following signatures:
freeze(x: REF): STRING
thaw(x: STRING): REF
and satisfy the following condition, for every x:
thaw(freeze(x)).deep_equal(x)
where deep_equal is an operation testing that its arguments are structurally equivalent, whatever that means.
This class also supports on-the-fly compression and decompression of the serialized data via Compress::Zlib.
SUPPORTED SERIALIZERS
Currently, the only serializer available is CGI::MxScreen::Serializer::Storable which is simply installing Storable.
INTERFACE
Attributes
The following read-only attributes are defined. The are meant to be initialized at creation time via _init():
compress- 
A boolean flag, stating whether
Compress::Zlibcompression and decompression should be performed. freezer- 
A CODE reference on the freezing routine.
 thawer- 
A CODE reference on the thawing routine.
 
Routines
_initfreezer, thawer, compress_flag- 
This routine must be called by the
make()routine in heirs to initialize the attributes. deserializefrozen- 
Deserialize the frozen serialized string generated by
serialize()and return a reference to its root object. serializereference- 
Serialize the reference and return a string that can be deserialized by
deserialize. 
AUTHOR
Raphael Manfredi <Raphael_Manfredi@pobox.com>
SEE ALSO
CGI::MxScreen::Serializer::Storable(3).