Badger::Codec(3pm)

Badger::Codec3pm

Base class for encoding/decoding data

Usage

    # 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);

Introduction

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.

Overview

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.

Methods

encode($data)

Method for encoding data. This must be redefined in subclassed modules.

decode($data)

Method for decoding data. This must be redefined in subclassed modules.

encoder()

Returns a reference to a subroutine which performs the encoding operation.

decoder()

Returns a reference to a subroutine which performs the decoding operation.

Author

Andy Wardley <http://wardley.org/>

From libbadger-perl 0.16-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.