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.
|
||||||||||
|
Registers this channel with the specified selector for the specified
interest set and an object to attach.
|
||||||||||
|
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.lang.AutoCloseable
|
|||||||||||
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. 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. |
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. |
Gets the set of valid
operations
of this channel.
Instances of a concrete channel class always return the same value.