Class Bzip2Encoder
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelOutboundHandlerAdapter
io.netty.handler.codec.MessageToByteEncoder<ByteBuf>
io.netty.handler.codec.compression.Bzip2Encoder
- All Implemented Interfaces:
ChannelHandler, ChannelOutboundHandler
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Bzip2BlockCompressorThe compressor for the current block.private ChannelHandlerContextUsed to interact with itsChannelPipelineand other handlers.private Bzip2Encoder.Stateprivate boolean(@code true} if the compressed stream has been finished, otherwisefalse.private final intThe declared maximum block size of the stream (before final run-length decoding).private intThe merged CRC of all blocks compressed so far.private final Bzip2BitWriterA writer that provides bit-level writes. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new bzip2 encoder with the maximum (900,000 byte) block size.Bzip2Encoder(int blockSizeMultiplier) Creates a new bzip2 encoder with the specifiedblockSizeMultiplier. -
Method Summary
Modifier and TypeMethodDescriptionclose()Close thisBzip2Encoderand so finish the encoding.voidclose(ChannelHandlerContext ctx, ChannelPromise promise) CallsChannelOutboundInvoker.close(ChannelPromise)to forward to the nextChannelOutboundHandlerin theChannelPipeline.close(ChannelPromise promise) Close thisBzip2Encoderand so finish the encoding.private voidcloseBlock(ByteBuf out) Close current block and updatestreamCRC.private ChannelHandlerContextctx()protected voidencode(ChannelHandlerContext ctx, ByteBuf in, ByteBuf out) Encode a message into aByteBuf.private ChannelFuturefinishEncode(ChannelHandlerContext ctx, ChannelPromise promise) voidDo nothing by default, sub-classes may override this method.booleanisClosed()Returnstrueif and only if the end of the compressed stream has been reached.Methods inherited from class MessageToByteEncoder
acceptOutboundMessage, allocateBuffer, isPreferDirect, writeMethods inherited from class ChannelOutboundHandlerAdapter
bind, connect, deregister, disconnect, flush, readMethods inherited from class ChannelHandlerAdapter
ensureNotSharable, exceptionCaught, handlerRemoved, isSharableMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ChannelHandler
exceptionCaught, handlerRemoved
-
Field Details
-
currentState
-
writer
A writer that provides bit-level writes. -
streamBlockSize
private final int streamBlockSizeThe declared maximum block size of the stream (before final run-length decoding). -
streamCRC
private int streamCRCThe merged CRC of all blocks compressed so far. -
blockCompressor
The compressor for the current block. -
finished
private volatile boolean finished(@code true} if the compressed stream has been finished, otherwisefalse. -
ctx
Used to interact with itsChannelPipelineand other handlers.
-
-
Constructor Details
-
Bzip2Encoder
public Bzip2Encoder()Creates a new bzip2 encoder with the maximum (900,000 byte) block size. -
Bzip2Encoder
public Bzip2Encoder(int blockSizeMultiplier) Creates a new bzip2 encoder with the specifiedblockSizeMultiplier.- Parameters:
blockSizeMultiplier- The Bzip2 block size as a multiple of 100,000 bytes (minimum1, maximum9). Larger block sizes require more memory for both compression and decompression, but give better compression ratios.9will usually be the best value to use.
-
-
Method Details
-
encode
Description copied from class:MessageToByteEncoderEncode a message into aByteBuf. This method will be called for each written message that can be handled by this encoder.- Specified by:
encodein classMessageToByteEncoder<ByteBuf>- Parameters:
ctx- theChannelHandlerContextwhich thisMessageToByteEncoderbelongs toin- the message to encodeout- theByteBufinto which the encoded message will be written- Throws:
Exception- is thrown if an error occurs
-
closeBlock
-
isClosed
public boolean isClosed()Returnstrueif and only if the end of the compressed stream has been reached. -
close
Close thisBzip2Encoderand so finish the encoding. The returnedChannelFuturewill be notified once the operation completes. -
close
Close thisBzip2Encoderand so finish the encoding. The givenChannelFuturewill be notified once the operation completes and will also be returned. -
close
Description copied from class:ChannelOutboundHandlerAdapterCallsChannelOutboundInvoker.close(ChannelPromise)to forward to the nextChannelOutboundHandlerin theChannelPipeline. Sub-classes may override this method to change behavior.- Specified by:
closein interfaceChannelOutboundHandler- Overrides:
closein classChannelOutboundHandlerAdapter- Parameters:
ctx- theChannelHandlerContextfor which the close operation is madepromise- theChannelPromiseto notify once the operation completes- Throws:
Exception- thrown if an error occurs
-
finishEncode
-
ctx
-
handlerAdded
Description copied from class:ChannelHandlerAdapterDo nothing by default, sub-classes may override this method.- Specified by:
handlerAddedin interfaceChannelHandler- Overrides:
handlerAddedin classChannelHandlerAdapter- Throws:
Exception
-