package NetHirc::Totalitarian;
use strict;
use warnings;
use IO::File;
use POE qw(Kernel Session Wheel::ReadWrite);
use POSIX ();
use YAML ();
use NetHirc::BigBrother;
use NetHirc::Util;
my @events = qw(
_start
_stop
check
on
off
);
sub new
{
shift;
POE::Session->create(
'package_states' => [ 'NetHirc::Totalitarian' => [ @events ] ],
'args' => [ @_ ],
);
}
sub _start
{
my ($kernel, $heap, $announce) = @_[KERNEL, HEAP, ARG0];
$kernel->alias_set('nethirc_totalitarian');
my $brother = NetHirc::BigBrother->new();
$brother->{'announce'} = $announce;
$heap->{'bigbrother'} = $brother;
$heap->{'toggle'} = 0;
}
sub _stop
{
my $heap = $_[HEAP];
delete $heap->{'bigbrother'};
}
sub check
{
debug('d', "check");
my ($heap, $text) = @_[HEAP, ARG0];
return unless $heap->{'toggle'};
my $brother = $heap->{'bigbrother'};
debug('d', "maybe revise");
$brother->check($text);
}
sub on
{
debug('d', "on");
my $heap = $_[HEAP];
$heap->{'toggle'} = 1;
}
sub off
{
debug('d', "off");
my $heap = $_[HEAP];
$heap->{'toggle'} = 0;
}
1;
__END__
syntax highlighted by Code2HTML, v. 0.9.1