Class ManagedSelector

  • All Implemented Interfaces:
    org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle

    public class ManagedSelector
    extends org.eclipse.jetty.util.component.ContainerLifeCycle
    implements org.eclipse.jetty.util.component.Dumpable

    ManagedSelector wraps a Selector simplifying non-blocking operations on channels.

    ManagedSelector runs the select loop, which waits on Selector.select() until events happen for registered channels. When events happen, it notifies the EndPoint associated with the channel.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  ManagedSelector.Selectable
      A ManagedSelector.Selectable is an EndPoint that wish to be notified of non-blocking events by the ManagedSelector.
      static interface  ManagedSelector.SelectorUpdate
      A selector update to be done when the selector has been woken.
      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

        org.eclipse.jetty.util.component.Dumpable.DumpableContainer
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, STARTED, STARTING, STOPPED, STOPPING
      • Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

        KEY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doStart()  
      protected void doStop()  
      void dump​(java.lang.Appendable out, java.lang.String indent)  
      protected void endPointClosed​(EndPoint endPoint)  
      protected void endPointOpened​(EndPoint endPoint)  
      double getAverageSelectedKeys()  
      long getMaxSelectedKeys()  
      long getSelectCount()  
      java.nio.channels.Selector getSelector()  
      int getTotalKeys()  
      protected void handleSelectFailure​(java.nio.channels.Selector selector, java.lang.Throwable failure)  
      protected int nioSelect​(java.nio.channels.Selector selector, boolean now)  
      protected void onSelectFailed​(java.lang.Throwable cause)  
      void resetStats()  
      protected int select​(java.nio.channels.Selector selector)  
      int size()  
      void submit​(ManagedSelector.SelectorUpdate update)
      Submit an ManagedSelector.SelectorUpdate to be acted on between calls to Selector.select()
      java.lang.String toString()  
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.eclipse.jetty.util.component.Container

        getCachedBeans, getEventListeners
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dump, dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

        isDumpable
    • Constructor Detail

      • ManagedSelector

        public ManagedSelector​(SelectorManager selectorManager,
                               int id)
    • Method Detail

      • getSelector

        public java.nio.channels.Selector getSelector()
      • doStart

        protected void doStart()
                        throws java.lang.Exception
        Overrides:
        doStart in class org.eclipse.jetty.util.component.ContainerLifeCycle
        Throws:
        java.lang.Exception
      • doStop

        protected void doStop()
                       throws java.lang.Exception
        Overrides:
        doStop in class org.eclipse.jetty.util.component.ContainerLifeCycle
        Throws:
        java.lang.Exception
      • getTotalKeys

        @ManagedAttribute(value="Total number of keys",
                          readonly=true)
        public int getTotalKeys()
      • getAverageSelectedKeys

        @ManagedAttribute(value="Average number of selected keys",
                          readonly=true)
        public double getAverageSelectedKeys()
      • getMaxSelectedKeys

        @ManagedAttribute(value="Maximum number of selected keys",
                          readonly=true)
        public long getMaxSelectedKeys()
      • getSelectCount

        @ManagedAttribute(value="Total number of select() calls",
                          readonly=true)
        public long getSelectCount()
      • resetStats

        @ManagedOperation(value="Resets the statistics",
                          impact="ACTION")
        public void resetStats()
      • nioSelect

        protected int nioSelect​(java.nio.channels.Selector selector,
                                boolean now)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • select

        protected int select​(java.nio.channels.Selector selector)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • handleSelectFailure

        protected void handleSelectFailure​(java.nio.channels.Selector selector,
                                           java.lang.Throwable failure)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • onSelectFailed

        protected void onSelectFailed​(java.lang.Throwable cause)
      • size

        public int size()
      • endPointOpened

        protected void endPointOpened​(EndPoint endPoint)
      • endPointClosed

        protected void endPointClosed​(EndPoint endPoint)
      • dump

        public void dump​(java.lang.Appendable out,
                         java.lang.String indent)
                  throws java.io.IOException
        Specified by:
        dump in interface org.eclipse.jetty.util.component.Dumpable
        Overrides:
        dump in class org.eclipse.jetty.util.component.ContainerLifeCycle
        Throws:
        java.io.IOException
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class org.eclipse.jetty.util.component.AbstractLifeCycle