VERSION
version 0.272SYNOPSIS
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.