Provided by: libpoe-component-client-keepalive-perl_0.2720-3_all bug

NAME

       POE::Component::Connection::Keepalive - a wheel wrapper around a kept-alive socket

VERSION

       version 0.272

SYNOPSIS

         See the SYNOPSIS for POE::Component::Client::Keepalive for a
         complete working example.

         my $connection = $response->{connection};
         $heap->{connection} = $connection;

         $connection->start( InputEvent => "got_input" );

         delete $heap->{connection};  # When done with it.

DESCRIPTION

       POE::Component::Connection::Keepalive is a helper class for POE::Component::Client::Keepalive.  It wraps
       managed sockets, providing a few extra features.

       Connection objects free their underlying sockets when they are DESTROYed.  This eliminates the need to
       explicitly free sockets when you are done with them.

       Connection objects manage POE::Wheel::ReadWrite objects internally, saving a bit of effort.

       new
         Creates a new POE::Component::Connection::Keepalive instance.  It accepts two parameters: A socket
         handle (socket) and a reference to a POE::Component::Client::Keepalive object to manage the socket when
         the connection is destroyed.

           my $conn = POE::Component::Connection::Keepalive->new(
             socket  => $socket_handle,
             manager => $poe_component_client_keepalive,
           );

         new() is usually called by a POE::Component::Client::Keepalive object.

       start
         Starts a POE::Wheel::ReadWrite object.  All parameters except Handle for start() are passed directly to
         POE::Wheel::ReadWrite's constructor.  Handle is provided by the connection object.  start() returns a
         reference to the new POE::Wheel::ReadWrite object, but it is not necessary to save a copy of that
         wheel.  The connection object keeps a copy of the reference internally, so the wheel will persist as
         long as the connection does.  The POE::Wheel::ReadWrite object will be DESTROYed when the connection
         object is.

           # Asynchronous connection from Client::Keepalive.
           sub handle_connection {
             my $connection_info = $_[ARG0];
             $_[HEAP]->{connection} = $connection_info->{connection};

             $heap->{connection}->start(
               InputEvent => "got_input",
               ErrorEvent => "got_error",
             );
           }

           # Stop the connection (and the wheel) when an error occurs.
           sub handle_error {
             delete $_[HEAP]->{connection};
           }

       wheel
         Returns a reference to the internal POE::Wheel::ReadWrite object, so that methods may be called upon
         it.

           $heap->{connection}->wheel()->pause_input();

       close
         Closes the connection immediately. Calls shutdown_input() and shutdown_output() on the wheel also.

SEE ALSO

       POE POE::Component::Client::Keepalive POE::Wheel::ReadWrite

BUGS

       None known.

LICENSE

       This distribution is copyright 2004-2009 by Rocco Caputo.  All rights are reserved.  This distribution is
       free software; you may redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

       Rocco Caputo <rcaputo@cpan.org>

       Special thanks to Rob Bloodgood.