IKC Client and deprecated functions

Josh803316 <[email protected]>
Newsgroups gmane.comp.lang.perl.poe
Message-ID <[email protected]>
Hello POE world,I'm trying to create a package that will spawn IKC clients.
I see that on_connect, on_error and subscribe are deprecated but all docs
and cookbook programs use the deprecated examples.  What would be the best
way to implement my __spawn function using the ikc responder/monitor instead
of the old deprecated functions for the client.
************ FROM IKC CLIENT DOCS **************
         on_connect
         DEPRECATED. Please use the IKC/monitor stuff. See
POE::Component::IKC::Responder<http://search.cpan.org/%7Egwyn/POE-Component-IKC-0.2003/IKC/Responder.pm>
.

on_error

DEPRECATED. Please use the IKC/monitor stuff. See
POE::Component::IKC::Responder<http://search.cpan.org/%7Egwyn/POE-Component-IKC-0.2003/IKC/Responder.pm>.
Note, also, that the coderef will be executed from within an IKC session,
NOT within your own session. This means that things like
$poe_kernel->delay_set() won't do what you think they should.

          subscribe

Array ref of specifiers (either foreign sessions, or foreign states) that
you want to subscribe to. on_connect will only be called when IKC has
managed to subscribe to all specifiers. If it can't, it will die(). YOW that
sucks.         monitor will save us all.

***********************************************************

################### CODE #################
sub __spawn {
    my $class = shift;

    my $addr = $class->IP || '127.0.0.1';
    my $port = $class->PORT || 5667;

    ## spawn all the ikc client
    my $server = POE::Component::IKC::Client->spawn(
        ip         => $addr,
        port       => $port,
        name       => "Client$$",
        on_connect => sub {

            POE::Session->create(
                package_states =>
                  ## extract all subroutines that don't start with "__"
                  ## and allocate them as states:
                  [ (__PACKAGE__) => [ do {
                            no strict 'refs';
                            grep { !/^__/ and defined &$_ } keys %{
__PACKAGE__ . "::" };
                          } ] ],
                ## pass args into _start:
                args => [@_],
            );
        },
        on_error  => sub {
            my ( $kernel ) = $_[ KERNEL];
            print Dumper($kernel);

        },
        subscribe =>[qw(poe:/*)]

    );

    return $server;
}
#################################################

--J
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.