## org.apache.tomcat.util.net
Class NioEndpoint

    java.lang.Object
      org.apache.tomcat.util.net.NioEndpoint

    public class NioEndpoint

extends java.lang.Object

NIO tailored thread pool, providing the following services:

- Socket acceptor thread
- Socket poller thread
- Worker threads pool

When switching to Java 5, there's an opportunity to use the virtual machine's thread pool.

Author:
  Mladen Turk, Remy Maucherat, Filip Hanik

Nested Class Summary
`protected class` `NioEndpoint.Acceptor` Server socket acceptor thread.
`static interface` `NioEndpoint.Handler` Bare bones interface used for socket processing.
`static class` `NioEndpoint.KeyAttachment`
`class` `NioEndpoint.NioBufferHandler`
`class` `NioEndpoint.Poller` Poller class.
`class` `NioEndpoint.PollerEvent` PollerEvent, cacheable object for poller events to avoid GC
`static class` `NioEndpoint.SendfileData` SendfileData class.
`protected class` `NioEndpoint.SocketProcessor` This class is the equivalent of the Worker, but will simply use in an external Executor thread pool.
`static class` `NioEndpoint.TaskQueue`
`protected class` `NioEndpoint.Worker` Server processor class.
`class` `NioEndpoint.WorkerStack`

Field Summary
`protected int` `acceptorThreadCount` Acceptor thread count.
`protected int` `acceptorThreadPriority` Priority of the acceptor threads.
`protected java.util.concurrent.atomic.AtomicInteger` `activeSocketProcessors` Keep track of how many threads are in use
`protected java.net.InetAddress` `address` Address for the server socket.
`protected java.lang.String` `algorithm`
`protected int` `backlog` Allows the server developer to specify the backlog that should be used for server sockets.
`static java.lang.String` `CERTIFICATE_KEY` The Request attribute key for the client certificate chain.
`static java.lang.String` `CIPHER_SUITE_KEY` The Request attribute key for the cipher suite.
`protected java.lang.String` `ciphers`
`protected java.lang.String[]` `ciphersarr`
`protected java.lang.String` `clientAuth`
`protected int` `curThreads` Current worker threads count.
`protected int` `curThreadsBusy` Current worker threads busy count.
`protected boolean` `daemon` The default is true - the created threads will be in daemon mode.
`protected java.util.concurrent.ConcurrentLinkedQueue<NioEndpoint.PollerEvent>` `eventCache` Cache for poller events
`protected java.util.concurrent.Executor` `executor` External Executor based thread pool.
`protected NioEndpoint.Handler` `handler` Handling of accepted sockets.
`protected boolean` `initialized` Track the initialization state of the endpoint.
`static java.lang.String` `KEY_SIZE_KEY` The Request attribute key for the key size.
`protected java.util.concurrent.ConcurrentLinkedQueue<NioEndpoint.KeyAttachment>` `keyCache` Cache for key attachment objects
`protected java.lang.String` `keystoreFile`
`protected java.lang.String` `keystorePass`
`protected java.lang.String` `keystoreType`
`protected static Log` `log`
`protected int` `maxThreads` Maximum amount of worker threads.
`protected java.lang.String` `name` Name of the thread pool, which will be used for naming child threads.
`protected java.util.concurrent.ConcurrentLinkedQueue<NioChannel>` `nioChannels` Bytebuffer cache, each channel holds a set of buffers (two, except for SSL holds four)
`protected int` `oomParachute` The size of the OOM parachute.
`protected byte[]` `oomParachuteData` The oom parachute, when an OOM error happens, will release the data, giving the JVM instantly a chunk of data to be able to recover with.
`protected static java.lang.String` `oomParachuteMsg` Make sure this string has already been allocated
`static int` `OP_CALLBACK`
`static int` `OP_REGISTER`
`protected boolean` `paused` Will be set to true whenever the endpoint is paused.
`protected java.util.concurrent.atomic.AtomicInteger` `pollerRotater`
`protected NioEndpoint.Poller[]` `pollers` The socket poller.
`protected int` `pollerThreadCount` Poller thread count.
`protected int` `pollerThreadPriority` Priority of the poller threads.
`protected int` `port` Server socket port.
`protected java.util.concurrent.ConcurrentLinkedQueue<NioEndpoint.SocketProcessor>` `processorCache` Cache for SocketProcessor objects
`protected boolean` `running` Running state of the endpoint.
`protected boolean` `secure`
`protected NioSelectorPool` `selectorPool`
`protected long` `selectorTimeout`
`protected int` `sequence` Sequence number used to generate thread names.
`protected java.nio.channels.ServerSocketChannel` `serverSock` Server socket "pointer".
`static java.lang.String` `SESSION_ID_KEY` The Request attribute key for the session id.
`protected int` `sessionCacheSize`
`protected int` `sessionCacheTimeout`
`protected static StringManager` `sm`
`protected SocketProperties` `socketProperties`
`protected javax.net.ssl.SSLContext` `sslContext`
`protected boolean` `SSLEnabled` SSL engine.
`protected java.lang.String` `sslEnabledProtocols`
`protected java.lang.String[]` `sslEnabledProtocolsarr`
`protected java.lang.String` `sslProtocol`
`protected int` `threadPriority` Priority of the worker threads.
`protected java.lang.String` `truststoreFile`
`protected java.lang.String` `truststorePass`
`protected java.lang.String` `truststoreType`
`protected boolean` `useComet` Allow comet request handling.
`protected boolean` `useExecutor`
`protected boolean` `useSendfile` use send file
`protected NioEndpoint.WorkerStack` `workers` Available workers.

Constructor Summary
`NioEndpoint()`

Method Summary
`java.lang.String` `adjustRelativePath(java.lang.String path, java.lang.String relativeTo)`
`protected void` `checkParachute()`
`protected javax.net.ssl.SSLEngine` `createSSLEngine()`
`protected NioEndpoint.Worker` `createWorkerThread()` Create (or allocate) and return an available processor for use in processing a specific HTTP request, if possible.
`java.lang.String` `defaultIfNull(java.lang.String val, java.lang.String defaultValue)`
`void` `destroy()` Deallocate NIO memory pools, and close server socket.
`int` `getAcceptorThreadCount()`
`int` `getAcceptorThreadPriority()`
`java.net.InetAddress` `getAddress()`
`java.lang.String` `getAlgorithm()`
`int` `getBacklog()`
`java.lang.String` `getCiphers()`
`java.lang.String` `getClientAuth()`
`int` `getCurrentThreadCount()` Return the amount of threads that are managed by the pool.
`int` `getCurrentThreadsBusy()` Return the amount of threads currently busy.
`boolean` `getDaemon()`
`java.util.concurrent.Executor` `getExecutor()`
`NioEndpoint.Handler` `getHandler()`
`int` `getKeepAliveCount()` Number of keepalive sockets.
`java.lang.String` `getKeyAlias()`
`java.lang.String` `getKeystore()`
`java.lang.String` `getKeystoreFile()`
`java.lang.String` `getKeystorePass()`
`java.lang.String` `getKeystoreType()`
`int` `getMaxSpareThreads()` Dummy maxSpareThreads property.
`int` `getMaxThreads()`
`int` `getMinSpareThreads()` Dummy minSpareThreads property.
`java.lang.String` `getName()`
`int` `getOomParachute()`
`byte[]` `getOomParachuteData()`
`NioEndpoint.Poller` `getPoller0()` Return an available poller in true round robin fashion
`int` `getPollerThreadCount()`
`int` `getPollerThreadPriority()`
`int` `getPort()`
`int` `getReadBufSize()`
`boolean` `getSecure()`
`NioSelectorPool` `getSelectorPool()`
`long` `getSelectorTimeout()`
`protected int` `getSequence()` Get a sequence number used for thread naming.
`int` `getSessionCacheSize()`
`int` `getSessionCacheTimeout()`
`SocketProperties` `getSocketProperties()`
`int` `getSoLinger()` Socket linger.
`int` `getSoTimeout()` Socket timeout.
`javax.net.ssl.SSLContext` `getSSLContext()`
`java.lang.String` `getSslProtocol()`
`boolean` `getTcpNoDelay()` Socket TCP no delay.
`int` `getThreadPriority()`
`java.lang.String` `getTruststoreFile()`
`java.lang.String` `getTruststorePass()`
`java.lang.String` `getTruststoreType()`
`boolean` `getUseComet()`
`boolean` `getUseExecutor()`
`boolean` `getUseSendfile()`
`protected NioEndpoint.Worker` `getWorkerThread()` Return a new worker thread, and block while to worker is available.
`int` `getWriteBufSize()`
`void` `init()` Initialize the endpoint.
`boolean` `isPaused()` Return the state of the endpoint.
`boolean` `isRunning()` Return the state of the endpoint.
`boolean` `isSSLEnabled()`
`protected boolean` `isWorkerAvailable()` Returns true if a worker thread is available for processing.
`protected NioEndpoint.Worker` `newWorkerThread()` Create and return a new processor suitable for processing HTTP requests and returning the corresponding responses.
`void` `pause()` Pause the endpoint, which will make it stop accepting new sockets.
`protected boolean` `processSocket(NioChannel socket)` Process given socket.
`protected boolean` `processSocket(NioChannel socket, SocketStatus status)` Process given socket for an event.
`protected boolean` `processSocket(NioChannel socket, SocketStatus status, boolean dispatch)`
`protected boolean` `reclaimParachute(boolean force)`
`protected void` `recycleWorkerThread(NioEndpoint.Worker workerThread)` Recycle the specified Processor so that it can be used again.
`protected void` `releaseCaches()`
`void` `resume()` Resume the endpoint, which will make it start accepting new sockets again.
`void` `setAcceptorThreadCount(int acceptorThreadCount)`
`void` `setAcceptorThreadPriority(int acceptorThreadPriority)`
`void` `setAddress(java.net.InetAddress address)`
`void` `setAlgorithm(java.lang.String s)`
`void` `setBacklog(int backlog)`
`void` `setCiphers(java.lang.String s)`
`void` `setClientAuth(java.lang.String s)`
`void` `setDaemon(boolean b)`
`void` `setExecutor(java.util.concurrent.Executor executor)`
`void` `setHandler(NioEndpoint.Handler handler)`
`void` `setKeyAlias(java.lang.String s)`
`void` `setKeystore(java.lang.String s)`
`void` `setKeystoreFile(java.lang.String s)`
`void` `setKeystorePass(java.lang.String s)`
`void` `setKeystoreType(java.lang.String s)`
`void` `setMaxThreads(int maxThreads)`
`void` `setName(java.lang.String name)`
`void` `setOomParachute(int oomParachute)`
`void` `setOomParachuteData(byte[] oomParachuteData)`
`void` `setPollerThreadCount(int pollerThreadCount)`
`void` `setPollerThreadPriority(int pollerThreadPriority)`
`void` `setPort(int port)`
`boolean` `setProperty(java.lang.String name, java.lang.String value)` Generic properties, introspected
`void` `setSecure(boolean b)`
`void` `setSelectorPool(NioSelectorPool selectorPool)`
`void` `setSelectorTimeout(long timeout)`
`void` `setSessionCacheSize(int i)`
`void` `setSessionCacheTimeout(int i)`
`protected boolean` `setSocketOptions(java.nio.channels.SocketChannel socket)` Process the specified connection.
`void` `setSocketProperties(SocketProperties socketProperties)`
`void` `setSoLinger(int soLinger)`
`void` `setSoTimeout(int soTimeout)`
`void` `setSSLContext(javax.net.ssl.SSLContext c)`
`void` `setSSLEnabled(boolean SSLEnabled)`
`void` `setSslEnabledProtocols(java.lang.String s)`
`void` `setSslProtocol(java.lang.String s)`
`void` `setTcpNoDelay(boolean tcpNoDelay)`
`void` `setThreadPriority(int threadPriority)`
`void` `setTruststoreFile(java.lang.String s)`
`void` `setTruststorePass(java.lang.String truststorePass)`
`void` `setTruststoreType(java.lang.String truststoreType)`
`void` `setUseComet(boolean useComet)`
`void` `setUseExecutor(boolean useexec)`
`void` `setUseSendfile(boolean useSendfile)`
`void` `start()` Start the NIO endpoint, creating acceptor, poller threads.
`void` `stop()` Stop the endpoint.
`protected void` `unlockAccept()` Unlock the server socket accept using a bogus connection.
`javax.net.ssl.KeyManager[]` `wrap(javax.net.ssl.KeyManager[] managers)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    protected static Log log

### sm

    protected static StringManager sm

### CIPHER_SUITE_KEY

    public static final java.lang.String CIPHER_SUITE_KEY

  The Request attribute key for the cipher suite.

  See Also:
    Constant Field Values

### KEY_SIZE_KEY

    public static final java.lang.String KEY_SIZE_KEY

  The Request attribute key for the key size.

  See Also:
    Constant Field Values

### CERTIFICATE_KEY

    public static final java.lang.String CERTIFICATE_KEY

  The Request attribute key for the client certificate chain.

  See Also:
    Constant Field Values

### SESSION_ID_KEY

    public static final java.lang.String SESSION_ID_KEY

  The Request attribute key for the session id. This one is a Tomcat extension to the Servlet spec.

  See Also:
    Constant Field Values

### OP_REGISTER

    public static final int OP_REGISTER

See Also:
  Constant Field Values

### OP_CALLBACK

    public static final int OP_CALLBACK

See Also:
  Constant Field Values

### workers

    protected NioEndpoint.WorkerStack workers

  Available workers.

### running

    protected volatile boolean running

  Running state of the endpoint.

### paused

    protected volatile boolean paused

  Will be set to true whenever the endpoint is paused.

### initialized

    protected boolean initialized

  Track the initialization state of the endpoint.

### curThreadsBusy

    protected int curThreadsBusy

  Current worker threads busy count.

### curThreads

    protected int curThreads

  Current worker threads count.

### sequence

    protected int sequence

  Sequence number used to generate thread names.

### selectorPool

    protected NioSelectorPool selectorPool

### serverSock

    protected java.nio.channels.ServerSocketChannel serverSock

  Server socket "pointer".

### useSendfile

    protected boolean useSendfile

  use send file

### oomParachute

    protected int oomParachute

  The size of the OOM parachute.

### oomParachuteData

    protected byte[] oomParachuteData

  The oom parachute, when an OOM error happens, will release the data, giving the JVM instantly a chunk of data to be able to recover with.

### oomParachuteMsg

    protected static final java.lang.String oomParachuteMsg

  Make sure this string has already been allocated

  See Also:
    Constant Field Values

### activeSocketProcessors

    protected java.util.concurrent.atomic.AtomicInteger activeSocketProcessors

  Keep track of how many threads are in use

### processorCache

    protected java.util.concurrent.ConcurrentLinkedQueue<NioEndpoint.SocketProcessor> processorCache

  Cache for SocketProcessor objects

### keyCache

    protected java.util.concurrent.ConcurrentLinkedQueue<NioEndpoint.KeyAttachment> keyCache

  Cache for key attachment objects

### eventCache

    protected java.util.concurrent.ConcurrentLinkedQueue<NioEndpoint.PollerEvent> eventCache

  Cache for poller events

### nioChannels

    protected java.util.concurrent.ConcurrentLinkedQueue<NioChannel> nioChannels

  Bytebuffer cache, each channel holds a set of buffers (two, except for SSL holds four)

### executor

    protected java.util.concurrent.Executor executor

  External Executor based thread pool.

### useExecutor

    protected boolean useExecutor

### maxThreads

    protected int maxThreads

  Maximum amount of worker threads.

### threadPriority

    protected int threadPriority

  Priority of the worker threads.

### acceptorThreadPriority

    protected int acceptorThreadPriority

  Priority of the acceptor threads.

### pollerThreadPriority

    protected int pollerThreadPriority

  Priority of the poller threads.

### port

    protected int port

  Server socket port.

### address

    protected java.net.InetAddress address

  Address for the server socket.

### handler

    protected NioEndpoint.Handler handler

  Handling of accepted sockets.

### backlog

    protected int backlog

  Allows the server developer to specify the backlog that should be used for server sockets. By default, this value is 100.

### socketProperties

    protected SocketProperties socketProperties

### daemon

    protected boolean daemon

  The default is true - the created threads will be in daemon mode. If set to false, the control thread will not be daemon - and will keep the process alive.

### name

    protected java.lang.String name

  Name of the thread pool, which will be used for naming child threads.

### useComet

    protected boolean useComet

  Allow comet request handling.

### acceptorThreadCount

    protected int acceptorThreadCount

  Acceptor thread count.

### pollerThreadCount

    protected int pollerThreadCount

  Poller thread count.

### selectorTimeout

    protected long selectorTimeout

### pollers

    protected NioEndpoint.Poller[] pollers

  The socket poller.

### pollerRotater

    protected java.util.concurrent.atomic.AtomicInteger pollerRotater

### truststoreFile

    protected java.lang.String truststoreFile

### truststorePass

    protected java.lang.String truststorePass

### truststoreType

    protected java.lang.String truststoreType

### keystoreFile

    protected java.lang.String keystoreFile

### algorithm

    protected java.lang.String algorithm

### clientAuth

    protected java.lang.String clientAuth

### keystorePass

    protected java.lang.String keystorePass

### keystoreType

    protected java.lang.String keystoreType

### sslProtocol

    protected java.lang.String sslProtocol

### sslEnabledProtocols

    protected java.lang.String sslEnabledProtocols

### sslEnabledProtocolsarr

    protected java.lang.String[] sslEnabledProtocolsarr

### ciphers

    protected java.lang.String ciphers

### ciphersarr

    protected java.lang.String[] ciphersarr

### sessionCacheSize

    protected int sessionCacheSize

### sessionCacheTimeout

    protected int sessionCacheTimeout

### SSLEnabled

    protected boolean SSLEnabled

  SSL engine.

### secure

    protected boolean secure

### sslContext

    protected javax.net.ssl.SSLContext sslContext

Constructor Detail

### NioEndpoint

    public NioEndpoint()

Method Detail

### setExecutor

    public void setExecutor(java.util.concurrent.Executor executor)

### getExecutor

    public java.util.concurrent.Executor getExecutor()

### setUseExecutor

    public void setUseExecutor(boolean useexec)

### getUseExecutor

    public boolean getUseExecutor()

### setMaxThreads

    public void setMaxThreads(int maxThreads)

### getMaxThreads

    public int getMaxThreads()

### setThreadPriority

    public void setThreadPriority(int threadPriority)

### getThreadPriority

    public int getThreadPriority()

### setAcceptorThreadPriority

    public void setAcceptorThreadPriority(int acceptorThreadPriority)

### getAcceptorThreadPriority

    public int getAcceptorThreadPriority()

### setPollerThreadPriority

    public void setPollerThreadPriority(int pollerThreadPriority)

### getPollerThreadPriority

    public int getPollerThreadPriority()

### getPort

    public int getPort()

### setPort

    public void setPort(int port)

### getAddress

    public java.net.InetAddress getAddress()

### setAddress

    public void setAddress(java.net.InetAddress address)

### setHandler

    public void setHandler(NioEndpoint.Handler handler)

### getHandler

    public NioEndpoint.Handler getHandler()

### setBacklog

    public void setBacklog(int backlog)

### getBacklog

    public int getBacklog()

### getTcpNoDelay

    public boolean getTcpNoDelay()

  Socket TCP no delay.

### setTcpNoDelay

    public void setTcpNoDelay(boolean tcpNoDelay)

### getSoLinger

    public int getSoLinger()

  Socket linger.

### setSoLinger

    public void setSoLinger(int soLinger)

### getSoTimeout

    public int getSoTimeout()

  Socket timeout.

### setSoTimeout

    public void setSoTimeout(int soTimeout)

### setDaemon

    public void setDaemon(boolean b)

### getDaemon

    public boolean getDaemon()

### setName

    public void setName(java.lang.String name)

### getName

    public java.lang.String getName()

### setUseComet

    public void setUseComet(boolean useComet)

### getUseComet

    public boolean getUseComet()

### setAcceptorThreadCount

    public void setAcceptorThreadCount(int acceptorThreadCount)

### getAcceptorThreadCount

    public int getAcceptorThreadCount()

### setPollerThreadCount

    public void setPollerThreadCount(int pollerThreadCount)

### getPollerThreadCount

    public int getPollerThreadCount()

### setSelectorTimeout

    public void setSelectorTimeout(long timeout)

### getSelectorTimeout

    public long getSelectorTimeout()

### getPoller0

    public NioEndpoint.Poller getPoller0()

  Return an available poller in true round robin fashion

  Returns:

### getMaxSpareThreads

    public int getMaxSpareThreads()

  Dummy maxSpareThreads property.

### getMinSpareThreads

    public int getMinSpareThreads()

  Dummy minSpareThreads property.

### setProperty

    public boolean setProperty(java.lang.String name,
                               java.lang.String value)

  Generic properties, introspected

### adjustRelativePath

    public java.lang.String adjustRelativePath(java.lang.String path,
                                               java.lang.String relativeTo)

### defaultIfNull

    public java.lang.String defaultIfNull(java.lang.String val,
                                          java.lang.String defaultValue)

### setTruststoreFile

    public void setTruststoreFile(java.lang.String s)

### getTruststoreFile

    public java.lang.String getTruststoreFile()

### setTruststorePass

    public void setTruststorePass(java.lang.String truststorePass)

### getTruststorePass

    public java.lang.String getTruststorePass()

### setTruststoreType

    public void setTruststoreType(java.lang.String truststoreType)

### getTruststoreType

    public java.lang.String getTruststoreType()

### getKeystoreFile

    public java.lang.String getKeystoreFile()

### setKeystoreFile

    public void setKeystoreFile(java.lang.String s)

### setKeystore

    public void setKeystore(java.lang.String s)

### getKeystore

    public java.lang.String getKeystore()

### getKeyAlias

    public java.lang.String getKeyAlias()

### setKeyAlias

    public void setKeyAlias(java.lang.String s)

### getAlgorithm

    public java.lang.String getAlgorithm()

### setAlgorithm

    public void setAlgorithm(java.lang.String s)

### getClientAuth

    public java.lang.String getClientAuth()

### setClientAuth

    public void setClientAuth(java.lang.String s)

### getKeystorePass

    public java.lang.String getKeystorePass()

### setKeystorePass

    public void setKeystorePass(java.lang.String s)

### getKeystoreType

    public java.lang.String getKeystoreType()

### setKeystoreType

    public void setKeystoreType(java.lang.String s)

### getSslProtocol

    public java.lang.String getSslProtocol()

### setSslProtocol

    public void setSslProtocol(java.lang.String s)

### setSslEnabledProtocols

    public void setSslEnabledProtocols(java.lang.String s)

### getCiphers

    public java.lang.String getCiphers()

### setCiphers

    public void setCiphers(java.lang.String s)

### getSessionCacheSize

    public int getSessionCacheSize()

### setSessionCacheSize

    public void setSessionCacheSize(int i)

### getSessionCacheTimeout

    public int getSessionCacheTimeout()

### setSessionCacheTimeout

    public void setSessionCacheTimeout(int i)

### isSSLEnabled

    public boolean isSSLEnabled()

### setSSLEnabled

    public void setSSLEnabled(boolean SSLEnabled)

### getSecure

    public boolean getSecure()

### setSecure

    public void setSecure(boolean b)

### setSelectorPool

    public void setSelectorPool(NioSelectorPool selectorPool)

### setSocketProperties

    public void setSocketProperties(SocketProperties socketProperties)

### setUseSendfile

    public void setUseSendfile(boolean useSendfile)

### setOomParachute

    public void setOomParachute(int oomParachute)

### setOomParachuteData

    public void setOomParachuteData(byte[] oomParachuteData)

### getSSLContext

    public javax.net.ssl.SSLContext getSSLContext()

### setSSLContext

    public void setSSLContext(javax.net.ssl.SSLContext c)

### checkParachute

    protected void checkParachute()

### reclaimParachute

    protected boolean reclaimParachute(boolean force)

### releaseCaches

    protected void releaseCaches()

### getKeepAliveCount

    public int getKeepAliveCount()

  Number of keepalive sockets.

### getCurrentThreadCount

    public int getCurrentThreadCount()

  Return the amount of threads that are managed by the pool.

  Returns:
    the amount of threads that are managed by the pool

### getCurrentThreadsBusy

    public int getCurrentThreadsBusy()

  Return the amount of threads currently busy.

  Returns:
    the amount of threads currently busy

### isRunning

    public boolean isRunning()

  Return the state of the endpoint.

  Returns:
    true if the endpoint is running, false otherwise

### isPaused

    public boolean isPaused()

  Return the state of the endpoint.

  Returns:
    true if the endpoint is paused, false otherwise

### init

    public void init()
              throws java.lang.Exception

  Initialize the endpoint.

  Throws:
    `java.lang.Exception`

### wrap

    public javax.net.ssl.KeyManager[] wrap(javax.net.ssl.KeyManager[] managers)

### start

    public void start()
               throws java.lang.Exception

  Start the NIO endpoint, creating acceptor, poller threads.

  Throws:
    `java.lang.Exception`

### pause

    public void pause()

  Pause the endpoint, which will make it stop accepting new sockets.

### resume

    public void resume()

  Resume the endpoint, which will make it start accepting new sockets again.

### stop

    public void stop()

  Stop the endpoint. This will cause all processing threads to stop.

### destroy

    public void destroy()
                 throws java.lang.Exception

  Deallocate NIO memory pools, and close server socket.

  Throws:
    `java.lang.Exception`

### getSequence

    protected int getSequence()

  Get a sequence number used for thread naming.

### getWriteBufSize

    public int getWriteBufSize()

### getReadBufSize

    public int getReadBufSize()

### getSelectorPool

    public NioSelectorPool getSelectorPool()

### getSocketProperties

    public SocketProperties getSocketProperties()

### getUseSendfile

    public boolean getUseSendfile()

### getOomParachute

    public int getOomParachute()

### getOomParachuteData

    public byte[] getOomParachuteData()

### unlockAccept

    protected void unlockAccept()

  Unlock the server socket accept using a bogus connection.

### setSocketOptions

    protected boolean setSocketOptions(java.nio.channels.SocketChannel socket)

  Process the specified connection.

### createSSLEngine

    protected javax.net.ssl.SSLEngine createSSLEngine()

### isWorkerAvailable

    protected boolean isWorkerAvailable()

  Returns true if a worker thread is available for processing.

  Returns:
    boolean

### createWorkerThread

    protected NioEndpoint.Worker createWorkerThread()

  Create (or allocate) and return an available processor for use in processing a specific HTTP request, if possible. If the maximum allowed processors have already been created and are in use, return `null` instead.

### newWorkerThread

    protected NioEndpoint.Worker newWorkerThread()

  Create and return a new processor suitable for processing HTTP requests and returning the corresponding responses.

### getWorkerThread

    protected NioEndpoint.Worker getWorkerThread()

  Return a new worker thread, and block while to worker is available.

### recycleWorkerThread

    protected void recycleWorkerThread(NioEndpoint.Worker workerThread)

  Recycle the specified Processor so that it can be used again.

  Parameters:
    `workerThread` - The processor to be recycled

### processSocket

    protected boolean processSocket(NioChannel socket)

  Process given socket.

### processSocket

    protected boolean processSocket(NioChannel socket,
                                    SocketStatus status)

  Process given socket for an event.

### processSocket

    protected boolean processSocket(NioChannel socket,
                                    SocketStatus status,
                                    boolean dispatch)

Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.