POE::Filter::IRCD.3pm

Langue: en

Version: 2008-03-07 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

POE::Filter::IRCD - A POE-based parser for the IRC protocol.

SYNOPSIS

     use POE::Filter::IRCD;
 
     my $filter = POE::Filter::IRCD->new( debug => 1, colonify => 0 );
     my $arrayref = $filter->get( [ $hashref ] );
     my $arrayref2 = $filter->put( $arrayref );
 
     use POE qw(Filter::Stackable Filter::Line Filter::IRCD);
 
     my ($filter) = POE::Filter::Stackable->new();
     $filter->push( POE::Filter::Line->new( InputRegexp => '\015?\012', OutputLiteral => "\015\012" ),
                    POE::Filter::IRCD->new(), );
 
 

DESCRIPTION

POE::Filter::IRCD provides a convenient way of parsing and creating IRC protocol lines. It provides the parsing engine for POE::Component::Server::IRC and POE::Component::IRC. A standalone version exists as Parse::IRC.

CONSTRUCTOR

new
Creates a new POE::Filter::IRCD object. Takes two optional arguments:
   'debug', which will print all lines received to STDERR;
   'colonify', set to 1 to force the filter to always colonify the last param passed in a put(),
               default is 0. See below for more detail.
 
 

METHODS

get_one_start
get_one
get_pending
get
Takes an arrayref which is contains lines of IRC formatted input. Returns an arrayref of hashrefs which represents the lines. The hashref contains the following fields:
   prefix
   command
   params ( this is an arrayref )
   raw_line
 
 

For example, if the filter receives the following line, the following hashref is produced:

   LINE: ':moo.server.net 001 lamebot :Welcome to the IRC network lamebot'
 
   HASHREF: {
                 prefix   => ':moo.server.net',
                 command  => '001',
                 params   => [ 'lamebot', 'Welcome to the IRC network lamebot' ],
                 raw_line => ':moo.server.net 001 lamebot :Welcome to the IRC network lamebot',
            }
 
 
put
Takes an arrayref containing hashrefs of IRC data and returns an arrayref containing IRC formatted lines. Optionally, one can specify 'colonify' to override the global colonification option. eg.
   $hashref = { 
                 command => 'PRIVMSG', 
                 prefix => 'FooBar!foobar@foobar.com', 
                 params => [ '#foobar', 'boo!' ],
                 colonify => 1, # Override the global colonify option for this record only.
               };
 
   $filter->put( [ $hashref ] );
 
 
clone
Makes a copy of the filter, and clears the copy's buffer.
debug
With a true or false argument, enables or disables debug output respectively. Without an argument the behaviour is to toggle the debug status.

MAINTAINER

Chris Williams <chris@bingosnet.co.uk>

AUTHOR

Jonathan Steinert

SEE ALSO

POE

POE::Filter

POE::Filter::Stackable

POE::Component::Server::IRC

POE::Component::IRC

Parse::IRC