public abstract class AbstractOutputBuffer<S> extends Object implements OutputBuffer
| Modifier and Type | Field and Description |
|---|---|
protected OutputFilter[] |
activeFilters
Active filter (which is actually the top of the pipeline).
|
protected LinkedBlockingDeque<ByteBufferHolder> |
bufferedWrites
For "non-blocking" writes use an external set of buffers.
|
protected int |
bufferedWriteSize
The max size of the buffered write buffer
|
protected long |
byteCount
Bytes written to client for the current request
|
protected boolean |
committed
Committed flag.
|
protected OutputFilter[] |
filterLibrary
Filter library.
|
protected boolean |
finished
Finished flag.
|
protected byte[] |
headerBuffer
The buffer used for header composition.
|
protected int |
lastActiveFilter
Index of the last active filter.
|
protected OutputBuffer |
outputStreamOutputBuffer
Underlying output buffer.
|
protected int |
pos
Position in the buffer.
|
protected Response |
response
Associated Coyote response.
|
protected static StringManager |
sm
The string manager for this package.
|
protected int |
socketBuffer
Socket buffering.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractOutputBuffer(Response response,
int headerBufferSize) |
| Modifier and Type | Method and Description |
|---|---|
void |
addActiveFilter(OutputFilter filter)
Add an output filter to the filter library.
|
void |
addFilter(OutputFilter filter)
Add an output filter to the filter library.
|
protected abstract void |
commit() |
int |
doWrite(ByteChunk chunk,
Response res)
Write the contents of a byte chunk.
|
void |
endHeaders()
End the header block.
|
void |
endRequest()
End request.
|
void |
flush()
Flush the response.
|
protected abstract boolean |
flushBuffer(boolean block)
Writes any remaining buffered data.
|
int |
getBufferedWriteSize() |
long |
getBytesWritten()
Bytes written to the underlying socket.
|
OutputFilter[] |
getFilters()
Get filters.
|
int |
getSocketBuffer()
Get the socket buffer flag.
|
protected boolean |
hasBufferedData() |
boolean |
hasDataToWrite() |
protected abstract boolean |
hasMoreDataToFlush() |
abstract void |
init(SocketWrapper<S> socketWrapper,
AbstractEndpoint<S> endpoint) |
protected boolean |
isBlocking()
Is standard Servlet blocking IO being used for output?
|
protected boolean |
isReady() |
void |
nextRequest()
End processing of current HTTP request.
|
void |
recycle()
Recycle the output buffer.
|
protected abstract void |
registerWriteInterest() |
void |
reset()
Reset current response.
|
abstract void |
sendAck() |
void |
sendHeader(MessageBytes name,
MessageBytes value)
Send a header.
|
void |
sendStatus()
Send the response status line.
|
void |
setBufferedWriteSize(int bufferedWriteSize) |
void |
setSocketBuffer(int socketBuffer)
Set the socket buffer flag.
|
void |
write(byte[] b)
This method will write the contents of the specified byte
buffer to the output stream, without filtering.
|
protected void |
write(ByteChunk bc)
This method will write the contents of the specified message bytes
buffer to the output stream, without filtering.
|
protected void |
write(int i)
This method will print the specified integer to the output stream,
without filtering.
|
protected void |
write(MessageBytes mb)
This method will write the contents of the specified message bytes
buffer to the output stream, without filtering.
|
protected void |
write(String s)
This method will write the contents of the specified String to the
output stream, without filtering.
|
protected Response response
protected boolean committed
protected boolean finished
protected byte[] headerBuffer
protected int pos
protected OutputFilter[] filterLibrary
protected OutputFilter[] activeFilters
protected int lastActiveFilter
protected OutputBuffer outputStreamOutputBuffer
protected long byteCount
protected int socketBuffer
protected final LinkedBlockingDeque<ByteBufferHolder> bufferedWrites
protected int bufferedWriteSize
protected static final StringManager sm
protected AbstractOutputBuffer(Response response, int headerBufferSize)
public void addFilter(OutputFilter filter)
public OutputFilter[] getFilters()
public void addActiveFilter(OutputFilter filter)
public void setSocketBuffer(int socketBuffer)
public int getSocketBuffer()
public void setBufferedWriteSize(int bufferedWriteSize)
public int getBufferedWriteSize()
public int doWrite(ByteChunk chunk, Response res) throws IOException
doWrite in interface OutputBufferchunk - byte chunkres - used to allow buffers that can be shared by multiple
responses.IOException - an underlying I/O error occurredpublic long getBytesWritten()
OutputBuffergetBytesWritten in interface OutputBufferpublic void flush()
throws IOException
IOException - an underlying I/O error occurredpublic void reset()
IllegalStateException - if the response has already been committedpublic void recycle()
public void nextRequest()
public void endRequest()
throws IOException
IOException - an underlying I/O error occurredpublic abstract void init(SocketWrapper<S> socketWrapper, AbstractEndpoint<S> endpoint) throws IOException
IOExceptionpublic abstract void sendAck()
throws IOException
IOExceptionprotected abstract void commit()
throws IOException
IOExceptionpublic void sendStatus()
public void sendHeader(MessageBytes name, MessageBytes value)
name - Header namevalue - Header valuepublic void endHeaders()
protected void write(MessageBytes mb)
mb - data to be writtenprotected void write(ByteChunk bc)
bc - data to be writtenpublic void write(byte[] b)
b - data to be writtenprotected void write(String s)
s - data to be writtenprotected void write(int i)
i - data to be writtenprotected abstract boolean hasMoreDataToFlush()
protected abstract void registerWriteInterest()
throws IOException
IOExceptionprotected abstract boolean flushBuffer(boolean block)
throws IOException
block - Should this method block until the buffer is emptytrue if data remains in the buffer (which can only
happen in non-blocking mode) else false.IOExceptionprotected final boolean isBlocking()
protected final boolean isReady()
throws IOException
IOExceptionpublic boolean hasDataToWrite()
protected boolean hasBufferedData()
Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.