Home / Function/ Object() — netty Function Reference

Object() — netty Function Reference

Architecture documentation for the Object() function in LineBasedFrameDecoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  97847d6b_9dc8_0746_16ea_4c2d510bc195["Object()"]
  08c792ec_5667_895a_55fc_02629ffcaf54["LineBasedFrameDecoder"]
  97847d6b_9dc8_0746_16ea_4c2d510bc195 -->|defined in| 08c792ec_5667_895a_55fc_02629ffcaf54
  a8a1df55_7bfa_e31b_ee41_95a3223caeac["decode()"]
  97847d6b_9dc8_0746_16ea_4c2d510bc195 -->|calls| a8a1df55_7bfa_e31b_ee41_95a3223caeac
  72b78205_eb7d_1a65_de66_6f6782ec723c["findEndOfLine()"]
  97847d6b_9dc8_0746_16ea_4c2d510bc195 -->|calls| 72b78205_eb7d_1a65_de66_6f6782ec723c
  a8b7f592_6df6_9f07_0fde_8620faef55ba["fail()"]
  97847d6b_9dc8_0746_16ea_4c2d510bc195 -->|calls| a8b7f592_6df6_9f07_0fde_8620faef55ba
  style 97847d6b_9dc8_0746_16ea_4c2d510bc195 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/LineBasedFrameDecoder.java lines 104–157

    protected Object decode(ChannelHandlerContext ctx, ByteBuf buffer) throws Exception {
        final int eol = findEndOfLine(buffer);
        if (!discarding) {
            if (eol >= 0) {
                final ByteBuf frame;
                final int length = eol - buffer.readerIndex();
                final int delimLength = buffer.getByte(eol) == '\r'? 2 : 1;

                if (length > maxLength) {
                    buffer.readerIndex(eol + delimLength);
                    fail(ctx, length);
                    return null;
                }

                if (stripDelimiter) {
                    frame = buffer.readRetainedSlice(length);
                    buffer.skipBytes(delimLength);
                } else {
                    frame = buffer.readRetainedSlice(length + delimLength);
                }

                return frame;
            } else {
                final int length = buffer.readableBytes();
                if (length > maxLength) {
                    discardedBytes = length;
                    buffer.readerIndex(buffer.writerIndex());
                    discarding = true;
                    offset = 0;
                    if (failFast) {
                        fail(ctx, "over " + discardedBytes);
                    }
                }
                return null;
            }
        } else {
            if (eol >= 0) {
                final int length = discardedBytes + eol - buffer.readerIndex();
                final int delimLength = buffer.getByte(eol) == '\r'? 2 : 1;
                buffer.readerIndex(eol + delimLength);
                discardedBytes = 0;
                discarding = false;
                if (!failFast) {
                    fail(ctx, length);
                }
            } else {
                discardedBytes += buffer.readableBytes();
                buffer.readerIndex(buffer.writerIndex());
                // We skip everything in the buffer, we need to set the offset to 0 again.
                offset = 0;
            }
            return null;
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does Object() do?
Object() is a function in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/LineBasedFrameDecoder.java.
Where is Object() defined?
Object() is defined in codec-base/src/main/java/io/netty/handler/codec/LineBasedFrameDecoder.java at line 104.
What does Object() call?
Object() calls 3 function(s): decode, fail, findEndOfLine.

Analyze Your Own Codebase

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

Try Supermodel Free