Class CoyoteInputStream
java.lang.Object
java.io.InputStream
javax.servlet.ServletInputStream
org.apache.catalina.connector.CoyoteInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable
This class handles reading bytes.
- Author:
- Remy Maucherat
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintprotected Objectclone()Prevent cloning the facade.voidclose()Close the stream Since we re-cycle, we can't allow the call to super.close() which would permanently disable us.booleanHas the end of this InputStream been reached?booleanisReady()Can data be read from this InputStream without blocking?intread()intread(byte[] b) intread(byte[] b, int off, int len) intread(ByteBuffer b) Transfers bytes from the buffer to the specified ByteBuffer.voidsetReadListener(ReadListener listener) Sets theReadListenerfor thisServletInputStreamand thereby switches to non-blocking IO.Methods inherited from class javax.servlet.ServletInputStream
readLineMethods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
-
Field Details
-
sm
-
ib
-
-
Constructor Details
-
CoyoteInputStream
-
-
Method Details
-
clone
Prevent cloning the facade.- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
read
- Specified by:
readin classInputStream- Throws:
IOException
-
available
- Overrides:
availablein classInputStream- Throws:
IOException
-
read
- Overrides:
readin classInputStream- Throws:
IOException
-
read
- Overrides:
readin classInputStream- Throws:
IOException
-
read
Transfers bytes from the buffer to the specified ByteBuffer. After the operation the position of the ByteBuffer will be returned to the one before the operation, the limit will be the position incremented by the number of the transferred bytes.- Parameters:
b- the ByteBuffer into which bytes are to be written.- Returns:
- an integer specifying the actual number of bytes read, or -1 if the end of the stream is reached
- Throws:
IOException- if an input or output exception has occurred
-
close
Close the stream Since we re-cycle, we can't allow the call to super.close() which would permanently disable us.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException
-
isFinished
public boolean isFinished()Description copied from class:javax.servlet.ServletInputStreamHas the end of this InputStream been reached?- Specified by:
isFinishedin classServletInputStream- Returns:
trueif all the data has been read from the stream, elsefalse
-
isReady
public boolean isReady()Description copied from class:javax.servlet.ServletInputStreamCan data be read from this InputStream without blocking? Returns If this method is called and returns false, the container will invokeReadListener.onDataAvailable()when data is available.- Specified by:
isReadyin classServletInputStream- Returns:
trueif data can be read without blocking, elsefalse
-
setReadListener
Description copied from class:javax.servlet.ServletInputStreamSets theReadListenerfor thisServletInputStreamand thereby switches to non-blocking IO. It is only valid to switch to non-blocking IO within async processing or HTTP upgrade processing.- Specified by:
setReadListenerin classServletInputStream- Parameters:
listener- The non-blocking IO read listener
-