compressionFilters
Class CompressionResponseStream

java.lang.Object
  extended by java.io.OutputStream
      extended by javax.servlet.ServletOutputStream
          extended by compressionFilters.CompressionResponseStream
All Implemented Interfaces:
Closeable, Flushable

public class CompressionResponseStream
extends ServletOutputStream

Implementation of ServletOutputStream that works with the CompressionServletResponseWrapper implementation.

Author:
Amy Roh, Dmitri Valdin

Field Summary
protected  byte[] buffer
          The buffer through which all of our output bytes are passed.
protected  int bufferCount
          The number of data bytes currently in the buffer.
protected  boolean closed
          Has this stream been closed?
protected  int compressionThreshold
          The threshold number which decides to compress or not.
protected  GZIPOutputStream gzipstream
          The underlying gzip output stream to which we should write data.
protected  int length
          The content length past which we will not write, or -1 if there is no defined content length.
protected  ServletOutputStream output
          The underlying servket output stream to which we should write data.
protected  HttpServletResponse response
          The response with which this servlet output stream is associated.
 
Constructor Summary
CompressionResponseStream(HttpServletResponse response)
          Construct a servlet output stream associated with the specified Response.
 
Method Summary
 void close()
          Close this output stream, causing any buffered data to be flushed and any further output data to throw an IOException.
 boolean closed()
          Has this response stream been closed?
 void flush()
          Flush any buffered data for this output stream, which also causes the response to be committed.
 void flushToGZip()
           
protected  void setBuffer(int threshold)
          Set the compressionThreshold number and create buffer for this size
 void setDebugLevel(int debug)
          Set debug level
 void write(byte[] b)
          Write b.length bytes from the specified byte array to our output stream.
 void write(byte[] b, int off, int len)
          Write len bytes from the specified byte array, starting at the specified offset, to our output stream.
 void write(int b)
          Write the specified byte to our output stream.
 void writeToGZip(byte[] b, int off, int len)
           
 
Methods inherited from class javax.servlet.ServletOutputStream
print, print, print, print, print, print, print, println, println, println, println, println, println, println, println
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

compressionThreshold

protected int compressionThreshold
The threshold number which decides to compress or not. Users can configure in web.xml to set it to fit their needs.


buffer

protected byte[] buffer
The buffer through which all of our output bytes are passed.


bufferCount

protected int bufferCount
The number of data bytes currently in the buffer.


gzipstream

protected GZIPOutputStream gzipstream
The underlying gzip output stream to which we should write data.


closed

protected boolean closed
Has this stream been closed?


length

protected int length
The content length past which we will not write, or -1 if there is no defined content length.


response

protected HttpServletResponse response
The response with which this servlet output stream is associated.


output

protected ServletOutputStream output
The underlying servket output stream to which we should write data.

Constructor Detail

CompressionResponseStream

public CompressionResponseStream(HttpServletResponse response)
                          throws IOException
Construct a servlet output stream associated with the specified Response.

Parameters:
response - The associated response
Throws:
IOException
Method Detail

setDebugLevel

public void setDebugLevel(int debug)
Set debug level


setBuffer

protected void setBuffer(int threshold)
Set the compressionThreshold number and create buffer for this size


close

public void close()
           throws IOException
Close this output stream, causing any buffered data to be flushed and any further output data to throw an IOException.

Specified by:
close in interface Closeable
Overrides:
close in class OutputStream
Throws:
IOException

flush

public void flush()
           throws IOException
Flush any buffered data for this output stream, which also causes the response to be committed.

Specified by:
flush in interface Flushable
Overrides:
flush in class OutputStream
Throws:
IOException

flushToGZip

public void flushToGZip()
                 throws IOException
Throws:
IOException

write

public void write(int b)
           throws IOException
Write the specified byte to our output stream.

Specified by:
write in class OutputStream
Parameters:
b - The byte to be written
Throws:
IOException - if an input/output error occurs

write

public void write(byte[] b)
           throws IOException
Write b.length bytes from the specified byte array to our output stream.

Overrides:
write in class OutputStream
Parameters:
b - The byte array to be written
Throws:
IOException - if an input/output error occurs

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Write len bytes from the specified byte array, starting at the specified offset, to our output stream.

Overrides:
write in class OutputStream
Parameters:
b - The byte array containing the bytes to be written
off - Zero-relative starting offset of the bytes to be written
len - The number of bytes to be written
Throws:
IOException - if an input/output error occurs

writeToGZip

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

closed

public boolean closed()
Has this response stream been closed?



Copyright © 2003-2007 Apache Software Foundation. All Rights Reserved.