Apache Tomcat 7.0.37

org.apache.coyote.http11
Class AbstractOutputBuffer<S>

java.lang.Object
  extended by org.apache.coyote.http11.AbstractOutputBuffer<S>
All Implemented Interfaces:
OutputBuffer
Direct Known Subclasses:
InternalAprOutputBuffer, InternalNioOutputBuffer, InternalOutputBuffer

public abstract class AbstractOutputBuffer<S>
extends Object
implements OutputBuffer


Field Summary
protected  OutputFilter[] activeFilters
          Active filter (which is actually the top of the pipeline).
protected  byte[] buf
          The buffer used for header composition.
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  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.
 
Constructor Summary
AbstractOutputBuffer()
           
 
Method Summary
 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.
 long getBytesWritten()
          Bytes written to the underlying socket.
 OutputFilter[] getFilters()
          Get filters.
abstract  void init(SocketWrapper<S> socketWrapper, AbstractEndpoint endpoint)
           
 void nextRequest()
          End processing of current HTTP request.
 void recycle()
          Recycle the output buffer.
 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 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(CharChunk cc)
          This method will write the contents of the specified char 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

response

protected Response response
Associated Coyote response.


committed

protected boolean committed
Committed flag.


finished

protected boolean finished
Finished flag.


buf

protected byte[] buf
The buffer used for header composition.


pos

protected int pos
Position in the buffer.


filterLibrary

protected OutputFilter[] filterLibrary
Filter library. Note: Filter[0] is always the "chunked" filter.


activeFilters

protected OutputFilter[] activeFilters
Active filter (which is actually the top of the pipeline).


lastActiveFilter

protected int lastActiveFilter
Index of the last active filter.


outputStreamOutputBuffer

protected OutputBuffer outputStreamOutputBuffer
Underlying output buffer.


byteCount

protected long byteCount
Bytes written to client for the current request


sm

protected static final StringManager sm
The string manager for this package.

Constructor Detail

AbstractOutputBuffer

public AbstractOutputBuffer()
Method Detail

addFilter

public void addFilter(OutputFilter filter)
Add an output filter to the filter library.


getFilters

public OutputFilter[] getFilters()
Get filters.


addActiveFilter

public void addActiveFilter(OutputFilter filter)
Add an output filter to the filter library.


doWrite

public int doWrite(ByteChunk chunk,
                   Response res)
            throws IOException
Write the contents of a byte chunk.

Specified by:
doWrite in interface OutputBuffer
Parameters:
chunk - byte chunk
res - used to allow buffers that can be shared by multiple responses.
Returns:
number of bytes written
Throws:
IOException - an underlying I/O error occurred

getBytesWritten

public long getBytesWritten()
Description copied from interface: OutputBuffer
Bytes written to the underlying socket. This includes the effects of chunking, compression, etc.

Specified by:
getBytesWritten in interface OutputBuffer
Returns:
Bytes written for the current request

flush

public void flush()
           throws IOException
Flush the response.

Throws:
IOException - an underlying I/O error occurred

reset

public void reset()
Reset current response.

Throws:
IllegalStateException - if the response has already been committed

recycle

public void recycle()
Recycle the output buffer. This should be called when closing the connection.


nextRequest

public void nextRequest()
End processing of current HTTP request. Note: All bytes of the current request should have been already consumed. This method only resets all the pointers so that we are ready to parse the next HTTP request.


endRequest

public void endRequest()
                throws IOException
End request.

Throws:
IOException - an underlying I/O error occurred

init

public abstract void init(SocketWrapper<S> socketWrapper,
                          AbstractEndpoint endpoint)
                   throws IOException
Throws:
IOException

sendAck

public abstract void sendAck()
                      throws IOException
Throws:
IOException

commit

protected abstract void commit()
                        throws IOException
Throws:
IOException

sendStatus

public void sendStatus()
Send the response status line.


sendHeader

public void sendHeader(MessageBytes name,
                       MessageBytes value)
Send a header.

Parameters:
name - Header name
value - Header value

endHeaders

public void endHeaders()
End the header block.


write

protected void write(MessageBytes mb)
This method will write the contents of the specified message bytes buffer to the output stream, without filtering. This method is meant to be used to write the response header.

Parameters:
mb - data to be written

write

protected void write(ByteChunk bc)
This method will write the contents of the specified message bytes buffer to the output stream, without filtering. This method is meant to be used to write the response header.

Parameters:
bc - data to be written

write

protected void write(CharChunk cc)
This method will write the contents of the specified char buffer to the output stream, without filtering. This method is meant to be used to write the response header.

Parameters:
cc - data to be written

write

public void write(byte[] b)
This method will write the contents of the specified byte buffer to the output stream, without filtering. This method is meant to be used to write the response header.

Parameters:
b - data to be written

write

protected void write(String s)
This method will write the contents of the specified String to the output stream, without filtering. This method is meant to be used to write the response header.

Parameters:
s - data to be written

write

protected void write(int i)
This method will print the specified integer to the output stream, without filtering. This method is meant to be used to write the response header.

Parameters:
i - data to be written

Apache Tomcat 7.0.37

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.