Home / Function/ encode() — netty Function Reference

encode() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  623eb732_bf2f_85ee_4883_3927a552fc2d["encode()"]
  7b43e9c4_2b39_a856_0445_cfeef19dc54a["LengthFieldPrepender"]
  623eb732_bf2f_85ee_4883_3927a552fc2d -->|defined in| 7b43e9c4_2b39_a856_0445_cfeef19dc54a
  style 623eb732_bf2f_85ee_4883_3927a552fc2d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/LengthFieldPrepender.java lines 160–201

    @Override
    protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
        int length = msg.readableBytes() + lengthAdjustment;
        if (lengthIncludesLengthFieldLength) {
            length += lengthFieldLength;
        }

        checkPositiveOrZero(length, "length");

        switch (lengthFieldLength) {
        case 1:
            if (length >= 256) {
                throw new IllegalArgumentException(
                        "length does not fit into a byte: " + length);
            }
            out.add(ctx.alloc().buffer(1).order(byteOrder).writeByte((byte) length));
            break;
        case 2:
            if (length >= 65536) {
                throw new IllegalArgumentException(
                        "length does not fit into a short integer: " + length);
            }
            out.add(ctx.alloc().buffer(2).order(byteOrder).writeShort((short) length));
            break;
        case 3:
            if (length >= 16777216) {
                throw new IllegalArgumentException(
                        "length does not fit into a medium integer: " + length);
            }
            out.add(ctx.alloc().buffer(3).order(byteOrder).writeMedium(length));
            break;
        case 4:
            out.add(ctx.alloc().buffer(4).order(byteOrder).writeInt(length));
            break;
        case 8:
            out.add(ctx.alloc().buffer(8).order(byteOrder).writeLong(length));
            break;
        default:
            throw new Error("Unexpected length field length: " + lengthFieldLength);
        }
        out.add(msg.retain());
    }

Domain

Subdomains

Frequently Asked Questions

What does encode() do?
encode() is a function in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/LengthFieldPrepender.java.
Where is encode() defined?
encode() is defined in codec-base/src/main/java/io/netty/handler/codec/LengthFieldPrepender.java at line 160.

Analyze Your Own Codebase

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

Try Supermodel Free