Class SnappyDecompressor

  • All Implemented Interfaces:
    Decompressor, AutoCloseable

    public final class SnappyDecompressor
    extends Object
    implements Decompressor
    Uncompresses a Buffer 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 SnappyDecompressor(boolean) constructor with the argument set to true.
    • Method Detail

      • newFactory

        public static Supplier<SnappyDecompressor> newFactory()
        Creates a new snappy decompressor factory with validation of checksums turned OFF. To turn checksum validation on, please use the alternate SnappyDecompressor(boolean) constructor.
        Returns:
        the factory.
      • newFactory

        public static Supplier<SnappyDecompressor> newFactory​(boolean validateChecksums)
        Creates a new snappy decompressor factory 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 suitable DecompressionException will be thrown
        Returns:
        the factory.
      • decompress

        public Buffer decompress​(Buffer in,
                                 BufferAllocator allocator)
                          throws DecompressionException
        Description copied from interface: Decompressor
        This method will read from the input Buffer and decompress into a new Buffer that will be allocated (if needed) from the BufferAllocator. If there is not enough readable data in the Buffer to process it will return null. This method should be called in a loop as long:
        • something was read from the input
          something was returned
      • Otherwise this method should be called again once there is more data in the input buffer.
Specified by:
decompress in interface Decompressor
Parameters:
in - the Buffer that contains the data to be decompressed.
allocator - the BufferAllocator that is used to allocate a new buffer (if needed) to write the decompressed bytes too.
Returns:
the Buffer that contains the decompressed data. The caller of this method takes ownership of the buffer. The return value will be null if there is not enough data readable in the input to make any progress. In this case the user should call it again once there is more data ready to be consumed.
Throws:
DecompressionException - thrown if an decompression error was encountered or the decompressor was closed before.