Package org.apache.catalina.connector
Class CoyoteOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- jakarta.servlet.ServletOutputStream
-
- org.apache.catalina.connector.CoyoteOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class CoyoteOutputStream extends ServletOutputStream
Coyote implementation of the servlet output stream.- Author:
- Costin Manolache, Remy Maucherat
-
-
Field Summary
Fields Modifier and Type Field Description protected OutputBuffer
ob
protected static StringManager
sm
-
Constructor Summary
Constructors Modifier Constructor Description protected
CoyoteOutputStream(OutputBuffer ob)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
clone()
Prevent cloning the facade.void
close()
void
flush()
Will send the buffer to the client.boolean
isReady()
Checks if a non-blocking write will succeed.void
setWriteListener(WriteListener listener)
Sets theWriteListener
for thisServletOutputStream
and thereby switches to non-blocking IO.void
write(byte[] b)
void
write(byte[] b, int off, int len)
void
write(int i)
void
write(java.nio.ByteBuffer from)
-
-
-
Field Detail
-
sm
protected static final StringManager sm
-
ob
protected OutputBuffer ob
-
-
Constructor Detail
-
CoyoteOutputStream
protected CoyoteOutputStream(OutputBuffer ob)
-
-
Method Detail
-
clone
protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
Prevent cloning the facade.- Overrides:
clone
in classjava.lang.Object
- Throws:
java.lang.CloneNotSupportedException
-
write
public void write(int i) throws java.io.IOException
- Specified by:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] b) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(java.nio.ByteBuffer from) throws java.io.IOException
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
Will send the buffer to the client.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- 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.OutputStream
- Throws:
java.io.IOException
-
isReady
public boolean isReady()
Description copied from class:jakarta.servlet.ServletOutputStream
Checks if a non-blocking write will succeed. If this returnsfalse
, it will cause a callback toWriteListener.onWritePossible()
when the buffer has emptied. If this method returnsfalse
no further data must be written until the container callsWriteListener.onWritePossible()
.- Specified by:
isReady
in classServletOutputStream
- Returns:
true
if data can be written, elsefalse
-
setWriteListener
public void setWriteListener(WriteListener listener)
Description copied from class:jakarta.servlet.ServletOutputStream
Sets theWriteListener
for thisServletOutputStream
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:
setWriteListener
in classServletOutputStream
- Parameters:
listener
- The non-blocking IO write listener
-
-