Home / Class/ EncodeProcessor Class — netty Architecture

EncodeProcessor Class — netty Architecture

Architecture documentation for the EncodeProcessor class in QpackHuffmanEncoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  c31c5530_3807_5540_1887_84406c955db1["EncodeProcessor"]
  5891d4aa_5f82_c821_87fe_d3399230ecc8["QpackHuffmanEncoder.java"]
  c31c5530_3807_5540_1887_84406c955db1 -->|defined in| 5891d4aa_5f82_c821_87fe_d3399230ecc8
  84f1d636_dcfc_e7df_411f_99bdae40e12e["process()"]
  c31c5530_3807_5540_1887_84406c955db1 -->|method| 84f1d636_dcfc_e7df_411f_99bdae40e12e
  ae35b484_50ea_7f8b_9c1f_15f01a764dff["end()"]
  c31c5530_3807_5540_1887_84406c955db1 -->|method| ae35b484_50ea_7f8b_9c1f_15f01a764dff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/QpackHuffmanEncoder.java lines 123–157

    private final class EncodeProcessor implements ByteProcessor {
        ByteBuf out;
        private long current;
        private int n;

        @Override
        public boolean process(byte value) {
            int b = value & 0xFF;
            int nbits = lengths[b];

            current <<= nbits;
            current |= codes[b];
            n += nbits;

            while (n >= 8) {
                n -= 8;
                out.writeByte((int) (current >> n));
            }
            return true;
        }

        void end() {
            try {
                if (n > 0) {
                    current <<= 8 - n;
                    current |= 0xFF >>> n; // this should be EOS symbol
                    out.writeByte((int) current);
                }
            } finally {
                out = null;
                current = 0;
                n = 0;
            }
        }
    }

Frequently Asked Questions

What is the EncodeProcessor class?
EncodeProcessor is a class in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackHuffmanEncoder.java.
Where is EncodeProcessor defined?
EncodeProcessor is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackHuffmanEncoder.java at line 123.

Analyze Your Own Codebase

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

Try Supermodel Free