// 
// Decompiled by Procyon v0.6.0
// 

package com.github.luben.zstd;

import java.io.IOException;
import java.io.InputStream;
import java.io.FilterInputStream;

public class ZstdInputStream extends FilterInputStream
{
    private ZstdInputStreamNoFinalizer inner;
    
    public ZstdInputStream(final InputStream in) throws IOException {
        super(in);
        this.inner = new ZstdInputStreamNoFinalizer(in);
    }
    
    public ZstdInputStream(final InputStream in, final BufferPool bufferPool) throws IOException {
        super(in);
        this.inner = new ZstdInputStreamNoFinalizer(in, bufferPool);
    }
    
    @Deprecated
    public void setFinalize(final boolean b) {
    }
    
    @Override
    protected void finalize() throws Throwable {
        this.close();
    }
    
    public static long recommendedDInSize() {
        return ZstdInputStreamNoFinalizer.recommendedDInSize();
    }
    
    public static long recommendedDOutSize() {
        return ZstdInputStreamNoFinalizer.recommendedDOutSize();
    }
    
    public ZstdInputStream setContinuous(final boolean continuous) {
        this.inner.setContinuous(continuous);
        return this;
    }
    
    public boolean getContinuous() {
        return this.inner.getContinuous();
    }
    
    public ZstdInputStream setDict(final byte[] dict) throws IOException {
        this.inner.setDict(dict);
        return this;
    }
    
    public ZstdInputStream setDict(final ZstdDictDecompress dict) throws IOException {
        this.inner.setDict(dict);
        return this;
    }
    
    public ZstdInputStream setLongMax(final int longMax) throws IOException {
        this.inner.setLongMax(longMax);
        return this;
    }
    
    public ZstdInputStream setRefMultipleDDicts(final boolean refMultipleDDicts) throws IOException {
        this.inner.setRefMultipleDDicts(refMultipleDDicts);
        return this;
    }
    
    @Override
    public int read(final byte[] array, final int n, final int n2) throws IOException {
        return this.inner.read(array, n, n2);
    }
    
    @Override
    public int read() throws IOException {
        return this.inner.read();
    }
    
    @Override
    public int available() throws IOException {
        return this.inner.available();
    }
    
    @Override
    public long skip(final long n) throws IOException {
        return this.inner.skip(n);
    }
    
    @Override
    public boolean markSupported() {
        return this.inner.markSupported();
    }
    
    @Override
    public void close() throws IOException {
        this.inner.close();
    }
}
