Package com.github.luben.zstd
Class ZstdInputStreamNoFinalizer
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- com.github.luben.zstd.ZstdInputStreamNoFinalizer
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class ZstdInputStreamNoFinalizer extends java.io.FilterInputStreamInputStream 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 Summary
Fields Modifier and Type Field Description private BufferPoolbufferPoolprivate longdstPosprivate booleanframeFinishedprivate booleanisClosedprivate booleanisContinuousprivate booleanneedReadprivate byte[]srcprivate static intsrcBuffSizeprivate java.nio.ByteBuffersrcByteBufferprivate longsrcPosprivate longsrcSizeprivate longstream
-
Constructor Summary
Constructors Constructor Description ZstdInputStreamNoFinalizer(java.io.InputStream inStream)create a new decompressing InputStreamZstdInputStreamNoFinalizer(java.io.InputStream inStream, BufferPool bufferPool)create a new decompressing InputStream
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()voidclose()private static longcreateDStream()private intdecompressStream(long stream, byte[] dst, int dst_size, byte[] src, int src_size)private static intfreeDStream(long stream)booleangetContinuous()private intinitDStream(long stream)booleanmarkSupported()intread()intread(byte[] dst, int offset, int len)(package private) intreadInternal(byte[] dst, int offset, int len)static longrecommendedDInSize()static longrecommendedDOutSize()ZstdInputStreamNoFinalizersetContinuous(boolean b)Don't break on unfinished frames Use case: decompressing files that are not yet finished writing and compressingZstdInputStreamNoFinalizersetDict(byte[] dict)ZstdInputStreamNoFinalizersetDict(ZstdDictDecompress dict)ZstdInputStreamNoFinalizersetLongMax(int windowLogMax)longskip(long numBytes)
-
-
-
Field Detail
-
stream
private final long stream
-
dstPos
private long dstPos
-
srcPos
private long srcPos
-
srcSize
private long srcSize
-
needRead
private boolean needRead
-
bufferPool
private final BufferPool bufferPool
-
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.IOExceptioncreate 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.IOExceptioncreate a new decompressing InputStream- Parameters:
inStream- the stream to wrapbufferPool- 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()
-
setDict
public ZstdInputStreamNoFinalizer setDict(byte[] dict) throws java.io.IOException
- Throws:
java.io.IOException
-
setDict
public ZstdInputStreamNoFinalizer setDict(ZstdDictDecompress dict) throws java.io.IOException
- Throws:
java.io.IOException
-
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:
readin classjava.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:
readin classjava.io.FilterInputStream- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.FilterInputStream- Throws:
java.io.IOException
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classjava.io.FilterInputStream
-
skip
public long skip(long numBytes) throws java.io.IOException- Overrides:
skipin classjava.io.FilterInputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.FilterInputStream- Throws:
java.io.IOException
-
-