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 "ready_for_read", as "sysread" uses.

  alarm
Implemented by wrapping "sleep".

  connect
Implemented by wrapping "ready_for_write", as "syswrite" uses.

  recv

  recvfrom
Implemented by wrapping "ready_for_read", as "sysread" uses.

  send
Implemented by wrapping "ready_for_write", as "syswrite" uses.

  sysread
Requires a lower-level method

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

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

  syswrite
Requires a lower-level method

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

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.

  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>