GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  POE::COMPONENT::IRC::PLUGIN::FOLLOWTAIL (3)

.ds Aq ’

NAME

POE::Component::IRC::Plugin::FollowTail - A PoCo-IRC plugin to follow the tail of an ever-growing file

CONTENTS

SYNOPSIS



 use POE qw(Component::IRC Component::IRC::Plugin::FollowTail);

 my $nickname = Flibble . $$;
 my $ircname = Flibble the Sailor Bot;
 my $ircserver = irc.blahblahblah.irc;
 my $filename = /some/such/file/here;
 my @channels = ( #Blah, #Foo, #Bar );

 my $irc = POE::Component::IRC->spawn(
     nick => $nickname,
     server => $ircserver,
     port => $port,
     ircname => $ircname,
 ) or die "Oh noooo! $!";

 POE::Session->create(
     package_states => [
         main => [ qw(_start irc_001 irc_tail_input irc_tail_error irc_tail_reset) ],
     ],
 );

  $poe_kernel->run();

 sub _start {
     $irc->plugin_add( FollowTail => POE::Component::IRC::Plugin::FollowTail->new(
         filename => $filename,
     ));
     $irc->yield( register => all );
     $irc->yield( connect => { } );
     return;
 }

 sub irc_001 {
     $irc->yield( join => $_ ) for @channels;
     return;
 }

 sub irc_tail_input {
     my ($kernel, $sender, $filename, $input) = @_[KERNEL, SENDER, ARG0, ARG1];
     $kernel->post( $sender, privmsg, $_, "$filename: $input" ) for @channels;
     return;
 }

 sub irc_tail_error {
     my ($kernel, $sender, $filename, $errnum, $errstring)
         = @_[KERNEL, SENDER, ARG0 .. ARG2];
     $kernel->post( $sender, privmsg, $_, "$filename: ERROR: $errnum $errstring" ) for @channels;
     $irc->plugin_del( FollowTail );
     return;
 }

 sub irc_tail_reset {
     my ($kernel, $sender, $filename) = @_[KERNEL, SENDER, ARG0];
     $kernel->post( $sender, privmsg, $_, "$filename: RESET EVENT" ) for @channels;
     return;
 }



DESCRIPTION

POE::Component::IRC::Plugin::FollowTail is a POE::Component::IRC plugin that uses POE::Wheel::FollowTail to follow the end of an ever-growing file. It generates irc_tail_ prefixed events for each new record that is appended to its file.

METHODS

CWnew

Takes two arguments:

<B>’filename’B>, the name of the file to tail, mandatory;

<B>’filter’B>, a POE::Filter object to pass to POE::Wheel::FollowTail, optional;

Returns a plugin object suitable for feeding to POE::Component::IRC’s plugin_add method.

OUTPUT EVENTS

The plugin generates the following additional POE::Component::IRC events:

CWirc_tail_input

Emitted for every complete record read. ARG0 will be the filename, ARG1 the record which was read.

CWirc_tail_error

Emitted whenever an error occurs. ARG0 will be the filename, ARG1 and ARG2 hold numeric and string values for $!, respectively.

CWirc_tail_reset

Emitted every time a file is reset. ARG0 will be the filename.

AUTHOR

Chris ’BinGOs’ Williams

SEE ALSO

POE::Component::IRC

POE::Wheel::FollowTail

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 POE::COMPONENT::IRC::PLUGIN::FOLLOWTAIL (3) 2014-06-28

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.