Home / Class/ JdkZlibEncoder Class — netty Architecture

JdkZlibEncoder Class — netty Architecture

Architecture documentation for the JdkZlibEncoder class in JdkZlibEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a["JdkZlibEncoder"]
  e73ecd58_85b2_f0a2_e866_a9631f9550d1["JdkZlibEncoder.java"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|defined in| e73ecd58_85b2_f0a2_e866_a9631f9550d1
  53940443_6309_48a5_b180_7953a304d1a9["JdkZlibEncoder()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 53940443_6309_48a5_b180_7953a304d1a9
  2b2ab15d_f0a3_9cc8_0fd3_623c4a4fd4e8["ChannelFuture()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 2b2ab15d_f0a3_9cc8_0fd3_623c4a4fd4e8
  82323d1b_0ab3_0e50_8b57_127545b21b16["ChannelHandlerContext()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 82323d1b_0ab3_0e50_8b57_127545b21b16
  53faf844_4e23_8359_e430_cd0952d12757["isClosed()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 53faf844_4e23_8359_e430_cd0952d12757
  92f2f5f3_5be2_5788_b281_3ddb3db7412b["encode()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 92f2f5f3_5be2_5788_b281_3ddb3db7412b
  e12a2d69_f2ab_a21f_7bbf_5504a0045b2e["encodeSome()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| e12a2d69_f2ab_a21f_7bbf_5504a0045b2e
  710100a4_5677_7b4f_0312_a3fbe54152f7["ByteBuf()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 710100a4_5677_7b4f_0312_a3fbe54152f7
  72f770b2_fb57_82a2_c5d4_03548b86a079["close()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 72f770b2_fb57_82a2_c5d4_03548b86a079
  3fadec12_f3af_22fc_77bb_9ca16c5b756a["deflate()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 3fadec12_f3af_22fc_77bb_9ca16c5b756a
  778a0f90_867d_fcb4_5605_69330f63b1f6["handlerAdded()"]
  8dcc2fdc_baa4_5fb3_e4d7_000af1ddd30a -->|method| 778a0f90_867d_fcb4_5605_69330f63b1f6

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/JdkZlibEncoder.java lines 36–356

public class JdkZlibEncoder extends ZlibEncoder {

    private static final InternalLogger logger = InternalLoggerFactory.getInstance(JdkZlibEncoder.class);

    /**
     * Maximum initial size for temporary heap buffers used for the compressed output. Buffer may still grow beyond
     * this if necessary.
     */
    private static final int MAX_INITIAL_OUTPUT_BUFFER_SIZE;
    /**
     * Max size for temporary heap buffers used to copy input data to heap.
     */
    private static final int MAX_INPUT_BUFFER_SIZE;

    private final ZlibWrapper wrapper;
    private final Deflater deflater;
    private volatile boolean finished;
    private volatile ChannelHandlerContext ctx;

    /*
     * GZIP support
     */
    private final CRC32 crc;
    private static final byte[] gzipHeader = {0x1f, (byte) 0x8b, Deflater.DEFLATED, 0, 0, 0, 0, 0, 0, 0};
    private boolean writeHeader = true;

    static {
        MAX_INITIAL_OUTPUT_BUFFER_SIZE = SystemPropertyUtil.getInt(
                "io.netty.jdkzlib.encoder.maxInitialOutputBufferSize",
                65536);
        MAX_INPUT_BUFFER_SIZE = SystemPropertyUtil.getInt(
                "io.netty.jdkzlib.encoder.maxInputBufferSize",
                65536);

        if (logger.isDebugEnabled()) {
            logger.debug("-Dio.netty.jdkzlib.encoder.maxInitialOutputBufferSize={}", MAX_INITIAL_OUTPUT_BUFFER_SIZE);
            logger.debug("-Dio.netty.jdkzlib.encoder.maxInputBufferSize={}", MAX_INPUT_BUFFER_SIZE);
        }
    }

    /**
     * Creates a new zlib encoder with a compression level of ({@code 6})
     * and the default wrapper ({@link ZlibWrapper#ZLIB}).
     *
     * @throws CompressionException if failed to initialize zlib
     */
    public JdkZlibEncoder() {
        this(6);
    }

    /**
     * Creates a new zlib encoder with the specified {@code compressionLevel}
     * and the default wrapper ({@link ZlibWrapper#ZLIB}).
     *
     * @param compressionLevel
     *        {@code 1} yields the fastest compression and {@code 9} yields the
     *        best compression.  {@code 0} means no compression.  The default
     *        compression level is {@code 6}.
     *
     * @throws CompressionException if failed to initialize zlib
     */
    public JdkZlibEncoder(int compressionLevel) {
        this(ZlibWrapper.ZLIB, compressionLevel);
    }

    /**
     * Creates a new zlib encoder with a compression level of ({@code 6})
     * and the specified wrapper.
     *
     * @throws CompressionException if failed to initialize zlib
     */
    public JdkZlibEncoder(ZlibWrapper wrapper) {
        this(wrapper, 6);
    }

    /**
     * Creates a new zlib encoder with the specified {@code compressionLevel}
     * and the specified wrapper.
     *
     * @param compressionLevel
     *        {@code 1} yields the fastest compression and {@code 9} yields the

Frequently Asked Questions

What is the JdkZlibEncoder class?
JdkZlibEncoder is a class in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/JdkZlibEncoder.java.
Where is JdkZlibEncoder defined?
JdkZlibEncoder is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/JdkZlibEncoder.java at line 36.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free