Class BaseIOReactor

  • All Implemented Interfaces:
    IOReactor

    public class BaseIOReactor
    extends AbstractIOReactor
    Default implementation of AbstractIOReactor that serves as a base for more advanced IOReactor implementations. This class adds support for the I/O event dispatching using IOEventDispatch, management of buffering sessions, and session timeout handling.
    Since:
    4.0
    • Constructor Detail

      • BaseIOReactor

        public BaseIOReactor​(long selectTimeout)
                      throws IOReactorException
        Creates new BaseIOReactor instance.
        Parameters:
        selectTimeout - the select timeout.
        Throws:
        IOReactorException - in case if a non-recoverable I/O error.
      • BaseIOReactor

        public BaseIOReactor​(long selectTimeout,
                             boolean interestOpsQueueing)
                      throws IOReactorException
        Creates new BaseIOReactor instance.
        Parameters:
        selectTimeout - the select timeout.
        interestOpsQueueing - Ops queueing flag.
        Throws:
        IOReactorException - in case if a non-recoverable I/O error.
        Since:
        4.1
    • Method Detail

      • execute

        public void execute​(IOEventDispatch eventDispatch)
                     throws java.io.InterruptedIOException,
                            IOReactorException
        Activates the I/O reactor. The I/O reactor will start reacting to I/O events and dispatch I/O event notifications to the given IOEventDispatch.
        Parameters:
        eventDispatch - the I/O event dispatch.
        Throws:
        java.io.InterruptedIOException - if the dispatch thread is interrupted.
        IOReactorException - in case if a non-recoverable I/O error.
      • setExceptionHandler

        public void setExceptionHandler​(IOReactorExceptionHandler exceptionHandler)
        Sets exception handler for this I/O reactor.
        Parameters:
        exceptionHandler - the exception handler.