Class ZstdInputStreamNoFinalizer

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class ZstdInputStreamNoFinalizer
    extends java.io.FilterInputStream
    InputStream filter that decompresses the data provided by the underlying InputStream using Zstd compression. It does not support mark/reset methods. It also does not have finalizer, so if you rely on finalizers to clean the native memory and release buffers use `ZstdInputStream` instead.
    • Field Detail

      • stream

        private final long stream
      • dstPos

        private long dstPos
      • srcPos

        private long srcPos
      • srcSize

        private long srcSize
      • needRead

        private boolean needRead
      • srcByteBuffer

        private final java.nio.ByteBuffer srcByteBuffer
      • src

        private final byte[] src
      • srcBuffSize

        private static final int srcBuffSize
      • isContinuous

        private boolean isContinuous
      • frameFinished

        private boolean frameFinished
      • isClosed

        private boolean isClosed
    • Constructor Detail

      • ZstdInputStreamNoFinalizer

        public ZstdInputStreamNoFinalizer​(java.io.InputStream inStream)
                                   throws java.io.IOException
        create a new decompressing InputStream
        Parameters:
        inStream - the stream to wrap
        Throws:
        java.io.IOException
      • ZstdInputStreamNoFinalizer

        public ZstdInputStreamNoFinalizer​(java.io.InputStream inStream,
                                          BufferPool bufferPool)
                                   throws java.io.IOException
        create a new decompressing InputStream
        Parameters:
        inStream - the stream to wrap
        bufferPool - the pool to fetch and return buffers
        Throws:
        java.io.IOException
    • Method Detail

      • recommendedDInSize

        public static long recommendedDInSize()
      • recommendedDOutSize

        public static long recommendedDOutSize()
      • createDStream

        private static long createDStream()
      • freeDStream

        private static int freeDStream​(long stream)
      • initDStream

        private int initDStream​(long stream)
      • decompressStream

        private int decompressStream​(long stream,
                                     byte[] dst,
                                     int dst_size,
                                     byte[] src,
                                     int src_size)
      • setContinuous

        public ZstdInputStreamNoFinalizer setContinuous​(boolean b)
        Don't break on unfinished frames Use case: decompressing files that are not yet finished writing and compressing
      • getContinuous

        public boolean getContinuous()
      • setLongMax

        public ZstdInputStreamNoFinalizer setLongMax​(int windowLogMax)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] dst,
                        int offset,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • readInternal

        int readInternal​(byte[] dst,
                         int offset,
                         int len)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • read

        public int read()
                 throws java.io.IOException
        Overrides:
        read in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • available

        public int available()
                      throws java.io.IOException
        Overrides:
        available in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • markSupported

        public boolean markSupported()
        Overrides:
        markSupported in class java.io.FilterInputStream
      • skip

        public long skip​(long numBytes)
                  throws java.io.IOException
        Overrides:
        skip in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterInputStream
        Throws:
        java.io.IOException