Class UpgradeServletInputStream
java.lang.Object
java.io.InputStream
jakarta.servlet.ServletInputStream
org.apache.coyote.http11.upgrade.UpgradeServletInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
-
Constructor Summary
ConstructorDescriptionUpgradeServletInputStream
(UpgradeProcessorBase processor, SocketWrapperBase<?> socketWrapper, UpgradeInfo upgradeInfo) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
final boolean
Has the end of this InputStream been reached?final boolean
isReady()
Returnstrue
if it is allowable to call aread()
method.final int
read()
final int
read
(byte[] b, int off, int len) final int
readLine
(byte[] b, int off, int len) Reads the input stream, one line at a time.final void
setReadListener
(ReadListener listener) Sets theReadListener
for thisServletInputStream
and thereby switches to non-blocking IO.Methods inherited from class jakarta.servlet.ServletInputStream
read, readAllBytes, readNBytes, readNBytes
Methods inherited from class java.io.InputStream
available, mark, markSupported, nullInputStream, read, reset, skip, skipNBytes, transferTo
-
Constructor Details
-
UpgradeServletInputStream
public UpgradeServletInputStream(UpgradeProcessorBase processor, SocketWrapperBase<?> socketWrapper, UpgradeInfo upgradeInfo)
-
-
Method Details
-
isFinished
public final boolean isFinished()Description copied from class:jakarta.servlet.ServletInputStream
Has the end of this InputStream been reached?- Specified by:
isFinished
in classServletInputStream
- Returns:
true
if all the data has been read from the stream, elsefalse
-
isReady
public final boolean isReady()Description copied from class:jakarta.servlet.ServletInputStream
Returnstrue
if it is allowable to call aread()
method. In blocking mode, this method will always returntrue
, but a subsequent call to aread()
method may block awaiting data. In non-blocking mode this method may returnfalse
, in which case it is illegal to call aread()
method and anIllegalStateException
MUST be thrown. WhenReadListener.onDataAvailable()
is called, a call to this method that returnedtrue
is implicit.If this method returns
false
and aReadListener
has been set viaServletInputStream.setReadListener(ReadListener)
, then the container will subsequently invokeReadListener.onDataAvailable()
(orReadListener.onAllDataRead()
) once data (or EOF) has become available. Other than the initial callReadListener.onDataAvailable()
will only be called if and only if this method is called and returns false.- Specified by:
isReady
in classServletInputStream
- Returns:
true
if data can be obtained without blocking, otherwise returnsfalse
.
-
setReadListener
Description copied from class:jakarta.servlet.ServletInputStream
Sets theReadListener
for thisServletInputStream
and 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:
setReadListener
in classServletInputStream
- Parameters:
listener
- The non-blocking IO read listener
-
read
- Specified by:
read
in classInputStream
- Throws:
IOException
-
readLine
Description copied from class:jakarta.servlet.ServletInputStream
Reads the input stream, one line at a time. Starting at an offset, reads bytes into an array, until it reads a certain number of bytes or reaches a newline character, which it reads into the array as well.This method returns -1 if it reaches the end of the input stream before reading the maximum number of bytes.
This method may only be used when the input stream is in blocking mode.
- Overrides:
readLine
in classServletInputStream
- Parameters:
b
- an array of bytes into which data is readoff
- an integer specifying the character at which this method begins readinglen
- an integer specifying the maximum number of bytes to read- 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
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
- Throws:
IOException
-