Class VirtualChannelSelector


  • public class VirtualChannelSelector
    extends java.lang.Object
    • Constructor Detail

      • VirtualChannelSelector

        public VirtualChannelSelector​(java.lang.String name,
                                      int interest_op,
                                      boolean pause_after_select)
        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_WRITE
        pause_after_select - whether or not to auto-disable interest op after select
    • Method Detail

      • getName

        public java.lang.String getName()
      • registerSupport

        protected void registerSupport​(java.nio.channels.spi.AbstractSelectableChannel channel,
                                       VirtualChannelSelector.VirtualAbstractSelectorListener listener,
                                       java.lang.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 for
        listener - op-complete listener
        attachment - object to be passed back with listener notification
      • isPaused

        public boolean isPaused​(java.nio.channels.spi.AbstractSelectableChannel channel)
      • pauseSelects

        public void pauseSelects​(java.nio.channels.spi.AbstractSelectableChannel channel)
        Pause selection operations for the given channel
        Parameters:
        channel - to pause
      • resumeSelects

        public void resumeSelects​(java.nio.channels.spi.AbstractSelectableChannel channel)
        Resume selection operations for the given channel
        Parameters:
        channel - to resume
      • isRegistered

        public boolean isRegistered​(java.nio.channels.spi.AbstractSelectableChannel channel)
      • cancel

        public void cancel​(java.nio.channels.spi.AbstractSelectableChannel channel)
        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()