Skip to content

lestrrat-p5/Danga-Socket-Callback

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 [email protected] 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

About

Datan::Socket with a callback interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages