Class Poll
In: poll.c
lib/poll.rb
Parent: Object

An object-oriented poll() implementation for Ruby

Methods

add   addMask   args   callback   clear   events   handles   hasCallback?   has_callback?   inspect   mask   new   poll   register   registered?   remove   removeMask   setCallback   setMask   unregister  

Classes and Modules

Class Poll::EventMask

Constants

POLLIN = INT2NUM(POLLIN)
IN = INT2NUM(POLLIN)
POLLPRI = INT2NUM(POLLPRI)
PRI = INT2NUM(POLLPRI)
POLLOUT = INT2NUM(POLLOUT)
OUT = INT2NUM(POLLOUT)
POLLERR = INT2NUM(POLLERR)
ERR = INT2NUM(POLLERR)
POLLHUP = INT2NUM(POLLHUP)
HUP = INT2NUM(POLLHUP)
POLLNVAL = INT2NUM(POLLNVAL)
NVAL = INT2NUM(POLLNVAL)
POLLRDNORM = INT2NUM(POLLRDNORM)
RDNORM = INT2NUM(POLLRDNORM)
POLLRDBAND = INT2NUM(POLLRDBAND)
RDBAND = INT2NUM(POLLRDBAND)
POLLWRNORM = INT2NUM(POLLWRNORM)
WRNORM = INT2NUM(POLLWRNORM)
POLLWRBAND = INT2NUM(POLLWRBAND)
WRBAND = INT2NUM(POLLWRBAND)
POLLMSG = INT2NUM(POLLMSG)
MSG = INT2NUM(POLLMSG)
Version = /([\d\.]+)/.match( %q$Revision: 1.10 $ )[1]   Class constants
Rcsid = %q$Id: poll.rb,v 1.10 2002/10/21 03:47:01 deveiant Exp $

Public Class methods

Create and return new poll object.

Public Instance methods

add( io, eventMask, callback=nil, *arguments, &block )

Alias for register

Add (bitwise OR) the specified eventMask to the mask for the specified io. Returns the new mask.

Returns the per-handle callback arguments associated with the specified io as an Array. If no callback exists for the given io, nil is returned.

Returns the per-handle callback associated with the specified io. If no callback exists for the given io, nil is returned.

Clear all registered handles from the poll object. Returns the handles that were cleared.

Fetch an Array of handles which had the events specified by eventMask happen to them in the last call to poll. If eventMask is nil, an Array of all handles with pending events is returned.

Fetch an Array of handles that are masked to receive the specified eventMask. If eventMask is nil, an Array of all registered handles is returned.

Returns true if the specified io has a callback associated with it.

has_callback?( io )

Alias for hasCallback?

Return a human-readable string describing the poll object.

Get the EventMask for the specified io.

Call the system-level poll function with the handles registered to the receiver. Any callbacks specified when the handles were registered are run for those handles with events. If a block is given, it will be invoked once for each handle which doesn‘t have an explicit handler. The timeout argument is the number of floating-point seconds to wait for an event before returning; negative timeout values will cause poll to block until there is at least one event to report. This method returns the number of handles on which one or more events occurred.

Register the specified IO object with the specified eventMask. If the optional callback parameter (a Method or Proc object) or a block is given, it will be called with io and the mask of the event/s whenever poll generates any events for io. If the callback parameter non-nil, any block specified is discarded. Any arguments specified are passed to the callback as the third and succeeding arguments. The following event masks can be set in the eventMask:

Poll::IN
Data other than high-priority data may be read without blocking.
Poll::PRI
High-priority data may be received without blocking.
Poll::OUT
Normal data (priority band equals 0) may be written without blocking.

The following masks are ignored in the eventMask, as they are always implicitly set, but they may be specified in the handler callback or block to trap the conditions they represent:

Poll::ERR
An error has occurred on the device.
Poll::HUP
The device has been disconnected. This event and Poll::OUT are mutually exclusive; a device can never be writable once a hangup has occurred. However, this event and Poll::IN, Poll::RDNORM, Poll::RDBAND, or Poll::PRI are not mutually exclusive.
Poll::NVAL
The io object specified is invalid — it has been closed, has a bad file descriptor, etc.

If your operating system defines them, these masks are also available:

Poll::RDNORM
Normal data (priority band equals 0) may be read without blocking.
Poll::RDBAND
Data from a non-zero priority band may be read without blocking.
Poll::WRNORM
Same as Poll::OUT.
Poll::WRBAND
Priority data (priority band greater than 0) may be written.

Returns true if the specified io is registered with the poll object.

remove( io )

Alias for unregister

Remove (bitwise XOR) the specified eventMask from the mask for the specified io. Returns the new mask.

Reset the per-handle callback associated with the specified io to the specified callback (a Proc or Method object) or block, if given, or to nil if not specified. Any arguments specified past the second will be passed to the callback as its arguments. Returns the old callback.

Set the EventMask for the specified io to the given eventMask.

Remove the specified io from the receiver‘s list of registered handles, if present. Returns the handle if it was registered, or nil if it was not.

[Validate]