Class ZstdDecompressCtx

java.lang.Object
com.github.luben.zstd.AutoCloseBase
com.github.luben.zstd.ZstdDecompressCtx
All Implemented Interfaces:
Closeable, AutoCloseable

public class ZstdDecompressCtx extends AutoCloseBase
  • Field Details

    • nativePtr

      private long nativePtr
    • decompression_dict

      private ZstdDictDecompress decompression_dict
  • Constructor Details

    • ZstdDecompressCtx

      public ZstdDecompressCtx()
      Create a context for faster compress operations One such context is required for each thread - put this in a ThreadLocal.
  • Method Details

    • init

      private void init()
    • free

      private void free()
    • doClose

      void doClose()
      Specified by:
      doClose in class AutoCloseBase
    • loadDict

      public ZstdDecompressCtx loadDict(ZstdDictDecompress dict)
      Load decompression dictionary
      Parameters:
      dict - the dictionary or `null` to remove loaded dictionary
    • loadDDictFast0

      private long loadDDictFast0(ZstdDictDecompress dict)
    • loadDict

      public ZstdDecompressCtx loadDict(byte[] dict)
      Load decompression dictionary.
      Parameters:
      dict - the dictionary or `null` to remove loaded dictionary
    • loadDDict0

      private long loadDDict0(byte[] dict)
    • reset

      public void reset()
      Clear all state and parameters from the decompression context. This leaves the object in a state identical to a newly created decompression context.
    • reset0

      private void reset0()
    • ensureOpen

      private void ensureOpen()
    • decompressDirectByteBufferStream

      public boolean decompressDirectByteBufferStream(ByteBuffer dst, ByteBuffer src)
      Decompress as much of the src ByteBuffer into the dst ByteBuffer as possible.
      Parameters:
      dst - destination of uncompressed data
      src - buffer to decompress
      Returns:
      true if all state has been flushed from internal buffers
    • decompressDirectByteBufferStream0

      private long decompressDirectByteBufferStream0(ByteBuffer dst, int dstOffset, int dstSize, ByteBuffer src, int srcOffset, int srcSize)
      4 pieces of information are packed into the return value of this method, which must be treated as an unsigned long. The highest bit is set if all data has been flushed from internal buffers. The next 31 bits are the new position of the destination buffer. The next bit is set if an error occurred. If an error occurred, the lowest 31 bits encode a zstd error code. Otherwise, the lowest 31 bits are the new position of the source buffer.
    • decompressDirectByteBuffer

      public int decompressDirectByteBuffer(ByteBuffer dstBuff, int dstOffset, int dstSize, ByteBuffer srcBuff, int srcOffset, int srcSize)
      Decompresses buffer 'srcBuff' into buffer 'dstBuff' using this ZstdDecompressCtx. Destination buffer should be sized to be larger of equal to the originalSize. This is a low-level function that does not take into account or affect the `limit` or `position` of source or destination buffers.
      Parameters:
      dstBuff - the destination buffer - must be direct
      dstOffset - the start offset of 'dstBuff'
      dstSize - the size of 'dstBuff'
      srcBuff - the source buffer - must be direct
      srcOffset - the start offset of 'srcBuff'
      srcSize - the size of 'srcBuff'
      Returns:
      the number of bytes decompressed into destination buffer (originalSize)
    • decompressDirectByteBuffer0

      private long decompressDirectByteBuffer0(ByteBuffer dst, int dstOffset, int dstSize, ByteBuffer src, int srcOffset, int srcSize)
    • decompressByteArray

      public int decompressByteArray(byte[] dstBuff, int dstOffset, int dstSize, byte[] srcBuff, int srcOffset, int srcSize)
      Decompresses byte array 'srcBuff' into byte array 'dstBuff' using this ZstdDecompressCtx. Destination buffer should be sized to be larger of equal to the originalSize.
      Parameters:
      dstBuff - the destination buffer
      dstOffset - the start offset of 'dstBuff'
      dstSize - the size of 'dstBuff'
      srcBuff - the source buffer
      srcOffset - the start offset of 'srcBuff'
      srcSize - the size of 'srcBuff'
      Returns:
      the number of bytes decompressed into destination buffer (originalSize)
    • decompressByteArray0

      private long decompressByteArray0(byte[] dst, int dstOffset, int dstSize, byte[] src, int srcOffset, int srcSize)
    • decompress

      public int decompress(ByteBuffer dstBuf, ByteBuffer srcBuf) throws ZstdException
      Decompresses buffer 'srcBuff' into buffer 'dstBuff' using this ZstdDecompressCtx. Destination buffer should be sized to be larger of equal to the originalSize.
      Parameters:
      dstBuf - the destination buffer - must be direct. It is assumed that the `position()` of this buffer marks the offset at which the decompressed data are to be written, and that the `limit()` of this buffer is the maximum decompressed data size to allow.

      When this method returns successfully, its `position()` will be set to its current `position()` plus the decompressed size of the data.

      srcBuf - the source buffer - must be direct. It is assumed that the `position()` of this buffer marks the beginning of the compressed data to be decompressed, and that the `limit()` of this buffer marks its end.

      When this method returns successfully, its `position()` will be set to the initial `limit()`.

      Returns:
      the size of the decompressed data.
      Throws:
      ZstdException
    • decompress

      public ByteBuffer decompress(ByteBuffer srcBuf, int originalSize) throws ZstdException
      Throws:
      ZstdException
    • decompress

      public int decompress(byte[] dst, byte[] src)
    • decompress

      public byte[] decompress(byte[] src, int originalSize) throws ZstdException
      Throws:
      ZstdException