Home / Function/ writeSelectorsAndHuffmanTables() — netty Function Reference

writeSelectorsAndHuffmanTables() — netty Function Reference

Architecture documentation for the writeSelectorsAndHuffmanTables() function in Bzip2HuffmanStageEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  1624131c_7091_382d_fded_6daf075febdb["writeSelectorsAndHuffmanTables()"]
  9201fec0_464b_c827_7f9e_b36517971a73["Bzip2HuffmanStageEncoder"]
  1624131c_7091_382d_fded_6daf075febdb -->|defined in| 9201fec0_464b_c827_7f9e_b36517971a73
  6e4766a4_37c9_7b63_401b_81d6c95ccc03["encode()"]
  6e4766a4_37c9_7b63_401b_81d6c95ccc03 -->|calls| 1624131c_7091_382d_fded_6daf075febdb
  style 1624131c_7091_382d_fded_6daf075febdb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java lines 302–336

    private void writeSelectorsAndHuffmanTables(ByteBuf out) {
        final Bzip2BitWriter writer = this.writer;
        final byte[] selectors = this.selectors;
        final int totalSelectors = selectors.length;
        final int[][] huffmanCodeLengths = this.huffmanCodeLengths;
        final int totalTables = huffmanCodeLengths.length;
        final int mtfAlphabetSize = this.mtfAlphabetSize;

        writer.writeBits(out, 3, totalTables);
        writer.writeBits(out, 15, totalSelectors);

        // Write the selectors
        Bzip2MoveToFrontTable selectorMTF = new Bzip2MoveToFrontTable();
        for (byte selector : selectors) {
            writer.writeUnary(out, selectorMTF.valueToFront(selector));
        }

        // Write the Huffman tables
        for (final int[] tableLengths : huffmanCodeLengths) {
            int currentLength = tableLengths[0];

            writer.writeBits(out, 5, currentLength);

            for (int j = 0; j < mtfAlphabetSize; j++) {
                final int codeLength = tableLengths[j];
                final int value = currentLength < codeLength ? 2 : 3;
                int delta = Math.abs(codeLength - currentLength);
                while (delta-- > 0) {
                    writer.writeBits(out, 2, value);
                }
                writer.writeBoolean(out, false);
                currentLength = codeLength;
            }
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does writeSelectorsAndHuffmanTables() do?
writeSelectorsAndHuffmanTables() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java.
Where is writeSelectorsAndHuffmanTables() defined?
writeSelectorsAndHuffmanTables() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2HuffmanStageEncoder.java at line 302.
What calls writeSelectorsAndHuffmanTables()?
writeSelectorsAndHuffmanTables() is called by 1 function(s): encode.

Analyze Your Own Codebase

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

Try Supermodel Free