Apache Tomcat 7.0.28

org.apache.catalina.connector
Class OutputBuffer

java.lang.Object
  extended by java.io.Writer
      extended by org.apache.catalina.connector.OutputBuffer
All Implemented Interfaces:
Closeable, Flushable, Appendable, ByteChunk.ByteOutputChannel

public class OutputBuffer
extends Writer
implements ByteChunk.ByteOutputChannel

The buffer used by Tomcat response. This is a derivative of the Tomcat 3.3 OutputBuffer, with the removal of some of the state handling (which in Coyote is mostly the Processor's responsibility).

Author:
Costin Manolache, Remy Maucherat

Field Summary
protected  C2BConverter conv
          Current char to byte converter.
static int DEFAULT_BUFFER_SIZE
           
static String DEFAULT_ENCODING
           
protected  HashMap<String,C2BConverter> encoders
          List of encoders.
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
OutputBuffer()
          Default constructor.
OutputBuffer(int size)
          Alternate constructor which allows specifying the initial buffer size.
 
Method Summary
 void checkConverter()
           
 void clearEncoders()
          Clear cached encoders (to save memory for Comet requests).
 void close()
          Close the output buffer.
protected  void doFlush(boolean realFlush)
          Flush bytes or chars contained in the buffer.
 void flush()
          Flush bytes or chars contained in the buffer.
 int getBufferSize()
           
 long getContentWritten()
           
 Response getResponse()
          Deprecated. 
 boolean isClosed()
          Is the response output closed ?
 boolean isNew()
          True if this buffer hasn't been used ( since recycle() ) - i.e. no chars or bytes have been added to the buffer.
 boolean isSuspended()
          Is the response output suspended ?
 void realWriteBytes(byte[] buf, int off, int cnt)
          Sends the buffer data to the client output, checking the state of Response and calling the right interceptors.
 void recycle()
          Recycle the output buffer.
 void reset()
           
 void reset(boolean resetWriterStreamFlags)
           
 void setBufferSize(int size)
           
protected  void setConverter()
           
 void setEncoding(String s)
           
 void setResponse(Response coyoteResponse)
          Associated Coyote response.
 void setSuspended(boolean suspended)
          Set the suspended flag.
 void write(byte[] b, int off, int len)
           
 void write(char[] c)
           
 void write(char[] c, int off, int len)
           
 void write(int c)
           
 void write(String s)
           
 void write(String s, int off, int len)
          Append a string to the buffer
 void writeByte(int b)
           
 
Methods inherited from class java.io.Writer
append, append, append
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_ENCODING

public static final String DEFAULT_ENCODING
See Also:
Constant Field Values

DEFAULT_BUFFER_SIZE

public static final int DEFAULT_BUFFER_SIZE
See Also:
Constant Field Values

encoders

protected HashMap<String,C2BConverter> encoders
List of encoders.


conv

protected C2BConverter conv
Current char to byte converter.

Constructor Detail

OutputBuffer

public OutputBuffer()
Default constructor. Allocate the buffer with the default buffer size.


OutputBuffer

public OutputBuffer(int size)
Alternate constructor which allows specifying the initial buffer size.

Parameters:
size - Buffer size to use
Method Detail

setResponse

public void setResponse(Response coyoteResponse)
Associated Coyote response.

Parameters:
coyoteResponse - Associated Coyote response

getResponse

@Deprecated
public Response getResponse()
Deprecated. 

Get associated Coyote response.

Returns:
the associated Coyote response

isSuspended

public boolean isSuspended()
Is the response output suspended ?

Returns:
suspended flag value

setSuspended

public void setSuspended(boolean suspended)
Set the suspended flag.

Parameters:
suspended - New suspended flag value

isClosed

public boolean isClosed()
Is the response output closed ?

Returns:
closed flag value

recycle

public void recycle()
Recycle the output buffer.


clearEncoders

public void clearEncoders()
Clear cached encoders (to save memory for Comet requests).


close

public void close()
           throws IOException
Close the output buffer. This tries to calculate the response size if the response has not been committed yet.

Specified by:
close in interface Closeable
Specified by:
close in class Writer
Throws:
IOException - An underlying IOException occurred

flush

public void flush()
           throws IOException
Flush bytes or chars contained in the buffer.

Specified by:
flush in interface Flushable
Specified by:
flush in class Writer
Throws:
IOException - An underlying IOException occurred

doFlush

protected void doFlush(boolean realFlush)
                throws IOException
Flush bytes or chars contained in the buffer.

Throws:
IOException - An underlying IOException occurred

realWriteBytes

public void realWriteBytes(byte[] buf,
                           int off,
                           int cnt)
                    throws IOException
Sends the buffer data to the client output, checking the state of Response and calling the right interceptors.

Specified by:
realWriteBytes in interface ByteChunk.ByteOutputChannel
Parameters:
buf - Byte buffer to be written to the response
off - Offset
cnt - Length
Throws:
IOException - An underlying IOException occurred

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Throws:
IOException

writeByte

public void writeByte(int b)
               throws IOException
Throws:
IOException

write

public void write(int c)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(char[] c)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(char[] c,
                  int off,
                  int len)
           throws IOException
Specified by:
write in class Writer
Throws:
IOException

write

public void write(String s,
                  int off,
                  int len)
           throws IOException
Append a string to the buffer

Overrides:
write in class Writer
Throws:
IOException

write

public void write(String s)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

setEncoding

public void setEncoding(String s)

checkConverter

public void checkConverter()
                    throws IOException
Throws:
IOException

setConverter

protected void setConverter()
                     throws IOException
Throws:
IOException

getContentWritten

public long getContentWritten()

isNew

public boolean isNew()
True if this buffer hasn't been used ( since recycle() ) - i.e. no chars or bytes have been added to the buffer.


setBufferSize

public void setBufferSize(int size)

reset

public void reset()

reset

public void reset(boolean resetWriterStreamFlags)

getBufferSize

public int getBufferSize()

Apache Tomcat 7.0.28

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