Class UpgradeServletInputStream
java.lang.Object
java.io.InputStream
jakarta.servlet.ServletInputStream
org.apache.coyote.http11.upgrade.UpgradeServletInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable
-
Constructor Summary
ConstructorsConstructorDescriptionUpgradeServletInputStream(UpgradeProcessorBase processor, SocketWrapperBase<?> socketWrapper, UpgradeInfo upgradeInfo) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()final booleanHas the end of this InputStream been reached?final booleanisReady()Returnstrueif it is allowable to call aread()method.final intread()final intread(byte[] b, int off, int len) final intreadLine(byte[] b, int off, int len) Reads the input stream, one line at a time.final voidsetReadListener(ReadListener listener) Sets theReadListenerfor thisServletInputStreamand thereby switches to non-blocking IO.Methods inherited from class jakarta.servlet.ServletInputStream
read, readAllBytes, readNBytes, readNBytesMethods 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.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 final boolean isReady()Description copied from class:jakarta.servlet.ServletInputStreamReturnstrueif 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 anIllegalStateExceptionMUST be thrown. WhenReadListener.onDataAvailable()is called, a call to this method that returnedtrueis implicit.If this method returns
falseand aReadListenerhas 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:
isReadyin classServletInputStream- Returns:
trueif data can be obtained without blocking, otherwise returnsfalse.
-
setReadListener
Description copied from class:jakarta.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
-
read
- Specified by:
readin classInputStream- Throws:
IOException
-
readLine
Description copied from class:jakarta.servlet.ServletInputStreamReads 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:
readLinein 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:
readin classInputStream- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException
-