public class NioEndpoint extends AbstractEndpoint<NioChannel>
| Modifier and Type | Class and Description | 
|---|---|
| protected class  | NioEndpoint.AcceptorThe background thread that listens for incoming TCP/IP connections and
 hands them off to an appropriate processor. | 
| static interface  | NioEndpoint.HandlerBare bones interface used for socket processing. | 
| static class  | NioEndpoint.KeyAttachment | 
| static class  | NioEndpoint.NioBufferHandler | 
| class  | NioEndpoint.PollerPoller class. | 
| static class  | NioEndpoint.PollerEventPollerEvent, cacheable object for poller events to avoid GC | 
| static class  | NioEndpoint.SendfileDataSendfileData class. | 
| protected class  | NioEndpoint.SocketProcessorThis class is the equivalent of the Worker, but will simply use in an
 external Executor thread pool. | 
AbstractEndpoint.BindState| Modifier and Type | Field and Description | 
|---|---|
| protected ConcurrentLinkedQueue<NioEndpoint.PollerEvent> | eventCacheCache for poller events | 
| protected NioEndpoint.Handler | handlerHandling of accepted sockets. | 
| protected ConcurrentLinkedQueue<NioEndpoint.KeyAttachment> | keyCacheCache for key attachment objects | 
| protected ConcurrentLinkedQueue<NioChannel> | nioChannelsBytebuffer cache, each channel holds a set of buffers (two, except for SSL holds four) | 
| protected int | oomParachuteThe size of the OOM parachute. | 
| protected byte[] | oomParachuteDataThe 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 String | oomParachuteMsgMake sure this string has already been allocated | 
| static int | OP_CALLBACK | 
| static int | OP_REGISTER | 
| protected AtomicInteger | pollerRotater | 
| protected NioEndpoint.Poller[] | pollersThe socket poller. | 
| protected int | pollerThreadCountPoller thread count. | 
| protected int | pollerThreadPriorityPriority of the poller threads. | 
| protected ConcurrentLinkedQueue<NioEndpoint.SocketProcessor> | processorCacheCache for SocketProcessor objects | 
| protected NioSelectorPool | selectorPool | 
| protected long | selectorTimeout | 
| protected ServerSocketChannel | serverSockServer socket "pointer". | 
| protected SSLContext | sslContext | 
| protected CountDownLatch | stopLatch | 
| protected boolean | useCometAllow comet request handling. | 
| protected boolean | useSendfileuse send file | 
acceptors, acceptorThreadCount, acceptorThreadPriority, attributes, internalExecutor, paused, running, sm, socketProperties, threadPriority| Constructor and Description | 
|---|
| NioEndpoint() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | bind()Initialize the endpoint. | 
| protected void | checkParachute() | 
| protected AbstractEndpoint.Acceptor | createAcceptor()Hook to allow Endpoints to provide a specific Acceptor implementation. | 
| protected SSLEngine | createSSLEngine() | 
| boolean | dispatchForEvent(NioChannel socket,
                SocketStatus status,
                boolean dispatch) | 
| boolean | getDeferAccept()Is deferAccept supported? | 
| NioEndpoint.Handler | getHandler() | 
| int | getKeepAliveCount()Number of keepalive sockets. | 
| int | getLocalPort()Port in use. | 
| protected Log | getLog() | 
| int | getOomParachute() | 
| byte[] | getOomParachuteData() | 
| NioEndpoint.Poller | getPoller0()Return an available poller in true round robin fashion | 
| int | getPollerThreadCount() | 
| int | getPollerThreadPriority() | 
| int | getReadBufSize() | 
| NioSelectorPool | getSelectorPool() | 
| long | getSelectorTimeout() | 
| SSLContext | getSSLContext() | 
| boolean | getUseComet() | 
| boolean | getUseCometTimeout() | 
| boolean | getUsePolling() | 
| boolean | getUseSendfile() | 
| int | getWriteBufSize() | 
| protected boolean | isWorkerAvailable()Returns true if a worker thread is available for processing. | 
| boolean | processSocket(NioChannel socket,
             SocketStatus status,
             boolean dispatch) | 
| void | processSocketAsync(SocketWrapper<NioChannel> socketWrapper,
                  SocketStatus socketStatus) | 
| protected boolean | reclaimParachute(boolean force) | 
| protected void | releaseCaches() | 
| void | removeWaitingRequest(SocketWrapper<NioChannel> socketWrapper) | 
| void | setHandler(NioEndpoint.Handler handler) | 
| void | setOomParachute(int oomParachute) | 
| void | setOomParachuteData(byte[] oomParachuteData) | 
| void | setPollerThreadCount(int pollerThreadCount) | 
| void | setPollerThreadPriority(int pollerThreadPriority) | 
| boolean | setProperty(String name,
           String value)Generic properties, introspected | 
| void | setSelectorPool(NioSelectorPool selectorPool) | 
| void | setSelectorTimeout(long timeout) | 
| protected boolean | setSocketOptions(SocketChannel socket)Process the specified connection. | 
| void | setSocketProperties(SocketProperties socketProperties) | 
| void | setSSLContext(SSLContext c) | 
| void | setUseComet(boolean useComet) | 
| void | setUseSendfile(boolean useSendfile) | 
| void | startInternal()Start the NIO endpoint, creating acceptor, poller threads. | 
| void | stopInternal()Stop the endpoint. | 
| void | unbind()Deallocate NIO memory pools, and close server socket. | 
| KeyManager[] | wrap(KeyManager[] managers) | 
configureUseServerCipherSuitesOrder, countDownConnection, countUpOrAwaitConnection, createExecutor, destroy, getAcceptorThreadCount, getAcceptorThreadPriority, getAddress, getAlgorithm, getAllowUnsafeLegacyRenegotiation, getAttribute, getBacklog, getBindOnInit, getCiphers, getClientAuth, getConnectionCount, getCrlFile, getCurrentThreadCount, getCurrentThreadsBusy, getDaemon, getExecutor, getExecutorTerminationTimeoutMillis, getKeepAliveTimeout, getKeyAlias, getKeyPass, getKeystoreFile, getKeystorePass, getKeystoreProvider, getKeystoreType, getMaxConnections, getMaxHeaderCount, getMaxKeepAliveRequests, getMaxThreads, getMaxThreadsInternal, getMaxThreadsWithExecutor, getMinSpareThreads, getName, getPort, getProperty, getSessionCacheSize, getSessionTimeout, getSocketProperties, getSoLinger, getSoTimeout, getSslEnabledProtocolsArray, getSslProtocol, getTcpNoDelay, getThreadPriority, getTrustManagerClassName, getTrustMaxCertLength, getTruststoreAlgorithm, getTruststoreFile, getTruststorePass, getTruststoreProvider, getTruststoreType, getUseServerCipherSuitesOrder, handleExceptionWithDelay, init, initializeConnectionLatch, isPaused, isRunning, isSSLEnabled, pause, releaseConnectionLatch, resume, setAcceptorThreadCount, setAcceptorThreadPriority, setAddress, setAlgorithm, setAllowUnsafeLegacyRenegotiation, setAttribute, setBacklog, setBindOnInit, setCiphers, setClientAuth, setCrlFile, setDaemon, setExecutor, setExecutorTerminationTimeoutMillis, setKeepAliveTimeout, setKeyAlias, setKeyPass, setKeystoreFile, setKeystorePass, setKeystoreProvider, setKeystoreType, setMaxConnections, setMaxHeaderCount, setMaxKeepAliveRequests, setMaxThreads, setMinSpareThreads, setName, setPort, setSessionCacheSize, setSessionTimeout, setSoLinger, setSoTimeout, setSSLEnabled, setSslEnabledProtocols, setSslProtocol, setTcpNoDelay, setThreadPriority, setTrustManagerClassName, setTrustMaxCertLength, setTruststoreAlgorithm, setTruststoreFile, setTruststorePass, setTruststoreProvider, setTruststoreType, setUseServerCipherSuitesOrder, shutdownExecutor, start, startAcceptorThreads, stop, unlockAcceptpublic static final int OP_REGISTER
public static final int OP_CALLBACK
protected NioSelectorPool selectorPool
protected ServerSocketChannel serverSock
protected boolean useSendfile
protected int oomParachute
protected byte[] oomParachuteData
protected static final String oomParachuteMsg
protected volatile CountDownLatch stopLatch
protected ConcurrentLinkedQueue<NioEndpoint.SocketProcessor> processorCache
protected ConcurrentLinkedQueue<NioEndpoint.KeyAttachment> keyCache
protected ConcurrentLinkedQueue<NioEndpoint.PollerEvent> eventCache
protected ConcurrentLinkedQueue<NioChannel> nioChannels
protected int pollerThreadPriority
protected NioEndpoint.Handler handler
protected boolean useComet
protected int pollerThreadCount
protected long selectorTimeout
protected NioEndpoint.Poller[] pollers
protected AtomicInteger pollerRotater
protected SSLContext sslContext
public boolean setProperty(String name, String value)
setProperty in class AbstractEndpoint<NioChannel>public void setPollerThreadPriority(int pollerThreadPriority)
public int getPollerThreadPriority()
public void setHandler(NioEndpoint.Handler handler)
public NioEndpoint.Handler getHandler()
public void setUseComet(boolean useComet)
public boolean getUseComet()
getUseComet in class AbstractEndpoint<NioChannel>public boolean getUseCometTimeout()
getUseCometTimeout in class AbstractEndpoint<NioChannel>public boolean getUsePolling()
getUsePolling in class AbstractEndpoint<NioChannel>public void setPollerThreadCount(int pollerThreadCount)
public int getPollerThreadCount()
public void setSelectorTimeout(long timeout)
public long getSelectorTimeout()
public NioEndpoint.Poller getPoller0()
public void setSelectorPool(NioSelectorPool selectorPool)
public void setSocketProperties(SocketProperties socketProperties)
public void setUseSendfile(boolean useSendfile)
public boolean getDeferAccept()
getDeferAccept in class AbstractEndpoint<NioChannel>public void setOomParachute(int oomParachute)
public void setOomParachuteData(byte[] oomParachuteData)
public SSLContext getSSLContext()
public void setSSLContext(SSLContext c)
public int getLocalPort()
getLocalPort in class AbstractEndpoint<NioChannel>protected void checkParachute()
protected boolean reclaimParachute(boolean force)
protected void releaseCaches()
public int getKeepAliveCount()
public void bind()
          throws Exception
bind in class AbstractEndpoint<NioChannel>Exceptionpublic KeyManager[] wrap(KeyManager[] managers)
public void startInternal()
                   throws Exception
startInternal in class AbstractEndpoint<NioChannel>Exceptionpublic void stopInternal()
stopInternal in class AbstractEndpoint<NioChannel>public void unbind()
            throws Exception
unbind in class AbstractEndpoint<NioChannel>Exceptionpublic int getWriteBufSize()
public int getReadBufSize()
public NioSelectorPool getSelectorPool()
public boolean getUseSendfile()
getUseSendfile in class AbstractEndpoint<NioChannel>public int getOomParachute()
public byte[] getOomParachuteData()
protected AbstractEndpoint.Acceptor createAcceptor()
AbstractEndpointcreateAcceptor in class AbstractEndpoint<NioChannel>protected boolean setSocketOptions(SocketChannel socket)
protected SSLEngine createSSLEngine()
protected boolean isWorkerAvailable()
public void processSocketAsync(SocketWrapper<NioChannel> socketWrapper, SocketStatus socketStatus)
processSocketAsync in class AbstractEndpoint<NioChannel>public boolean dispatchForEvent(NioChannel socket, SocketStatus status, boolean dispatch)
public boolean processSocket(NioChannel socket, SocketStatus status, boolean dispatch)
public void removeWaitingRequest(SocketWrapper<NioChannel> socketWrapper)
removeWaitingRequest in class AbstractEndpoint<NioChannel>protected Log getLog()
getLog in class AbstractEndpoint<NioChannel>Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.