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

package io.netty.handler.codec.compression;

import com.jcraft.jzlib.JZlib;
import com.jcraft.jzlib.Deflater;
import com.jcraft.jzlib.Inflater;

final class ZlibUtil
{
    static void fail(final Inflater z, final String message, final int resultCode) {
        throw inflaterException(z, message, resultCode);
    }
    
    static void fail(final Deflater z, final String message, final int resultCode) {
        throw deflaterException(z, message, resultCode);
    }
    
    static DecompressionException inflaterException(final Inflater z, final String message, final int resultCode) {
        return new DecompressionException(message + " (" + resultCode + ')' + ((z.msg != null) ? (": " + z.msg) : ""));
    }
    
    static CompressionException deflaterException(final Deflater z, final String message, final int resultCode) {
        return new CompressionException(message + " (" + resultCode + ')' + ((z.msg != null) ? (": " + z.msg) : ""));
    }
    
    static JZlib.WrapperType convertWrapperType(final ZlibWrapper wrapper) {
        switch (wrapper) {
            case NONE: {
                return JZlib.W_NONE;
            }
            case ZLIB: {
                return JZlib.W_ZLIB;
            }
            case GZIP: {
                return JZlib.W_GZIP;
            }
            case ZLIB_OR_NONE: {
                return JZlib.W_ANY;
            }
            default: {
                throw new Error("Unexpected wrapper type: " + wrapper);
            }
        }
    }
    
    static int wrapperOverhead(final ZlibWrapper wrapper) {
        switch (wrapper) {
            case NONE: {
                return 0;
            }
            case ZLIB:
            case ZLIB_OR_NONE: {
                return 2;
            }
            case GZIP: {
                return 10;
            }
            default: {
                throw new Error("Unexpected wrapper type: " + wrapper);
            }
        }
    }
    
    private ZlibUtil() {
    }
}
