| java.lang.Object seda.nbio.SelectSet
SelectSet | public class SelectSet (Code) | | A SelectSet represents a set of SelectItems which you wish to
poll or wait for events to occur on. The interface is very much
like the poll(2) system call in SVR4.
To poll for events across many sockets or file descriptors, create
a SelectSet and initialize it with one or more SelectItems. The
'events' field of each SelectItem should be set to the mask of event
types you wish to receive. The event types are specified by the constants
in the Selectable class.
Calling the select method (with an optional timeout) checks
each of the file descriptors in the SelectSet for events, and sets the
'revents' field of each SelectItem accordingly. The getEvents
method is provided for convenience; it returns an array of SelectItems
for which some event occurred.
Multiple implementations of SelectSet may be available on a given
system. The particular implementation used is determined on the
features of the underlying OS, but the default choice can be overridden
by setting the nbio.SelectSetImpl runtime property. See
the subclasses of SelectSetImpl for details.
author: Matt Welsh (mdw@cs.berkeley.edu) See Also: Selectable See Also: SelectSetImpl, SelectSetPollImpl, SelectSetDevPollImpl |
Constructor Summary | |
public | SelectSet() Create a SelectSet with no SelectItems. |
Method Summary | |
public void | add(SelectItem sel) Add a SelectItem to this SelectSet. | public void | add(SelectItem selarr) Add all of the SelectItems in the given array to the SelectSet. | public SelectItem | elementAt(int index) Return the SelectItem at the given index. | public SelectItem[] | getEvents(short mask) Returns an array of SelectItems for which events matching the given
event mask have occurred (that is, that the revents field matches
the given mask). | public SelectItem[] | getEvents() Returns an array of SelectItems for which some events have occurred
(that is, that the revents field is nonzero). | public int | numActive() Return the number of active SelectItems in this SelectSet. | public void | remove(SelectItem sel) Remove a SelectItem from the SelectSet. | public void | remove(SelectItem selarr) Remove all of the SelectItems in the given array from the SelectSet. | public void | remove(int index) Remove the SelectItem at the given index from the SelectSet. | public int | select(int timeout) Wait for events to occur on the SelectItems in this SelectSet.
Upon return, the 'revents' field of each SelectItem will be
set to the mask of events that occurred. | public int | size() Return the number of SelectItems in this SelectSet. | public String | toString() | public void | update() Update any changed 'events' fields in SelectItems registered with
this SelectSet. | public void | update(SelectItem sel) Update any changed 'events' fields in the given SelectItem. |
SelectSet | public SelectSet()(Code) | | Create a SelectSet with no SelectItems.
|
add | public void add(SelectItem selarr)(Code) | | Add all of the SelectItems in the given array to the SelectSet.
|
elementAt | public SelectItem elementAt(int index)(Code) | | Return the SelectItem at the given index.
|
getEvents | public SelectItem[] getEvents(short mask)(Code) | | Returns an array of SelectItems for which events matching the given
event mask have occurred (that is, that the revents field matches
the given mask).
This is a convenience method and is not meant to be optimized; since
it scans the SelectItem array and creates a new reference array, it
imposes higher overhead than the application scanning the SelectItem
array directly, using the size() and elementAt() methods.
|
getEvents | public SelectItem[] getEvents()(Code) | | Returns an array of SelectItems for which some events have occurred
(that is, that the revents field is nonzero).
This is a convenience method and is not meant to be optimized; since
it scans the SelectItem array and creates a new reference array, it
imposes higher overhead than the application scanning the SelectItem
array directly, using the size() and elementAt() methods.
|
numActive | public int numActive()(Code) | | Return the number of active SelectItems in this SelectSet.
An active SelectItem is defined as one with a non-zero
events request mask.
|
remove | public void remove(SelectItem sel)(Code) | | Remove a SelectItem from the SelectSet.
|
remove | public void remove(SelectItem selarr)(Code) | | Remove all of the SelectItems in the given array from the SelectSet.
|
remove | public void remove(int index)(Code) | | Remove the SelectItem at the given index from the SelectSet.
|
select | public int select(int timeout)(Code) | | Wait for events to occur on the SelectItems in this SelectSet.
Upon return, the 'revents' field of each SelectItem will be
set to the mask of events that occurred. Note that this method
does not set revents to 0 when called; after processing an
event, it is the application's responsibility to clear the revents
field. This is intentional: if the application wishes to delay
the processing of an event, it can leave the revents field as-is so
that subsequent calls to select will continue to indicate that the
event is pending.
IMPORTANT NOTE: If timeout is non-zero, this call will
block the thread which invokes it. If you are using
Green Threads, this will block the entire JVM. Unless you have
a single-threaded application, you should only use
SelectSet.select() with native threads.
Parameters: timeout - The maximum number of milliseconds to block waitingfor an event to occur. A timeout of 0 means than select should not block;a timeout of -1 means that select should block indefinitely. The number of events received, or 0 if no events occurred. |
size | public int size()(Code) | | Return the number of SelectItems in this SelectSet.
|
update | public void update()(Code) | | Update any changed 'events' fields in SelectItems registered with
this SelectSet. This method should be called if a SelectItem
'events' field is modified after adding it to this SelectSet.
|
update | public void update(SelectItem sel)(Code) | | Update any changed 'events' fields in the given SelectItem.
This method should be called if a SelectItem 'events' field is
modified after adding it to this SelectSet.
|
|
|