|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mina.core.filterchain.IoFilterAdapter
org.apache.mina.filter.util.WriteRequestFilter
org.apache.mina.filter.compression.CompressionFilter
public class CompressionFilter
An IoFilter
which compresses all data using
JZlib.
Support for the LZW (DLCZ) algorithm is also planned.
This filter only supports compression using the PARTIAL FLUSH method, since that is the only method useful when doing stream level compression.
This filter supports compression/decompression of the input and output channels selectively. It can also be enabled/disabled on the fly.
This filter does not discard the zlib objects, keeping them around for the entire life of the filter. This is because the zlib dictionary needs to be built up over time, which is used during compression and decompression. Over time, as repetitive data is sent over the wire, the compression efficiency steadily increases.
Note that the zlib header is written only once. It is not necessary that the data received after processing by this filter may not be complete due to packet fragmentation.
It goes without saying that the other end of this stream should also have a compatible compressor/decompressor using the same algorithm.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.apache.mina.core.filterchain.IoFilter |
---|
IoFilter.NextFilter |
Field Summary | |
---|---|
static int |
COMPRESSION_DEFAULT
The default compression level used. |
static int |
COMPRESSION_MAX
Max compression level. |
static int |
COMPRESSION_MIN
Provides the best speed at the price of a low compression ratio. |
static int |
COMPRESSION_NONE
No compression done on the data. |
static AttributeKey |
DISABLE_COMPRESSION_ONCE
A flag that allows you to disable compression once. |
Constructor Summary | |
---|---|
CompressionFilter()
Creates a new instance which compresses outboud data and decompresses inbound data with default compression level. |
|
CompressionFilter(boolean compressInbound,
boolean compressOutbound,
int compressionLevel)
Creates a new instance. |
|
CompressionFilter(int compressionLevel)
Creates a new instance which compresses outboud data and decompresses inbound data with the specified compressionLevel. |
Method Summary | |
---|---|
protected java.lang.Object |
doFilterWrite(IoFilter.NextFilter nextFilter,
IoSession session,
WriteRequest writeRequest)
|
boolean |
isCompressInbound()
Returns true if incoming data is being compressed. |
boolean |
isCompressOutbound()
Returns true if the filter is compressing data being written. |
void |
messageReceived(IoFilter.NextFilter nextFilter,
IoSession session,
java.lang.Object message)
Filters IoHandler.messageReceived(IoSession,Object)
event. |
void |
onPostRemove(IoFilterChain parent,
java.lang.String name,
IoFilter.NextFilter nextFilter)
Invoked after this filter is removed from the specified parent. |
void |
onPreAdd(IoFilterChain parent,
java.lang.String name,
IoFilter.NextFilter nextFilter)
Invoked before this filter is added to the specified parent. |
void |
setCompressInbound(boolean compressInbound)
Sets if incoming data has to be compressed. |
void |
setCompressOutbound(boolean compressOutbound)
Set if outgoing data has to be compressed. |
Methods inherited from class org.apache.mina.filter.util.WriteRequestFilter |
---|
filterWrite, messageSent |
Methods inherited from class org.apache.mina.core.filterchain.IoFilterAdapter |
---|
destroy, exceptionCaught, filterClose, init, onPostAdd, onPreRemove, sessionClosed, sessionCreated, sessionIdle, sessionOpened, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int COMPRESSION_MAX
public static final int COMPRESSION_MIN
public static final int COMPRESSION_NONE
public static final int COMPRESSION_DEFAULT
public static final AttributeKey DISABLE_COMPRESSION_ONCE
Constructor Detail |
---|
public CompressionFilter()
public CompressionFilter(int compressionLevel)
compressionLevel
- the level of compression to be used. Must
be one of COMPRESSION_DEFAULT
,
COMPRESSION_MAX
,
COMPRESSION_MIN
, and
COMPRESSION_NONE
.public CompressionFilter(boolean compressInbound, boolean compressOutbound, int compressionLevel)
compressInbound
- true if data read is to be decompressedcompressOutbound
- true if data written is to be compressedcompressionLevel
- the level of compression to be used. Must
be one of COMPRESSION_DEFAULT
,
COMPRESSION_MAX
,
COMPRESSION_MIN
, and
COMPRESSION_NONE
.Method Detail |
---|
public void messageReceived(IoFilter.NextFilter nextFilter, IoSession session, java.lang.Object message) throws java.lang.Exception
IoFilterAdapter
IoHandler.messageReceived(IoSession,Object)
event.
messageReceived
in interface IoFilter
messageReceived
in class IoFilterAdapter
java.lang.Exception
protected java.lang.Object doFilterWrite(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws java.io.IOException
doFilterWrite
in class WriteRequestFilter
java.io.IOException
public void onPreAdd(IoFilterChain parent, java.lang.String name, IoFilter.NextFilter nextFilter) throws java.lang.Exception
IoFilterAdapter
IoFilter.init()
is invoked.
onPreAdd
in interface IoFilter
onPreAdd
in class IoFilterAdapter
parent
- the parent who called this methodname
- the name assigned to this filternextFilter
- the IoFilter.NextFilter
for this filter. You can reuse
this object until this filter is removed from the chain.
java.lang.Exception
public boolean isCompressInbound()
public void setCompressInbound(boolean compressInbound)
public boolean isCompressOutbound()
public void setCompressOutbound(boolean compressOutbound)
public void onPostRemove(IoFilterChain parent, java.lang.String name, IoFilter.NextFilter nextFilter) throws java.lang.Exception
IoFilterAdapter
IoFilter.destroy()
is invoked.
onPostRemove
in interface IoFilter
onPostRemove
in class IoFilterAdapter
parent
- the parent who called this methodname
- the name assigned to this filternextFilter
- the IoFilter.NextFilter
for this filter. You can reuse
this object until this filter is removed from the chain.
java.lang.Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |