# NAME Danga::Socket::Callback - Use Danga::Socket From Callbacks # SYNOPSIS my $danga = Danga::Socket::Callback->new( handle => $socket, context => { ... }, on_read_ready => sub { ... }, on_write_ready => sub { ... }, on_error => sub { ... }, on_signal_hup => sub { ... }, ); Danga::Socket->EventLoop(); # DESCRIPTION Love the fact that Perlbal, Mogilefs, and friends all run fast because of Danga::Socket, but despise it because you need to subclass it every time? Well, here's a module for all you lazy people. Danga::Socket::Callback is a thin wrapper arond Danga::Socket that allows you to set callbacks to be called at various events. This allows you to define multiple Danga::Socket-based sockets without defining multiple classes: my $first = Danga::Socket::Callback->new( hadle => $sock1, on_read_ready => \&sub1 ); my $second = Danga::Socket::Callback->new( hadle => $sock2, on_read_ready => \&sub2 ); Danga::Socket->EventLoop(); # METHODS ## new Creates a new instance of Danga::Socket::Callback. Takes the following parameters: - handle The socket/handle to read from. - context Arbitrary data to be shared between your app and Danga::Socket::Callback. - on\_read\_ready Specify the code reference to be fired when the socket is ready to be read - on\_write\_ready Specify the code reference to be fired when the socket is ready to be written - on\_error Specify te code reference to be fired when there was an error - on\_signal\_hup Specify the code reference to be fired when a HUP signal is received. ## event\_read ## event\_write ## event\_err ## event\_hup Implements each method available from Danga::Socket. If the corresponding callbacks are available, then calls the callback. Each callback receives the Danga::Socket::Callback object. For event\_write, if no callback is available, then the default event\_write method from Danga::Socket is called. # BUGS Possibly. I don't claim to use 100% of Danga::Socket. If you find any, please report them (preferrably with a failing test case) # AUTHOR Copyright (c) Daisuke Maki All rights reserved. # LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html