Class NioEndpoint.NioSocketWrapper
java.lang.Object
org.apache.tomcat.util.net.SocketWrapperBase<NioChannel>
org.apache.tomcat.util.net.NioEndpoint.NioSocketWrapper
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.tomcat.util.net.SocketWrapperBase
SocketWrapperBase.BlockingMode, SocketWrapperBase.CompletionCheck, SocketWrapperBase.CompletionHandlerCall, SocketWrapperBase.CompletionState, SocketWrapperBase.OperationState<A>, SocketWrapperBase.VectoredIOCompletionHandler<A> -
Field Summary
Fields inherited from class org.apache.tomcat.util.net.SocketWrapperBase
bufferedWriteSize, closed, COMPLETE_READ, COMPLETE_READ_WITH_COMPLETION, COMPLETE_WRITE, COMPLETE_WRITE_WITH_COMPLETION, localAddr, localName, localPort, nonBlockingWriteBuffer, previousIOException, READ_DATA, readOperation, readPending, remoteAddr, remoteHost, remotePort, servletConnection, sm, socketBufferHandler, writeOperation, writePending -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateSendfileData(String filename, long pos, long length) voiddoClientAuth(SSLSupport sslSupport) Require the client to perform CLIENT-CERT authentication if it hasn't already done so.protected voiddoClose()Perform the actual close.protected voiddoWrite(boolean block, ByteBuffer buffer) Write the contents of the ByteBuffer to the socket.protected booleanWrites as much data as possible from any that remains in the buffers.longlongObtain an SSLSupport instance for this socket.intintinterestOps(int ops) booleaninterestOpsHas(int targetOp) booleanprotected <A> SocketWrapperBase<NioChannel>.OperationState<A> newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, SocketWrapperBase.BlockingMode block, long timeout, TimeUnit unit, A attachment, SocketWrapperBase.CompletionCheck check, CompletionHandler<Long, ? super A> handler, Semaphore semaphore, SocketWrapperBase<NioChannel>.VectoredIOCompletionHandler<A> completion) protected voidprotected voidprotected voidprotected voidprotected voidprotected voidprocessSendfile(SendfileDataBase sendfileData) Starts the sendfile process.intread(boolean block, byte[] b, int off, int len) intread(boolean block, ByteBuffer to) voidvoidvoidvoidvoidvoidMethods inherited from class org.apache.tomcat.util.net.SocketWrapperBase
buffersArrayHasRemaining, canWrite, checkError, close, decrementKeepAlive, doWrite, execute, flush, flushBlocking, getCurrentProcessor, getEndpoint, getError, getLocalAddr, getLocalName, getLocalPort, getLock, getNegotiatedProtocol, getReadTimeout, getRemoteAddr, getRemoteHost, getRemotePort, getServletConnection, getSocket, getSocketBufferHandler, getWriteTimeout, hasAsyncIO, hasDataToRead, hasDataToWrite, hasPerOperationTimeout, isClosed, isReadPending, isReadyForWrite, isWritePending, needSemaphores, populateReadBuffer, populateReadBuffer, processSocket, read, read, read, reset, setCurrentProcessor, setError, setKeepAliveLeft, setNegotiatedProtocol, setReadTimeout, setWriteTimeout, takeCurrentProcessor, toString, transfer, transfer, unRead, vectoredOperation, write, write, write, write, write, writeBlocking, writeBlocking, writeNonBlocking, writeNonBlocking, writeNonBlockingInternal
-
Constructor Details
-
NioSocketWrapper
-
-
Method Details
-
getPoller
-
interestOps
public int interestOps() -
interestOps
public int interestOps(int ops) -
interestOpsHas
public boolean interestOpsHas(int targetOp) -
setSendfileData
-
getSendfileData
-
updateLastWrite
public void updateLastWrite() -
getLastWrite
public long getLastWrite() -
updateLastRead
public void updateLastRead() -
getLastRead
public long getLastRead() -
isReadyForRead
- Specified by:
isReadyForReadin classSocketWrapperBase<NioChannel>- Throws:
IOException
-
read
- Specified by:
readin classSocketWrapperBase<NioChannel>- Throws:
IOException
-
read
- Specified by:
readin classSocketWrapperBase<NioChannel>- Throws:
IOException
-
doClose
protected void doClose()Description copied from class:SocketWrapperBasePerform the actual close. The closed atomic boolean guarantees this will be called only once per wrapper.- Specified by:
doClosein classSocketWrapperBase<NioChannel>
-
flushNonBlocking
Description copied from class:SocketWrapperBaseWrites as much data as possible from any that remains in the buffers.- Specified by:
flushNonBlockingin classSocketWrapperBase<NioChannel>- Returns:
trueif data remains to be flushed after this method completes, otherwisefalse.- Throws:
IOException- If an IO error occurs during the write
-
doWrite
Description copied from class:SocketWrapperBaseWrite the contents of the ByteBuffer to the socket. For blocking writes either then entire contents of the buffer will be written or an IOException will be thrown. Partial blocking writes will not occur.- Specified by:
doWritein classSocketWrapperBase<NioChannel>- Parameters:
block- Should the write be blocking or not?buffer- the ByteBuffer containing the data to be written- Throws:
IOException- If an I/O error such as a timeout occurs during the write
-
registerReadInterest
public void registerReadInterest()- Specified by:
registerReadInterestin classSocketWrapperBase<NioChannel>
-
registerWriteInterest
public void registerWriteInterest()- Specified by:
registerWriteInterestin classSocketWrapperBase<NioChannel>
-
createSendfileData
- Specified by:
createSendfileDatain classSocketWrapperBase<NioChannel>
-
processSendfile
Description copied from class:SocketWrapperBaseStarts the sendfile process. It is expected that if the sendfile process does not complete during this call and does not report an error, that the caller will not add the socket to the poller (or equivalent). That is the responsibility of this method.- Specified by:
processSendfilein classSocketWrapperBase<NioChannel>- Parameters:
sendfileData- Data representing the file to send- Returns:
- The state of the sendfile process after the first write.
-
populateRemoteAddr
protected void populateRemoteAddr()- Specified by:
populateRemoteAddrin classSocketWrapperBase<NioChannel>
-
populateRemoteHost
protected void populateRemoteHost()- Specified by:
populateRemoteHostin classSocketWrapperBase<NioChannel>
-
populateRemotePort
protected void populateRemotePort()- Specified by:
populateRemotePortin classSocketWrapperBase<NioChannel>
-
populateLocalName
protected void populateLocalName()- Specified by:
populateLocalNamein classSocketWrapperBase<NioChannel>
-
populateLocalAddr
protected void populateLocalAddr()- Specified by:
populateLocalAddrin classSocketWrapperBase<NioChannel>
-
populateLocalPort
protected void populateLocalPort()- Specified by:
populateLocalPortin classSocketWrapperBase<NioChannel>
-
getSslSupport
Description copied from class:SocketWrapperBaseObtain an SSLSupport instance for this socket.- Specified by:
getSslSupportin classSocketWrapperBase<NioChannel>- Returns:
- An SSLSupport instance for this socket.
-
doClientAuth
Description copied from class:SocketWrapperBaseRequire the client to perform CLIENT-CERT authentication if it hasn't already done so.- Specified by:
doClientAuthin classSocketWrapperBase<NioChannel>- Parameters:
sslSupport- The SSL/TLS support instance currently being used by the connection that may need updating after the client authentication- Throws:
IOException- If authentication is required then there will be I/O with the client and this exception will be thrown if that goes wrong
-
setAppReadBufHandler
- Specified by:
setAppReadBufHandlerin classSocketWrapperBase<NioChannel>
-
newOperationState
protected <A> SocketWrapperBase<NioChannel>.OperationState<A> newOperationState(boolean read, ByteBuffer[] buffers, int offset, int length, SocketWrapperBase.BlockingMode block, long timeout, TimeUnit unit, A attachment, SocketWrapperBase.CompletionCheck check, CompletionHandler<Long, ? super A> handler, Semaphore semaphore, SocketWrapperBase<NioChannel>.VectoredIOCompletionHandler<A> completion) - Specified by:
newOperationStatein classSocketWrapperBase<NioChannel>
-