Package org.apache.coyote.http11.upgrade
Class UpgradeServletInputStream
- java.lang.Object
-
- java.io.InputStream
-
- jakarta.servlet.ServletInputStream
-
- org.apache.coyote.http11.upgrade.UpgradeServletInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class UpgradeServletInputStream extends ServletInputStream
-
-
Constructor Summary
Constructors Constructor Description UpgradeServletInputStream(UpgradeProcessorBase processor, SocketWrapperBase<?> socketWrapper, UpgradeInfo upgradeInfo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
boolean
isFinished()
Has the end of this InputStream been reached?boolean
isReady()
Can data be read from this InputStream without blocking?int
read()
int
read(byte[] b, int off, int len)
int
readLine(byte[] b, int off, int len)
Reads the input stream, one line at a time.void
setReadListener(ReadListener listener)
Sets theReadListener
for thisServletInputStream
and thereby switches to non-blocking IO.
-
-
-
Constructor Detail
-
UpgradeServletInputStream
public UpgradeServletInputStream(UpgradeProcessorBase processor, SocketWrapperBase<?> socketWrapper, UpgradeInfo upgradeInfo)
-
-
Method Detail
-
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
Can 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:
isReady
in classServletInputStream
- Returns:
true
if data can be read without blocking, elsefalse
-
setReadListener
public final void setReadListener(ReadListener listener)
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
public final int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
readLine
public final int readLine(byte[] b, int off, int len) throws java.io.IOException
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.
- 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:
java.io.IOException
- if an input or output exception has occurred
-
read
public final int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
-