The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

POE::Filter::Zlib::Stream - A POE filter wrapped around Compress::Zlib deflate and inflate.

SYNOPSIS

    use POE::Filter::Zlib::Stream;

    my $filter = POE::Filter::Zlib::Stream->new( deflateopts => { -Level => 9 } );
    my $scalar = 'Blah Blah Blah';
    my $compressed_array   = $filter->put( [ $scalar ] );
    my $uncompressed_array = $filter->get( $compressed_array );

    use POE qw(Filter::Stackable Filter::Line Filter::Zlib::Stream);

    my ($filter) = POE::Filter::Stackable->new();
    $filter->push( POE::Filter::Zlib::Stream->new(),
                   POE::Filter::Line->new( InputRegexp => '\015?\012', OutputLiteral => "\015\012" ),

DESCRIPTION

POE::Filter::Zlib::Stream provides a POE filter for performing compression/uncompression using Compress::Zlib. It is suitable for use with POE::Filter::Stackable.

Unlike POE::Filter::Zlib this filter uses deflate and inflate, not the higher level compress and uncompress.

Ideal for streaming compressed data over sockets.

CONSTRUCTOR

new

Creates a new POE::Filter::Zlib::Stream object. Takes some optional arguments:

  "deflateopts", a hashref of options to be passed to deflateInit();
  "inflateopts", a hashref of options to be passed to inflateInit();

Consult Compress::Zlib for more detail regarding these options.

METHODS

get
get_one_start
get_one

Takes an arrayref which is contains streams of compressed input. Returns an arrayref of uncompressed streams.

put

Takes an arrayref containing streams of uncompressed output, returns an arrayref of compressed streams.

clone

Makes a copy of the filter, and clears the copy's buffer.

AUTHOR

Chris Williams <chris@bingosnet.co.uk>

SEE ALSO

POE::Filter

Compress::Zlib

POE::Filter::Stackable