Home / Class/ EncodeProcessor Class — netty Architecture

EncodeProcessor Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c1abb897_cee8_0666_478f_51ac2a844235["EncodeProcessor"]
  7831d134_08a0_9668_e311_0bec636e63e0["HpackHuffmanEncoder.java"]
  c1abb897_cee8_0666_478f_51ac2a844235 -->|defined in| 7831d134_08a0_9668_e311_0bec636e63e0
  2527f0b6_d7eb_91b9_0b24_5f6c1f329ad4["process()"]
  c1abb897_cee8_0666_478f_51ac2a844235 -->|method| 2527f0b6_d7eb_91b9_0b24_5f6c1f329ad4
  8fa543c3_f5ed_cdc5_74aa_f71e4b2ae200["end()"]
  c1abb897_cee8_0666_478f_51ac2a844235 -->|method| 8fa543c3_f5ed_cdc5_74aa_f71e4b2ae200

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanEncoder.java lines 141–175

    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-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanEncoder.java.
Where is EncodeProcessor defined?
EncodeProcessor is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HpackHuffmanEncoder.java at line 141.

Analyze Your Own Codebase

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

Try Supermodel Free