Daisuke Maki
and 1 contributors

NAME

EV::Bind - Easier Interface To EV's Callbacks

SYNOPSIS

  use EV;
  use EV::Watcher::Bind;

  EV::io_bind($fh, $mask, $callback, @args);

DESCRIPTION

Highly experimental. You've been warned.

EV::Watcher::Bind provides a simple interface to EV.pm's watcher methods that allows you to bind arguments as well as the watcher being created to the callback being registerd.

If you have, for example, an object that you want to use as your callback, you always need to do

  my $obj = ...;
  my @args = (1, 2, 3);
  my $io = EV::io($fh, $mask, sub { $obj->foo(@args) });

With EV::Watcher::Bind, you can do

  my $io = EV::io_bind($fh, $mask, \&foo, $obj, @args);

The functions provided by EV::Watcher::Bind also has the advantage of passing you the EV::Watcher object that caused your callback to execute as the last argument in your callback. In the above example, foo() could have be implemented like so:

  sub foo {
    my ($self, $arg1, $arg2, $arg3, $w) = @_;
    $w->stop;
  }

METHODS

EV::Watcher::Bind provides the following functions:

EV::io_bind

EV::io_ns_bind

EV::timer_bind

EV::timer_ns_bind

EV::periodic_bind

EV::periodic_ns_bind

EV::signal_bind

EV::signal_ns_bind

EV::child_bind

EV::child_ns_bind

EV::idle_bind

EV::idle_ns_bind

EV::prepare_bind

EV::prepare_ns_bind

EV::check_bind

EV::check_ns_bind

AUTHOR

Copyright (c) 2007 Daisuke Maki <daisuke@endeworks.jp>

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