java.lang.Object | ||
↳ | java.nio.channels.spi.AbstractInterruptibleChannel | |
↳ | java.nio.channels.SelectableChannel |
Known Direct Subclasses |
Known Indirect Subclasses |
A channel that can be used with a Selector
. The channel must be
registered with a selector by calling one of the register
methods,
which return a SelectionKey
object. In order to deregister a channel
from a selector, its selection key must be canceled. This can be done
explicitly by calling the cancel()
method but it is also
done implicitly when the channel or the selector is closed.
A channel may be registered with several selectors at the same time but only once for any given selector.
Protected Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a new
SelectableChannel . |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Gets the blocking lock which synchronizes the
configureBlocking
and register methods. | |||||||||||
Sets the blocking mode of this channel.
| |||||||||||
Indicates whether this channel is in blocking mode.
| |||||||||||
Indicates whether this channel is registered with at least one selector.
| |||||||||||
Gets this channel's selection key for the specified selector.
| |||||||||||
Gets the provider of this channel.
| |||||||||||
Registers this channel with the specified selector for the specified
interest set and an object to attach.
| |||||||||||
Registers this channel with the specified selector for the specified
interest set.
| |||||||||||
Gets the set of valid
operations of this channel. |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class java.nio.channels.spi.AbstractInterruptibleChannel
| |||||||||||
From class java.lang.Object
| |||||||||||
From interface java.io.Closeable
| |||||||||||
From interface java.nio.channels.Channel
| |||||||||||
From interface java.nio.channels.InterruptibleChannel
|
Gets the blocking lock which synchronizes the configureBlocking
and register
methods.
Sets the blocking mode of this channel. A call to this method blocks if
other calls to this method or to a register
method are executing.
The new blocking mode is valid for calls to other methods that are
invoked after the call to this method. If other methods are already
executing when this method is called, they still have the old mode and
the call to this method might block depending on the implementation.
block | true for setting this channel's mode to blocking,
false to set it to non-blocking. |
---|
ClosedChannelException | if this channel is closed. |
---|---|
IllegalBlockingModeException | if block is true and this channel has been
registered with at least one selector. |
IOException | if an I/O error occurs. |
Indicates whether this channel is in blocking mode.
true
if this channel is blocking, undefined if this
channel is closed.Indicates whether this channel is registered with at least one selector.
true
if this channel is registered, false
otherwise.Gets this channel's selection key for the specified selector.
sel | the selector with which this channel has been registered. |
---|
null
if this channel
has not been registered with sel
.Gets the provider of this channel.
Registers this channel with the specified selector for the specified
interest set and an object to attach. If the channel is already
registered with the selector, the corresponding selection key is returned
but its interest set
is updated to ops
and
the attached object is updated to att
. The returned key is
canceled if the channel is closed while registering is in progress.
Calling this method is valid at any time. If another thread executes this
method or the configureBlocking(boolean)
method then this call is
blocked until the other call finishes. After that, it will synchronize on
the key set of the selector and thus may again block if other threads
also hold locks on the key set of the same selector.
sel | the selector with which to register this channel. |
---|---|
ops | this channel's interest set . |
att | the object to attach, can be null . |
ClosedChannelException | if this channel is closed. |
---|---|
IllegalArgumentException | if ops is not supported by this channel. |
IllegalBlockingModeException | if this channel is in blocking mode. |
IllegalSelectorException | if this channel does not have the same provider as the given selector. |
CancelledKeyException | if this channel is registered but its key has been canceled. |
Registers this channel with the specified selector for the specified
interest set. If the channel is already registered with the selector, the
corresponding selection key is returned but the
interest set
is updated to operations
. The
returned key is canceled if the channel is closed while registering is in
progress.
Calling this method is valid at any time. If another thread executes this
method or the configureBlocking(boolean
method then this call is
blocked until the other call finishes. After that, it will synchronize on
the key set of the selector and thus may again block if other threads
also hold locks on the key set of the same selector.
Calling this method is equivalent to calling
register(selector, operations, null)
.
selector | the selector with which to register this channel. |
---|---|
operations | this channel's interest set . |
ClosedChannelException | if the channel is closed. |
---|---|
IllegalBlockingModeException | if the channel is in blocking mode. |
IllegalSelectorException | if this channel does not have the same provider as the given selector. |
CancelledKeyException | if this channel is registered but its key has been canceled. |
IllegalArgumentException | if the operation given is not supported by this channel. |
Gets the set of valid operations
of this channel.
Instances of a concrete channel class always return the same value.