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
public class SnappyFrameDecoder extends ByteToMessageDecoder
Uncompresses aByteBufencoded 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 theSnappyFrameDecoder(boolean)constructor with the argument set totrue.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classSnappyFrameDecoder.ChunkType-
Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
ByteToMessageDecoder.Cumulator
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description private booleancorruptedprivate static intMAX_UNCOMPRESSED_DATA_SIZEprivate Snappysnappyprivate static intSNAPPY_IDENTIFIER_LENprivate booleanstartedprivate booleanvalidateChecksums-
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
-
Constructor Summary
Constructors Constructor Description SnappyFrameDecoder()Creates 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidcheckByte(byte actual, byte expect)protected voiddecode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.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 io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
-
-
-
Field Detail
-
SNAPPY_IDENTIFIER_LEN
private static final int SNAPPY_IDENTIFIER_LEN
- See Also:
- Constant Field Values
-
MAX_UNCOMPRESSED_DATA_SIZE
private static final int MAX_UNCOMPRESSED_DATA_SIZE
- See Also:
- Constant Field Values
-
snappy
private final Snappy snappy
-
validateChecksums
private final boolean validateChecksums
-
started
private boolean started
-
corrupted
private boolean corrupted
-
-
Constructor Detail
-
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 Detail
-
decode
protected void decode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out) throws java.lang.Exception
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:
java.lang.Exception- is thrown if an error occurs
-
checkByte
private static void checkByte(byte actual, byte expect)
-
mapChunkType
private static SnappyFrameDecoder.ChunkType mapChunkType(byte type)
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
-
-