Future::IO::ImplBase(3pm)

NAME
"Future::IO::ImplBase" - base class for "Future::IO" implementations

DESCRIPTION
This package provides a few utility methods that may help writing actual Future::IO implementation classes. It is entirely optional; implementations are not required to use it.

CLASS METHODS

  APPLY
   __PACKAGE__->APPLY;

Attempts to set the value of the $Future::IO::IMPL variable to the name of the calling package.

DEFAULT METHODS
These methods are provided based on lower-level functionallity that the implementing class should provide.

  accept
Implemented by wrapping poll(POLLIN), as "sysread" uses.

  alarm
Implemented by wrapping "sleep".

  connect
Implemented by wrapping poll(POLLOUT), as "syswrite" uses.

  recv

  recvfrom
Implemented by wrapping poll(POLLIN), as "sysread" uses.

  send
Implemented by wrapping poll(POLLOUT), as "syswrite" uses.

  sysread
Requires a lower-level method

   $f = $class->poll( $fh, POLLIN );

which should return a Future that completes when the given filehandle may be ready for reading.

  syswrite
Requires a lower-level method

   $f = $class->poll( $fh, POLLOUT );

which should return a Future that completes when the given filehandle may be ready for writing.

LEGACY METHODS
The following methods are not considered part of the official "Future::IO" implementation API, and should not be relied upon when writing new code. However, existing code may still exist that uses them so for now they are provided as wrappers.

Later versions of this module may start printing deprecation warnings on these methods, so existing code ought to be updated to use the newer forms now.

  ready_for_read

  ready_for_write
   $f = $class->ready_for_read( $fh );

   $f = $class->ready_for_write( $fh );

Implemented by wrapping "poll" by passing in the "POLLIN" or "POLLOUT" flags respectively.

AUTHOR
Paul Evans <leonerd@leonerd.org.uk>