Class JdkZlibDecoder

    • Constructor Detail

      • JdkZlibDecoder

        public JdkZlibDecoder​(int maxAllocation)
        Creates a new instance with the default wrapper (ZlibWrapper.ZLIB) and the specified maximum buffer allocation.
        Parameters:
        maxAllocation - Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is decided by the ByteBufAllocator.
      • JdkZlibDecoder

        @Deprecated
        public JdkZlibDecoder​(byte[] dictionary)
        Deprecated.
        Creates a new instance with the specified preset dictionary. The wrapper is always ZlibWrapper.ZLIB because it is the only format that supports the preset dictionary.
      • JdkZlibDecoder

        public JdkZlibDecoder​(byte[] dictionary,
                              int maxAllocation)
        Creates a new instance with the specified preset dictionary and maximum buffer allocation. The wrapper is always ZlibWrapper.ZLIB because it is the only format that supports the preset dictionary.
        Parameters:
        maxAllocation - Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is decided by the ByteBufAllocator.
      • JdkZlibDecoder

        public JdkZlibDecoder​(ZlibWrapper wrapper,
                              int maxAllocation)
        Creates a new instance with the specified wrapper and maximum buffer allocation. Be aware that only ZlibWrapper.GZIP, ZlibWrapper.ZLIB and ZlibWrapper.NONE are supported atm.
        Parameters:
        maxAllocation - Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is decided by the ByteBufAllocator.
      • JdkZlibDecoder

        public JdkZlibDecoder​(ZlibWrapper wrapper,
                              boolean decompressConcatenated,
                              int maxAllocation)
      • JdkZlibDecoder

        public JdkZlibDecoder​(boolean decompressConcatenated,
                              int maxAllocation)
      • JdkZlibDecoder

        private JdkZlibDecoder​(ZlibWrapper wrapper,
                               byte[] dictionary,
                               boolean decompressConcatenated,
                               int maxAllocation)
    • Method Detail

      • isClosed

        public boolean isClosed()
        Description copied from class: ZlibDecoder
        Returns true if and only if the end of the compressed stream has been reached.
        Specified by:
        isClosed in class ZlibDecoder
      • handleGzipFooter

        private boolean handleGzipFooter​(ByteBuf in)
      • decompressionBufferExhausted

        protected void decompressionBufferExhausted​(ByteBuf buffer)
        Description copied from class: ZlibDecoder
        Called when the decompression buffer cannot be expanded further. Default implementation is a no-op, but subclasses can override in case they want to do something before the DecompressionException is thrown, such as log the data that was decompressed so far.
        Overrides:
        decompressionBufferExhausted in class ZlibDecoder
      • readGZIPHeader

        private boolean readGZIPHeader​(ByteBuf in)
      • skipIfNeeded

        private boolean skipIfNeeded​(ByteBuf in,
                                     int flagMask)
        Skip bytes in the input if needed until we find the end marker 0x00.
        Parameters:
        in - the input
        flagMask - the mask that should be present in the flags when we need to skip bytes.
        Returns:
        true if the operation is complete and we can move to the next state, false if we need the retry again once we have more readable bytes.
      • readGZIPFooter

        private boolean readGZIPFooter​(ByteBuf in)
        Read the GZIP footer.
        Parameters:
        in - the input.
        Returns:
        true if the footer could be read, false if the read could not be performed as the input ByteBuf doesn't have enough readable bytes (8 bytes).
      • verifyCrc

        private boolean verifyCrc​(ByteBuf in)
        Verifies CRC.
        Parameters:
        in - the input.
        Returns:
        true if verification could be performed, false if verification could not be performed as the input ByteBuf doesn't have enough readable bytes (4 bytes).
      • verifyCrc16

        private boolean verifyCrc16​(ByteBuf in)
      • looksLikeZlib

        private static boolean looksLikeZlib​(short cmf_flg)