Class VirtualAbstractChannelSelector
java.lang.Object
com.biglybt.core.networkmanager.VirtualAbstractChannelSelector
- Direct Known Subclasses:
VirtualChannelSelector
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic interfaceListener for notification upon socket channel selection. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate final Stringprotected final intstatic final intstatic final intstatic final intstatic final intprivate booleanprivate final VirtualAbstractChannelSelectorImpl -
Constructor Summary
ConstructorsConstructorDescriptionVirtualAbstractChannelSelector(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 TypeMethodDescriptionvoidcancel(AbstractSelectableChannel channel) Cancel the selection operations for the given channel.voiddestroy()getName()booleanbooleanisPaused(AbstractSelectableChannel channel) booleanisRegistered(AbstractSelectableChannel channel) voidpauseSelects(AbstractSelectableChannel channel) Pause selection operations for the given channelvoidregister(ServerSocketChannel channel, VirtualAbstractChannelSelector.VirtualAcceptSelectorListener listener, Object attachment) voidregister(AbstractSelectableChannel channel, VirtualChannelSelector.VirtualAbstractSelectorListener listener, Object attachment) protected voidregisterSupport(AbstractSelectableChannel channel, VirtualChannelSelector.VirtualAbstractSelectorListener listener, Object attachment) Register the given selectable channel, using the given listener for notification of completed select operations.voidresumeSelects(AbstractSelectableChannel channel) Resume selection operations for the given channelintselect(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 processedvoidselectFailure(VirtualChannelSelector.VirtualAbstractSelectorListener listener, AbstractSelectableChannel sc, Object attachment, Throwable msg) booleanselectSuccess(VirtualChannelSelector.VirtualAbstractSelectorListener listener, AbstractSelectableChannel sc, Object attachment) voidsetRandomiseKeys(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
protected final int op -
randomise_keys
private boolean randomise_keys
-
-
Constructor Details
-
VirtualAbstractChannelSelector
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(AbstractSelectableChannel channel, VirtualChannelSelector.VirtualAbstractSelectorListener listener, Object attachment) -
register
public void register(ServerSocketChannel channel, VirtualAbstractChannelSelector.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)
-