/*
 * Copyright 2012 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
package io.netty.handler.codec.compression;

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

Utility methods used by JZlibEncoder and JZlibDecoder.
/** * Utility methods used by {@link JZlibEncoder} and {@link JZlibDecoder}. */
final class ZlibUtil { static void fail(Inflater z, String message, int resultCode) { throw inflaterException(z, message, resultCode); } static void fail(Deflater z, String message, int resultCode) { throw deflaterException(z, message, resultCode); } static DecompressionException inflaterException(Inflater z, String message, int resultCode) { return new DecompressionException(message + " (" + resultCode + ')' + (z.msg != null? ": " + z.msg : "")); } static CompressionException deflaterException(Deflater z, String message, int resultCode) { return new CompressionException(message + " (" + resultCode + ')' + (z.msg != null? ": " + z.msg : "")); } static JZlib.WrapperType convertWrapperType(ZlibWrapper wrapper) { JZlib.WrapperType convertedWrapperType; switch (wrapper) { case NONE: convertedWrapperType = JZlib.W_NONE; break; case ZLIB: convertedWrapperType = JZlib.W_ZLIB; break; case GZIP: convertedWrapperType = JZlib.W_GZIP; break; case ZLIB_OR_NONE: convertedWrapperType = JZlib.W_ANY; break; default: throw new Error(); } return convertedWrapperType; } static int wrapperOverhead(ZlibWrapper wrapper) { int overhead; switch (wrapper) { case NONE: overhead = 0; break; case ZLIB: case ZLIB_OR_NONE: overhead = 2; break; case GZIP: overhead = 10; break; default: throw new Error(); } return overhead; } private ZlibUtil() { } }