Package com.biglybt.core.networkmanager
Class VirtualChannelSelector
java.lang.Object
com.biglybt.core.networkmanager.VirtualChannelSelector
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
static interface
static interface
Listener for notification upon socket channel selection. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private final String
private final int
static final int
static final int
static final int
static final int
private boolean
private final VirtualChannelSelectorImpl
-
Constructor Summary
ConstructorsConstructorDescriptionVirtualChannelSelector
(String name, int interest_op, boolean pause_after_select) Create a new virtual selectable-channel selector, selecting over the given interest-op. -
Method Summary
Modifier and TypeMethodDescriptionvoid
cancel
(AbstractSelectableChannel channel) Cancel the selection operations for the given channel.void
destroy()
getName()
boolean
boolean
isPaused
(AbstractSelectableChannel channel) boolean
isRegistered
(AbstractSelectableChannel channel) void
pauseSelects
(AbstractSelectableChannel channel) Pause selection operations for the given channelvoid
register
(ServerSocketChannel channel, VirtualChannelSelector.VirtualAcceptSelectorListener listener, Object attachment) void
register
(SocketChannel channel, VirtualChannelSelector.VirtualSelectorListener listener, Object attachment) protected void
registerSupport
(AbstractSelectableChannel channel, VirtualChannelSelector.VirtualAbstractSelectorListener listener, Object attachment) Register the given selectable channel, using the given listener for notification of completed select operations.void
resumeSelects
(AbstractSelectableChannel channel) Resume selection operations for the given channelint
select
(long timeout) Run a virtual select() operation, with the given selection timeout value; (1) cancellations are processed (2) the select operation is performed; (3) listener notification of completed selects (4) new registrations are processedvoid
selectFailure
(VirtualChannelSelector.VirtualAbstractSelectorListener listener, AbstractSelectableChannel sc, Object attachment, Throwable msg) boolean
selectSuccess
(VirtualChannelSelector.VirtualAbstractSelectorListener listener, AbstractSelectableChannel sc, Object attachment) void
setRandomiseKeys
(boolean _rk)
-
Field Details
-
OP_ACCEPT
public static final int OP_ACCEPT- See Also:
-
OP_CONNECT
public static final int OP_CONNECT- See Also:
-
OP_READ
public static final int OP_READ- See Also:
-
OP_WRITE
public static final int OP_WRITE- See Also:
-
name
-
selector_impl
-
destroyed
private volatile boolean destroyed -
op
private final int op -
randomise_keys
private boolean randomise_keys
-
-
Constructor Details
-
VirtualChannelSelector
Create a new virtual selectable-channel selector, selecting over the given interest-op.- Parameters:
interest_op
- operation set of OP_CONNECT, OP_ACCEPT, OP_READ, or OP_WRITEpause_after_select
- whether or not to auto-disable interest op after select
-
-
Method Details
-
getName
-
register
public void register(SocketChannel channel, VirtualChannelSelector.VirtualSelectorListener listener, Object attachment) -
register
public void register(ServerSocketChannel channel, VirtualChannelSelector.VirtualAcceptSelectorListener listener, Object attachment) -
registerSupport
protected void registerSupport(AbstractSelectableChannel channel, VirtualChannelSelector.VirtualAbstractSelectorListener listener, Object attachment) Register the given selectable channel, using the given listener for notification of completed select operations. NOTE: For OP_CONNECT and OP_WRITE -type selectors, once a selection request op completes, the channel's op registration is automatically disabled (paused); any future wanted selection notification requires re-enabling via resume. For OP_READ selectors, it stays enabled until actively paused, no matter how many times it is selected.- Parameters:
channel
- socket to listen forlistener
- op-complete listenerattachment
- object to be passed back with listener notification
-
isPaused
-
pauseSelects
Pause selection operations for the given channel- Parameters:
channel
- to pause
-
resumeSelects
Resume selection operations for the given channel- Parameters:
channel
- to resume
-
isRegistered
-
cancel
Cancel the selection operations for the given channel.- Parameters:
channel
- channel originally registered
-
setRandomiseKeys
public void setRandomiseKeys(boolean _rk) -
select
public int select(long timeout) Run a virtual select() operation, with the given selection timeout value; (1) cancellations are processed (2) the select operation is performed; (3) listener notification of completed selects (4) new registrations are processed- Parameters:
timeout
- in ms; if zero, block indefinitely- Returns:
- number of sockets selected
-
destroy
public void destroy() -
isDestroyed
public boolean isDestroyed() -
selectSuccess
public boolean selectSuccess(VirtualChannelSelector.VirtualAbstractSelectorListener listener, AbstractSelectableChannel sc, Object attachment) -
selectFailure
public void selectFailure(VirtualChannelSelector.VirtualAbstractSelectorListener listener, AbstractSelectableChannel sc, Object attachment, Throwable msg)
-