Danga::Socket::Callback - Use Danga::Socket From Callbacks
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();
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();
Creates a new instance of Danga::Socket::Callback. Takes the following parameters:
The socket/handle to read from.
Arbitrary data to be shared between your app and Danga::Socket::Callback.
Specify the code reference to be fired when the socket is ready to be read
Specify the code reference to be fired when the socket is ready to be written
Specify te code reference to be fired when there was an error
Specify the code reference to be fired when a HUP signal is received.
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.
Possibly. I don't claim to use 100% of Danga::Socket. If you find any, please report them (preferrably with a failing test case)
Copyright (c) Daisuke Maki <daisuke@endeworks.jp> All rights reserved.
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
To install Danga::Socket::Callback, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Danga::Socket::Callback
CPAN shell
perl -MCPAN -e shell install Danga::Socket::Callback
For more information on module installation, please visit the detailed CPAN module installation guide.