Home / Class/ Encoder Class — netty Architecture

Encoder Class — netty Architecture

Architecture documentation for the Encoder class in HttpClientCodec.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  be2ad3c4_e2cf_11ed_a380_b610e85eded0["Encoder"]
  deb34d0e_cce7_d0ba_857f_8bfb8dcec181["HttpClientCodec.java"]
  be2ad3c4_e2cf_11ed_a380_b610e85eded0 -->|defined in| deb34d0e_cce7_d0ba_857f_8bfb8dcec181
  8eeb8b8d_41b9_787d_b7c4_3e90425804e4["encode()"]
  be2ad3c4_e2cf_11ed_a380_b610e85eded0 -->|method| 8eeb8b8d_41b9_787d_b7c4_3e90425804e4

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java lines 272–300

    private final class Encoder extends HttpRequestEncoder {

        boolean upgraded;

        @Override
        protected void encode(
                ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception {

            if (upgraded) {
                // HttpObjectEncoder overrides .write and does not release msg, so we don't need to retain it here
                out.add(msg);
                return;
            }

            if (msg instanceof HttpRequest) {
                queue.offer(((HttpRequest) msg).method());
            }

            super.encode(ctx, msg, out);

            if (failOnMissingResponse && !done) {
                // check if the request is chunked if so do not increment
                if (msg instanceof LastHttpContent) {
                    // increment as its the last chunk
                    requestResponseCounter.incrementAndGet();
                }
            }
        }
    }

Frequently Asked Questions

What is the Encoder class?
Encoder is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java.
Where is Encoder defined?
Encoder is defined in codec-http/src/main/java/io/netty/handler/codec/http/HttpClientCodec.java at line 272.

Analyze Your Own Codebase

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

Try Supermodel Free