public class JdkZlibEncoder extends OneToOneStrictEncoder implements LifeCycleAwareChannelHandler
ChannelBuffer using the deflate algorithm.ChannelHandler.Sharable| Modifier and Type | Field and Description |
|---|---|
private java.util.zip.CRC32 |
crc |
private ChannelHandlerContext |
ctx |
private java.util.zip.Deflater |
deflater |
private java.util.concurrent.atomic.AtomicBoolean |
finished |
private static byte[] |
gzipHeader |
private byte[] |
out |
private ZlibWrapper |
wrapper |
private boolean |
writeHeader |
| Constructor and Description |
|---|
JdkZlibEncoder()
Creates a new zlib encoder with the default compression level (
6)
and the default wrapper (ZlibWrapper.ZLIB). |
JdkZlibEncoder(byte[] dictionary)
Creates a new zlib encoder with the default compression level (
6)
and the specified preset dictionary. |
JdkZlibEncoder(int compressionLevel)
Creates a new zlib encoder with the specified
compressionLevel
and the default wrapper (ZlibWrapper.ZLIB). |
JdkZlibEncoder(int compressionLevel,
byte[] dictionary)
Creates a new zlib encoder with the specified
compressionLevel
and the specified preset dictionary. |
JdkZlibEncoder(ZlibWrapper wrapper)
Creates a new zlib encoder with the default compression level (
6)
and the specified wrapper. |
JdkZlibEncoder(ZlibWrapper wrapper,
int compressionLevel)
Creates a new zlib encoder with the specified
compressionLevel
and the specified wrapper. |
| Modifier and Type | Method and Description |
|---|---|
void |
afterAdd(ChannelHandlerContext ctx) |
void |
afterRemove(ChannelHandlerContext ctx) |
void |
beforeAdd(ChannelHandlerContext ctx) |
void |
beforeRemove(ChannelHandlerContext ctx) |
ChannelFuture |
close() |
private void |
deflate(ChannelBuffer out) |
protected java.lang.Object |
encode(ChannelHandlerContext ctx,
Channel channel,
java.lang.Object msg)
Transforms the specified message into another message and return the
transformed message.
|
private int |
estimateCompressedSize(int originalSize) |
private ChannelFuture |
finishEncode(ChannelHandlerContext ctx,
ChannelEvent evt) |
void |
handleDownstream(ChannelHandlerContext ctx,
ChannelEvent evt)
Handles the specified downstream event.
|
boolean |
isClosed() |
private boolean |
isGzip() |
doEncodeprivate final ZlibWrapper wrapper
private final java.util.zip.Deflater deflater
private final java.util.concurrent.atomic.AtomicBoolean finished
private volatile ChannelHandlerContext ctx
private byte[] out
private final java.util.zip.CRC32 crc
private static final byte[] gzipHeader
private boolean writeHeader
public JdkZlibEncoder()
6)
and the default wrapper (ZlibWrapper.ZLIB).CompressionException - if failed to initialize zlibpublic JdkZlibEncoder(int compressionLevel)
compressionLevel
and the default wrapper (ZlibWrapper.ZLIB).compressionLevel - 1 yields the fastest compression and 9 yields the
best compression. 0 means no compression. The default
compression level is 6.CompressionException - if failed to initialize zlibpublic JdkZlibEncoder(ZlibWrapper wrapper)
6)
and the specified wrapper.CompressionException - if failed to initialize zlibpublic JdkZlibEncoder(ZlibWrapper wrapper, int compressionLevel)
compressionLevel
and the specified wrapper.compressionLevel - 1 yields the fastest compression and 9 yields the
best compression. 0 means no compression. The default
compression level is 6.CompressionException - if failed to initialize zlibpublic JdkZlibEncoder(byte[] dictionary)
6)
and the specified preset dictionary. The wrapper is always
ZlibWrapper.ZLIB because it is the only format that supports
the preset dictionary.dictionary - the preset dictionaryCompressionException - if failed to initialize zlibpublic JdkZlibEncoder(int compressionLevel,
byte[] dictionary)
compressionLevel
and the specified preset dictionary. The wrapper is always
ZlibWrapper.ZLIB because it is the only format that supports
the preset dictionary.compressionLevel - 1 yields the fastest compression and 9 yields the
best compression. 0 means no compression. The default
compression level is 6.dictionary - the preset dictionaryCompressionException - if failed to initialize zlibpublic ChannelFuture close()
private boolean isGzip()
public boolean isClosed()
protected java.lang.Object encode(ChannelHandlerContext ctx, Channel channel, java.lang.Object msg) throws java.lang.Exception
OneToOneEncodernull, unlike
you can in OneToOneDecoder.decode(ChannelHandlerContext, Channel, Object);
you must return something, at least ChannelBuffers.EMPTY_BUFFER.encode in class OneToOneEncoderjava.lang.Exceptionprivate int estimateCompressedSize(int originalSize)
public void handleDownstream(ChannelHandlerContext ctx, ChannelEvent evt) throws java.lang.Exception
ChannelDownstreamHandlerhandleDownstream in interface ChannelDownstreamHandlerhandleDownstream in class OneToOneEncoderctx - the context object for this handlerevt - the downstream event to process or interceptjava.lang.Exceptionprivate ChannelFuture finishEncode(ChannelHandlerContext ctx, ChannelEvent evt)
private void deflate(ChannelBuffer out)
public void beforeAdd(ChannelHandlerContext ctx) throws java.lang.Exception
beforeAdd in interface LifeCycleAwareChannelHandlerjava.lang.Exceptionpublic void afterAdd(ChannelHandlerContext ctx) throws java.lang.Exception
afterAdd in interface LifeCycleAwareChannelHandlerjava.lang.Exceptionpublic void beforeRemove(ChannelHandlerContext ctx) throws java.lang.Exception
beforeRemove in interface LifeCycleAwareChannelHandlerjava.lang.Exceptionpublic void afterRemove(ChannelHandlerContext ctx) throws java.lang.Exception
afterRemove in interface LifeCycleAwareChannelHandlerjava.lang.Exception