rabbit.handler
Class ImageHandler

java.lang.Object
  |
  +--rabbit.handler.BaseHandler
        |
        +--rabbit.handler.ImageHandler
All Implemented Interfaces:
Handler

public class ImageHandler
extends BaseHandler

This class filters images to low quality jpegs.


Field Summary
 
Fields inherited from class rabbit.handler.BaseHandler
cacheStream, clientstream, con, contentstream, entry, maycache, mayfilter, request, response, size
 
Constructor Summary
ImageHandler(Connection con, HTTPHeader request, HTTPHeader response, java.io.InputStream contentstream, MultiOutputStream clientstream, boolean maycache, boolean mayfilter, long size)
          Create a new ImageHansler for the given request.
 
Method Summary
 void addCacheStream()
          Set up the cache stream if available.
protected  void convertImage()
          Convert the image into a low quality jpeg.
protected  void finish()
          clear up the mess we made (remove intermediate files etc).
protected  void readImage()
          Read in the image
protected  void removeCache(java.lang.Exception e)
          Remove the cachestream and the cache entry.
static void setup(java.util.Properties prop)
          Setup this class.
protected  void tryconvert()
          Try to convert the image.
protected  void writeHeader()
          Write the response header
 
Methods inherited from class rabbit.handler.BaseHandler
finishStream, handle, prepareStream, send, setPartialContent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImageHandler

public ImageHandler(Connection con,
                    HTTPHeader request,
                    HTTPHeader response,
                    java.io.InputStream contentstream,
                    MultiOutputStream clientstream,
                    boolean maycache,
                    boolean mayfilter,
                    long size)
Create a new ImageHansler for the given request.

Parameters:
con - the Connection handling the request.
request - the actual request made.
response - the actual response.
contentstream - the stream to read data from.
clientstream - the stream to write data to.
maycache - May we cache this request?
mayfilter - May we filter this request?
size - the size of the data beeing handled.
Method Detail

readImage

protected void readImage()
                  throws java.io.IOException
Read in the image

Throws:
java.io.IOException - if reading of the image fails.

convertImage

protected void convertImage()
                     throws java.io.IOException
Convert the image into a low quality jpeg.

Throws:
java.io.IOException - if conversion fails.

tryconvert

protected void tryconvert()
                   throws java.io.IOException
Try to convert the image. This is done like this: super.addCacheStream (); readImage(); convertImage(); clientstream.removeOutputStream (cacheStream); We have to use the cachefile to convert the image, and if we convert it we dont want to write the file to the cache later on.

java.io.IOException

writeHeader

protected void writeHeader()
                    throws java.io.IOException
Write the response header

Overrides:
writeHeader in class BaseHandler
Throws:
java.io.IOException - if writing the response fails.

addCacheStream

public void addCacheStream()
                    throws java.io.IOException
Set up the cache stream if available.

Overrides:
addCacheStream in class BaseHandler
Throws:
java.io.IOException - if a cachestream couldnt be set up.

finish

protected void finish()
               throws java.io.IOException
clear up the mess we made (remove intermediate files etc).

Overrides:
finish in class BaseHandler
Throws:
java.io.IOException - if cleaning fails.

removeCache

protected void removeCache(java.lang.Exception e)
Remove the cachestream and the cache entry.

Overrides:
removeCache in class BaseHandler
Parameters:
e - the Exception that happened

setup

public static void setup(java.util.Properties prop)
Setup this class.

Parameters:
prop - the properties of this class.