Home / Function/ encode() — netty Function Reference

encode() — netty Function Reference

Architecture documentation for the encode() function in HttpObjectEncoder.java from the netty codebase.

Function java ProtocolCodecs HTTP calls 5 called by 2

Entity Profile

Dependency Diagram

graph TD
  18cc7b78_3c6e_f726_9bf6_777174f30988["encode()"]
  14c61705_9541_276a_37fa_eaab6f15ec5a["HttpObjectEncoder"]
  18cc7b78_3c6e_f726_9bf6_777174f30988 -->|defined in| 14c61705_9541_276a_37fa_eaab6f15ec5a
  b0ddc820_c1a3_1132_127a_1624788c5f3b["write()"]
  b0ddc820_c1a3_1132_127a_1624788c5f3b -->|calls| 18cc7b78_3c6e_f726_9bf6_777174f30988
  4d5953cb_854c_5e28_6a1b_484139dd485f["encodeFileRegionContent()"]
  4d5953cb_854c_5e28_6a1b_484139dd485f -->|calls| 18cc7b78_3c6e_f726_9bf6_777174f30988
  b7f03547_801e_f8bc_8cf5_573799e43a8c["encodeFullHttpMessage()"]
  18cc7b78_3c6e_f726_9bf6_777174f30988 -->|calls| b7f03547_801e_f8bc_8cf5_573799e43a8c
  dfbc1010_4c37_d8b8_04e1_8fae7a3f2b99["encodeHttpMessageLastContent()"]
  18cc7b78_3c6e_f726_9bf6_777174f30988 -->|calls| dfbc1010_4c37_d8b8_04e1_8fae7a3f2b99
  a61eaa49_0095_25ca_894d_15f990231592["encodeHttpMessageNotLastContent()"]
  18cc7b78_3c6e_f726_9bf6_777174f30988 -->|calls| a61eaa49_0095_25ca_894d_15f990231592
  f4b7407a_0934_4718_fe2e_cb32b6bcf72d["encodeJustHttpMessage()"]
  18cc7b78_3c6e_f726_9bf6_777174f30988 -->|calls| f4b7407a_0934_4718_fe2e_cb32b6bcf72d
  9ac1b386_8738_51d3_522c_d4e7b37c3049["encodeNotHttpMessageContentTypes()"]
  18cc7b78_3c6e_f726_9bf6_777174f30988 -->|calls| 9ac1b386_8738_51d3_522c_d4e7b37c3049
  style 18cc7b78_3c6e_f726_9bf6_777174f30988 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectEncoder.java lines 156–191

    @Override
    @SuppressWarnings("ConditionCoveredByFurtherCondition")
    protected void encode(ChannelHandlerContext ctx, Object msg, List<Object> out) throws Exception {
        // fast-path for common idiom that doesn't require class-checks
        if (msg == Unpooled.EMPTY_BUFFER) {
            out.add(Unpooled.EMPTY_BUFFER);
            return;
        }
        // The reason why we perform instanceof checks in this order,
        // by duplicating some code and without relying on ReferenceCountUtil::release as a generic release
        // mechanism, is https://bugs.openjdk.org/browse/JDK-8180450.
        // https://github.com/netty/netty/issues/12708 contains more detail re how the previous version of this
        // code was interacting with the JIT instanceof optimizations.
        if (msg instanceof FullHttpMessage) {
            encodeFullHttpMessage(ctx, msg, out);
            return;
        }
        if (msg instanceof HttpMessage) {
            final H m;
            try {
                m = (H) msg;
            } catch (Exception rethrow) {
                ReferenceCountUtil.release(msg);
                throw rethrow;
            }
            if (m instanceof LastHttpContent) {
                encodeHttpMessageLastContent(ctx, m, out);
            } else if (m instanceof HttpContent) {
                encodeHttpMessageNotLastContent(ctx, m, out);
            } else {
                encodeJustHttpMessage(ctx, m, out);
            }
        } else {
            encodeNotHttpMessageContentTypes(ctx, msg, out);
        }
    }

Subdomains

Frequently Asked Questions

What does encode() do?
encode() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectEncoder.java.
Where is encode() defined?
encode() is defined in codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectEncoder.java at line 156.
What does encode() call?
encode() calls 5 function(s): encodeFullHttpMessage, encodeHttpMessageLastContent, encodeHttpMessageNotLastContent, encodeJustHttpMessage, encodeNotHttpMessageContentTypes.
What calls encode()?
encode() is called by 2 function(s): encodeFileRegionContent, write.

Analyze Your Own Codebase

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

Try Supermodel Free