NAME AnyEvent::Connection - Base class for tcp connectful clients SYNOPSIS package MyTCPClient; use base 'AnyEvent::Connection'; package main; my $client = MyTCPClient->new( host => 'localhost', port => 12345, ); $client->reg_cb( connected => sub { my ($client,$connection,$host,$port) = @_; # ... $client->after( $interval, sub { # Called after interval, if connection still alive } ); } connfail = sub { my ($client,$reason) = @_; # ... }, disconnect => sub { my ($client,$reason) = @_; }, error => sub { my ($client,$error) = @_; # Called in error conditions for callbackless methods }, ); $client->connect; EVENTS connected ($connobject, $host, $port) Called when client get connected. connfail Called, when client fails to connect disconnect Called whenever client disconnects error Called in error conditions for callbackless methods (for ex: when calling push_write on non-connected client) OPTIONS host Host to connect to port Port to connect to timeout [ = 3 ] Connect/read/write timeout in seconds reconnect [ = 1 ] If true, automatically reconnect after disconnect/connfail after delay $reconnect seconds rawcon [ = AnyEvent::Connection::Raw ] Class that implements low-level connection OPERATION METHODS new Cleates connection object (see OPTIONS) connect Begin connection disconnect ($reason) Close current connection. reason is optional reconnect Close current connection and establish a new one after($interval, $cb->()) Helper method. AE::timer(after), associated with current connection Will be destroyed if connection is destroyed, so no timer invocation after connection destruction. periodic($interval, $cb->()) Helper method. AE::timer(periodic), associated with current connection Will be destroyed if connection is destroyed, so no timer invocation after connection destruction. periodic_stop() If called within periodic callback, periodic will be stopped. my $count; $client->periodic(1,sub { $client->periodic_stop if ++$count > 10; }); # callback will be called only 10 times; destroy Close connection, destroy all associated objects and timers, clean self CONNECT METHODS When connected, there are some methods, that proxied to raw connection or to AE::Handle push_write See AE::Handle::push_write push_read See AE::Handle::push_read unshift_read See AE::Handle::unshift_read say Same as push_write + newline reply Same as push_write + newline For next methods there is a feature. Callback will be called in any way, either by successful processing or by error or object destruction recv($bytes, %args, cb => $cb->()) Similar to $fh->push_read(chunk => $bytes, $cb->()); command($data, %args, cb => $cb->()); Similar to $fh->push_write($data); $fh->push_read(line => $cb->()); AUTHOR Mons Anderson, "" BUGS Please report any bugs or feature requests to "bug-anyevent-connection at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT You can find documentation for this module with the perldoc command. perldoc AnyEvent::Connection You can also look for information at: * RT: CPAN's request tracker * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings * Search CPAN ACKNOWLEDGEMENTS COPYRIGHT & LICENSE Copyright 2009 Mons Anderson, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.