Provided by: libpoe-component-ikc-perl_0.2305-1_all bug

NAME

       POE::Component::IKC::Client - POE Inter-Kernel Communication client

SYNOPSIS

           use POE;
           use POE::Component::IKC::Client;
           POE::Component::IKC::Client->spawn(
               ip=>$ip,
               port=>$port,
               name=>"Client$$",
               subscribe=>[qw(poe:/*/timserver)]
           );
           ...
           $poe_kernel->run();

DESCRIPTION

       This module implements an POE IKC client.  An IKC client attempts to connect to a IKC server.  If
       successful, it negociates certain connection parameters.  After this, the POE server and client are
       pretty much identical.

EXPORTED FUNCTIONS

   create_ikc_client
       Syntatic sugar for POE::Component::IKC::Client->spawn.

CLASS METHODS

   spawn
       This methods initiates all the work of connecting to an IKC server.  Parameters are :

       "ip"
           Address  to  connect to.  Can be a doted-quad ('127.0.0.1') or a host name ('foo.pied.nu').  Defaults
           to '127.0.0.1', aka INADDR_LOOPBACK.

       "port"
           Port to connect to.  Can be numeric (80) or a service ('http').

       "unix"
           Path to unix-domain socket that the server is listening on.

       "name"
           Local kernel name.  This is how we shall "advertise" ourself to foreign kernels. It acts as a "kernel
           alias".  This parameter is temporary, pending the addition of true kernel  names  in  the  POE  core.
           This  name,  and all aliases will be registered with the responder so that you can post to them as if
           they were remote.

       "aliases"
           Arrayref of even more aliases for this kernel.  Fun Fun Fun!

       "on_connect"
           Coderef that is called when the connection has been made to the foreign kernel.  Normaly,  you  would
           use this to start the sessions that post events to foreign kernels.

           Note, also, that the coderef will be executed from within an IKC channel session, NOT within your own
           session.  This means that things like $poe_kernel->delay_set() won't do what you think they should.

           It does, however, mean that you can get the session ID of the IKC channel for this connection.

               POE::Component::IKC::Client->spawn(
                   ....
                       on_connect=>sub {
                           $heap->{channel} = $poe_kernel->get_active_session()->ID;
                       },
                   ....
                   );

           However,   IKC/monitor   provides   a   more  powerful  mechanism  for  detecting  connections.   See
           POE::Component::IKC::Responder.

       "on_error"
           Coderef that is called for all connection errors. You  could  use  this  to  restart  the  connection
           attempt.     Parameters    are    "$operation,    $errnum   and   $errstr",   which   correspond   to
           POE::Wheel::SocketFactory's FailureEvent, which q.v.

           However,  IKC/monitor   provides   a   more   powerful   mechanism   for   detecting   errors.    See
           POE::Component::IKC::Responder.

           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.

       "serializers"
           Arrayref or scalar of the packages that you want to use for data serialization.  First IKC  tries  to
           load  each  package.   Then, when connecting to a server, it asks the server about each one until the
           server agrees to a serializer that works on its side.

           A  serializer   package   requires   2   functions   :   freeze   (or   nfreeze)   and   thaw.    See
           "POE::Filter::Reference".

           The default is "[qw(Storable FreezeThaw POE::Component::IKC::Freezer)]".  "Storable" and "FreezeThaw"
           are  modules  in  C  on  CPAN.   They  are  much  much  much  faster  then  IKC's built-in serializer
           "POE::Component::IKC::Freezer".  This serializer uses "Data::Dumper" and "eval $code" to get the deed
           done.  There is an obvious security problem here.  However, it has the advantage of being  pure  Perl
           and all modules come with the core Perl distribution.

           It  should  be  noted that you should have the same version of "Storable" on both sides, because some
           versions aren't mutually compatible.

       "protocol"
           Which IKC negociation protocol to use.  The original protocol ("IKC") was synchronous and slow.   The
           new  protocol  ("IKC0")  sends  all information at once.  IKC0 will degrade gracefully to IKC, if the
           client and server don't match.

           Default is IKC0.

BUGS

AUTHOR

       Philip Gwyn, <perl-ikc at pied.nu>

COPYRIGHT AND LICENSE

       Copyright 1999-2011 by Philip Gwyn.  All rights reserved.

       This library is free software; you can redistribute it and/or modify it under  the  same  terms  as  Perl
       itself.

       See <http://www.perl.com/language/misc/Artistic.html>

SEE ALSO

       POE, POE::Component::IKC::Server, POE::Component::IKC::Responder.

perl v5.18.1                                       2013-02-11                                   IKC::Client(3pm)