public abstract class

SelectionKey

extends Object
java.lang.Object
   ↳ java.nio.channels.SelectionKey
Known Direct Subclasses

Class Overview

A SelectionKey represents the relationship between a channel and a selector for which the channel is registered.

Operation set

An operation set is represented by an integer value. The bits of an operation set represent categories of operations for a key's channel: Accepting socket connections (OP_ACCEPT), connecting with a socket (OP_CONNECT), reading (OP_READ) and writing (OP_WRITE).

Interest set

The interest set is an operation set that defines the operations that a channel is interested in performing.

Ready set

The ready set is an operation set that shows the operations that a channel is ready to execute.

Summary

Constants
int OP_ACCEPT Interest set mask bit for socket-accept operations.
int OP_CONNECT Interest set mask bit for socket-connect operations.
int OP_READ Interesting operation mask bit for read operations.
int OP_WRITE Interest set mask bit for write operations.
Protected Constructors
SelectionKey()
Constructs a new SelectionKey.
Public Methods
final Object attach(Object anObject)
Attaches an object to this key.
final Object attachment()
Gets the attached object.
abstract void cancel()
Cancels this key.
abstract SelectableChannel channel()
Gets the channel of this key.
abstract SelectionKey interestOps(int operations)
Sets the interest set for this key.
abstract int interestOps()
Gets this key's interest set.
final boolean isAcceptable()
Indicates whether this key's channel is interested in the accept operation and is ready to accept new connections.
final boolean isConnectable()
Indicates whether this key's channel is interested in the connect operation and is ready to connect.
final boolean isReadable()
Indicates whether this key's channel is interested in the read operation and is ready to read.
abstract boolean isValid()
Indicates whether this key is valid.
final boolean isWritable()
Indicates whether this key's channel is interested in the write operation and is ready to write.
abstract int readyOps()
Gets the set of operations that are ready.
abstract Selector selector()
Gets the selector for which this key's channel is registered.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int OP_ACCEPT

Since: API Level 1

Interest set mask bit for socket-accept operations.

Constant Value: 16 (0x00000010)

public static final int OP_CONNECT

Since: API Level 1

Interest set mask bit for socket-connect operations.

Constant Value: 8 (0x00000008)

public static final int OP_READ

Since: API Level 1

Interesting operation mask bit for read operations.

Constant Value: 1 (0x00000001)

public static final int OP_WRITE

Since: API Level 1

Interest set mask bit for write operations.

Constant Value: 4 (0x00000004)

Protected Constructors

protected SelectionKey ()

Since: API Level 1

Constructs a new SelectionKey.

Public Methods

public final Object attach (Object anObject)

Since: API Level 1

Attaches an object to this key. It is acceptable to attach null, this discards the old attachment.

Parameters
anObject the object to attach, or null to discard the current attachment.
Returns
  • the last attached object or null if no object has been attached.

public final Object attachment ()

Since: API Level 1

Gets the attached object.

Returns
  • the attached object or null if no object has been attached.

public abstract void cancel ()

Since: API Level 1

Cancels this key.

A key that has been canceled is no longer valid. Calling this method on an already canceled key does nothing.

Calling this method is safe at any time. The call might block until another ongoing call to a method of this selector has finished. The reason is that it is synchronizing on the key set of the selector. After this call finishes, the key will have been added to the selectors canceled-keys set and will not be included in any future selects of this selector.

public abstract SelectableChannel channel ()

Since: API Level 1

Gets the channel of this key.

Returns
  • the channel of this key.

public abstract SelectionKey interestOps (int operations)

Since: API Level 1

Sets the interest set for this key.

Parameters
operations the new interest set.
Returns
  • this key.
Throws
IllegalArgumentException if a bit in operations is not in the set of valid operations of this key's channel.
CancelledKeyException if the key has already been canceled.

public abstract int interestOps ()

Since: API Level 1

Gets this key's interest set. The returned set has only those bits set that are valid for this key's channel.

Returns
  • the interest set of this key.
Throws
CancelledKeyException if the key has already been canceled.

public final boolean isAcceptable ()

Since: API Level 1

Indicates whether this key's channel is interested in the accept operation and is ready to accept new connections. A call to this method is equal to executing (readyOps() & OP_ACCEPT) == OP_ACCEPT.

Returns
  • true if the channel is interested in the accept operation and is ready to accept new connections, false otherwise.
Throws
CancelledKeyException if the key has already been canceled.

public final boolean isConnectable ()

Since: API Level 1

Indicates whether this key's channel is interested in the connect operation and is ready to connect. A call to this method is equal to executing (readyOps() & OP_CONNECT) == OP_CONNECT.

Returns
  • true if the channel is interested in the connect operation and is ready to connect, false otherwise.
Throws
CancelledKeyException if the key has already been canceled.

public final boolean isReadable ()

Since: API Level 1

Indicates whether this key's channel is interested in the read operation and is ready to read. A call to this method is equal to executing (readyOps() & OP_READ) == OP_READ.

Returns
  • true if the channel is interested in the read operation and is ready to read, false otherwise.
Throws
CancelledKeyException if the key has already been canceled.

public abstract boolean isValid ()

Since: API Level 1

Indicates whether this key is valid. A key is valid as long as it has not been canceled.

Returns
  • true if this key has not been canceled, false otherwise.

public final boolean isWritable ()

Since: API Level 1

Indicates whether this key's channel is interested in the write operation and is ready to write. A call to this method is equal to executing (readyOps() & OP_WRITE) == OP_WRITE.

Returns
  • true if the channel is interested in the wrie operation and is ready to write, false otherwise.
Throws
CancelledKeyException if the key has already been canceled.

public abstract int readyOps ()

Since: API Level 1

Gets the set of operations that are ready. The returned set has only those bits set that are valid for this key's channel.

Returns
  • the operations for which this key's channel is ready.
Throws
CancelledKeyException if the key has already been canceled.

public abstract Selector selector ()

Since: API Level 1

Gets the selector for which this key's channel is registered.

Returns
  • the related selector.