Rechercher une page de manuel
POE::Component::IKC::Channel.3pm
Langue: en
Version: 2008-12-06 (ubuntu - 08/07/09)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAME
POE::Component::IKC::Channel - POE Inter-Kernel Communication I/O sessionSYNOPSIS
use POE; use POE::Component::IKC::Channel; create_ikc_channel($handle, $name, $on_connect, $subscribe, $rname, $unix);
DESCRIPTION
This module implements an POE IKC I/O. When a new connection is established, "IKC::Server" and "IKC::Client" create an "IKC::Channel" to handle the I/O.IKC communication happens in 2 phases : negociation phase and normal phase.
The negociation phase uses "Filter::Line" and is used to exchange various parameters between kernels (example : kernel names, what type of freeze/thaw to use, etc). After negociation, "IKC::Channel" switches to a "Filter::Reference" and creates a "IKC::Responder", if needed. After this, the channel forwards reads and writes between "Wheel::ReadWrite" and the Responder.
"IKC::Channel" is also in charge of cleaning up kernel names when the foreign kernel disconnects.
EXPORTED FUNCTIONS
create_ikc_channel
This function initiates all the work of connecting to a IKC connection channel. It is a wrapper around "spawn".METHODS
spawn
POE::Component::IKC::Channel->spawn(%param);
Creates a new IKC channel to handle the negociations then the actual data.
Parameters are keyed as follows:
- handle
- The perl handle we should hand to "Wheel::ReadWrite::new".
- kernel_name
- The name of the local kernel. This is a stop-gap until event naming has been resolved.
- on_connect
- Code ref that is called when the negociation phase has terminated. Normaly, you would use this to start the sessions that post events to foreign kernels.
- subscribe
- Array ref of specifiers (either foreign sessions, or foreign states) that you want to subscribe to. $on_connect will only be called if you can subscribe to all those specifiers. If it can't, it will die().
- unix
- A flag indicating that the handle is a Unix domain socket or not.
- aliases
- Arrayref of aliases for the local kernel.
- serializers
- Arrayref or scalar of the packages that you want to use for data serialization. A serializer package requires 2 functions : freeze (or nfreeze) and thaw. See "POE::Component::IKC::Client".
EVENTS
shutdown
This event causes the server to close it's socket and skiddadle on down the road. Normally it is only posted from IKC::Responder.If you want to post this event yourself, you can get the channel's session ID from IKC::Client's on_connect:
POE::Component::IKC::Client->spawn( .... on_connect=>sub { $heap->{channel} = $poe_kernel->get_active_session()->ID; }, .... );
Then, when it becomes time to disconnect:
$poe_kernel->call($heap->{channel} => 'shutdown');
Yes, this is a hack. A cleaner machanism needs to be provided.
BUGS
AUTHOR
Philip Gwyn, <perl-ikc at pied.nu>COPYRIGHT AND LICENSE
Copyright 1999-2008 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::Client, POE::Component::IKC::ResponderContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre