Why not adopt me?
NAME
IRC::Indexer::Trawl::Multi - Trawl multiple IRC servers
SYNOPSIS
## Inside a POE session:
my $multi = IRC::Indexer::Trawl::Multi->new(
Servers => [
'eris.cobaltirc.org',
'raider.blackcobalt.net',
[ 'phoenix.xyloid.org', '7000' ],
{
Server => 'irc.netlandtowers.com',
Port => 7000,
UseIPV6 => 1,
. . .
},
. . .
],
## For other opts, see: perldoc IRC::Indexer::Trawl::Bot
);
$multi->run;
## Later:
if ( $multi->done ) {
my $trawled = $multi->dump;
for my $server (keys %$trawled) {
## The server information hash:
my $this_hash = $trawled->{$server};
## Get IRC::Indexer::Trawl::Bot object:
my $this_trawler = $multi->trawler($server);
## Get IRC::Indexer::Report::Server object:
my $this_info = $this_trawler->info;
## For parsing details, see:
## perldoc IRC::Indexer::Trawl::Bot
## perldoc IRC::Indexer::Report::Server
}
} else {
## Active trawlers remain.
}
DESCRIPTION
A simple manager for groups of IRC::Indexer::Trawl::Bot instances.
This is mostly an example; it is not used by any of the included controllers and is not at all sophisticated. You're probably better off managing your own pool of IRC::Indexer::Trawl::Bot sessions.
Given an array (reference) of server addresses, it will spawn trawlers for each server that run in parallel; when they're all finished, done() will return boolean true and dump() will return a hash reference, keyed on server name, of IRC::Indexer::Trawl::Bot netinfo() hashes.
Servers option in constructor also accepts per-server hash references created out of server spec files.
BUGS
Example module, mostly; hardly tested. Lacks a useful postback interface. Patches welcome :-)
AUTHOR
Jon Portnoy <avenj@cobaltirc.org>