POE::Filter::Block man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

POE::Filter::Block(3) User Contributed Perl DocumentationPOE::Filter::Block(3)

NAME
       POE::Filter::Block - translate data between streams and blocks

SYNOPSIS
	 #!perl

	 use warnings;
	 use strict;
	 use POE::Filter::Block;

	 my $filter = POE::Filter::Block->new( BlockSize => 8 );

	 # Prints three lines: abcdefgh, ijklmnop, qrstuvwx.
	 # Bytes "y" and "z" remain in the buffer and await completion of the
	 # next 8-byte block.

	 $filter->get_one_start([ "abcdefghijklmnopqrstuvwxyz" ]);
	 while (1) {
	   my $block = $filter->get_one();
	   last unless @$block;
	   print $block->[0], "\n";
	 }

	 # Print one line: yz123456

	 $filter->get_one_start([ "123456" ]);
	 while (1) {
	   my $block = $filter->get_one();
	   last unless @$block;
	   print $block->[0], "\n";
	 }

DESCRIPTION
       POE::Filter::Block translates data between serial streams and blocks.
       It can handle fixed-length and length-prepended blocks, and it may be
       extended to handle other block types.

       Fixed-length blocks are used when Block's constructor is called with a
       BlockSize value.	 Otherwise the Block filter uses length-prepended
       blocks.

       Users who specify block sizes less than one deserve what they get.

       In variable-length mode, a LengthCodec parameter may be specified.  The
       LengthCodec value should be a reference to a list of two functions: the
       length encoder, and the length decoder:

	 LengthCodec => [ \&encoder, \&decoder ]

       The encoder takes a reference to a buffer and prepends the buffer's
       length to it.  The default encoder prepends the ASCII representation of
       the buffer's length and a chr(0) byte to separate the length from the
       actual data:

	 sub _default_encoder {
	   my $stuff = shift;
	   substr($$stuff, 0, 0) = length($$stuff) . "\0";
	   return;
	 }

       The corresponding decoder returns the block length after removing it
       and the separator from the buffer.  It returns nothing if no length can
       be determined.

	 sub _default_decoder {
	   my $stuff = shift;
	   unless ($$stuff =~ s/^(\d+)\0//s) {
	     warn length($1), " strange bytes removed from stream"
	       if $$stuff =~ s/^(\D+)//s;
	     return;
	   }
	   return $1;
	 }

       This filter holds onto incomplete blocks until they are completed.

PUBLIC FILTER METHODS
       POE::Filter::Block has no additional public methods.

SEE ALSO
       Please see POE::Filter for documentation regarding the base interface.

       The SEE ALSO section in POE contains a table of contents covering the
       entire POE distribution.

BUGS
       The put() method doesn't verify block sizes.

AUTHORS & COPYRIGHTS
       The Block filter was contributed by Dieter Pearcey, with changes by
       Rocco Caputo.

       Please see POE for more information about authors and contributors.

perl v5.14.2			  2011-12-15		 POE::Filter::Block(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net