Badger::Codec - base class for encoding/decoding data
# creating a Badger::Codec subclass
package My::Codec;
use base 'Badger::Codec';
sub encode {
my ($self, $data) = @_;
# do something
return $encoded_data;
}
sub decode {
my ($self, $encoded_data) = @_;
# do something
return $decoded_data;
}
# using the subclass:
use My::Codec;
my $codec = My::Codec->new();
my $encoded = $codec->encode($some_data);
my $decoded = $codec->decode($encoded);
This documentation describes the inner working of codec modules. You should only
need to consult this documentation if you're writing a codec subclass. For a
general introduction to codecs and examples of use, please see Badger::Codecs.
This module implements a base class codec module for encoding and decoding data
to and from different formats. It must be subclassed to provide useful
implementations of the "encode()" and
"decode()" methods.
In most, if not all cases, subclasses will simply delegate to
subroutines provided by other modules. For example, the
Badger::Codec::Storable module delegates to the
"freeze()" and
"thaw()" methods provided by the Storable
module.
Method for encoding data. This must be redefined in subclassed modules.
Method for decoding data. This must be redefined in subclassed modules.
Returns a reference to a subroutine which performs the encoding operation.
Returns a reference to a subroutine which performs the decoding operation.
Andy Wardley <http://wardley.org/>
Copyright (C) 2005-2009 Andy Wardley. All rights reserved.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.