Class SnappyFrameDecoder
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.compression.SnappyFrameDecoder
- All Implemented Interfaces:
ChannelHandler, ChannelInboundHandler
- Direct Known Subclasses:
SnappyFramedDecoder
Uncompresses a
ByteBuf encoded with the Snappy framing format.
See Snappy framing format.
Note that by default, validation of the checksum header in each chunk is
DISABLED for performance improvements. If performance is less of an issue,
or if you would prefer the safety that checksum validation brings, please
use the SnappyFrameDecoder(boolean) constructor with the argument
set to true.-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class ByteToMessageDecoder
ByteToMessageDecoder.CumulatorNested classes/interfaces inherited from interface ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate static final intprivate static final intprivate static final intprivate intprivate final Snappyprivate static final intprivate booleanprivate final booleanFields inherited from class ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new snappy-framed decoder with validation of checksums turned OFF.SnappyFrameDecoder(boolean validateChecksums) Creates a new snappy-framed decoder with validation of checksums as specified. -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidcheckByte(byte actual, byte expect) protected voiddecode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) Decode the from oneByteBufto an other.private static SnappyFrameDecoder.ChunkTypemapChunkType(byte type) Decodes the chunk type from the type tag byte.Methods inherited from class ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredMethods inherited from class ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaughtMethods inherited from class ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharableMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ChannelHandler
handlerAdded
-
Field Details
-
SNAPPY_IDENTIFIER_LEN
private static final int SNAPPY_IDENTIFIER_LEN- See Also:
-
MAX_UNCOMPRESSED_DATA_SIZE
private static final int MAX_UNCOMPRESSED_DATA_SIZE- See Also:
-
MAX_DECOMPRESSED_DATA_SIZE
private static final int MAX_DECOMPRESSED_DATA_SIZE- See Also:
-
MAX_COMPRESSED_CHUNK_SIZE
private static final int MAX_COMPRESSED_CHUNK_SIZE- See Also:
-
snappy
-
validateChecksums
private final boolean validateChecksums -
started
private boolean started -
corrupted
private boolean corrupted -
numBytesToSkip
private int numBytesToSkip
-
-
Constructor Details
-
SnappyFrameDecoder
public SnappyFrameDecoder()Creates a new snappy-framed decoder with validation of checksums turned OFF. To turn checksum validation on, please use the alternateSnappyFrameDecoder(boolean)constructor. -
SnappyFrameDecoder
public SnappyFrameDecoder(boolean validateChecksums) Creates a new snappy-framed decoder with validation of checksums as specified.- Parameters:
validateChecksums- If true, the checksum field will be validated against the actual uncompressed data, and if the checksums do not match, a suitableDecompressionExceptionwill be thrown
-
-
Method Details
-
decode
Description copied from class:ByteToMessageDecoderDecode the from oneByteBufto an other. This method will be called till either the inputByteBufhas nothing to read when return from this method or till nothing was read from the inputByteBuf.- Specified by:
decodein classByteToMessageDecoder- Parameters:
ctx- theChannelHandlerContextwhich thisByteToMessageDecoderbelongs toin- theByteBuffrom which to read dataout- theListto which decoded messages should be added- Throws:
Exception- is thrown if an error occurs
-
checkByte
private static void checkByte(byte actual, byte expect) -
mapChunkType
Decodes the chunk type from the type tag byte.- Parameters:
type- The tag byte extracted from the stream- Returns:
- The appropriate
SnappyFrameDecoder.ChunkType, defaulting toSnappyFrameDecoder.ChunkType.RESERVED_UNSKIPPABLE
-