Home / Class/ TcpDnsQueryDecoder Class — netty Architecture

TcpDnsQueryDecoder Class — netty Architecture

Architecture documentation for the TcpDnsQueryDecoder class in TcpDnsQueryDecoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  b04c2b5f_8144_341a_5d57_ead1956f0a98["TcpDnsQueryDecoder"]
  119eb3cc_e895_7a4e_4b92_20ef3f320a2d["TcpDnsQueryDecoder.java"]
  b04c2b5f_8144_341a_5d57_ead1956f0a98 -->|defined in| 119eb3cc_e895_7a4e_4b92_20ef3f320a2d
  4d2d261c_b5ad_ec63_2342_9488b2fb9a53["TcpDnsQueryDecoder()"]
  b04c2b5f_8144_341a_5d57_ead1956f0a98 -->|method| 4d2d261c_b5ad_ec63_2342_9488b2fb9a53
  f11b9f31_fb5d_49a6_d4cd_aa9393f3fa39["Object()"]
  b04c2b5f_8144_341a_5d57_ead1956f0a98 -->|method| f11b9f31_fb5d_49a6_d4cd_aa9393f3fa39

Relationship Graph

Source Code

codec-dns/src/main/java/io/netty/handler/codec/dns/TcpDnsQueryDecoder.java lines 23–59

public final class TcpDnsQueryDecoder extends LengthFieldBasedFrameDecoder {
    private final DnsRecordDecoder decoder;

    /**
     * Creates a new decoder with {@linkplain DnsRecordDecoder#DEFAULT the default record decoder}.
     */
    public TcpDnsQueryDecoder() {
        this(DnsRecordDecoder.DEFAULT, 65535);
    }

    /**
     * Creates a new decoder with the specified {@code decoder}.
     */
    public TcpDnsQueryDecoder(DnsRecordDecoder decoder, int maxFrameLength) {
        super(maxFrameLength, 0, 2, 0, 2);
        this.decoder = ObjectUtil.checkNotNull(decoder, "decoder");
    }

    @Override
    protected Object decode(ChannelHandlerContext ctx, ByteBuf in) throws Exception {
        ByteBuf frame = (ByteBuf) super.decode(ctx, in);
        if (frame == null) {
            return null;
        }

        try {
            return DnsMessageUtil.decodeDnsQuery(decoder, frame.slice(), new DnsMessageUtil.DnsQueryFactory() {
                @Override
                public DnsQuery newQuery(int id, DnsOpCode dnsOpCode) {
                    return new DefaultDnsQuery(id, dnsOpCode);
                }
            });
        } finally {
            frame.release();
        }
    }
}

Frequently Asked Questions

What is the TcpDnsQueryDecoder class?
TcpDnsQueryDecoder is a class in the netty codebase, defined in codec-dns/src/main/java/io/netty/handler/codec/dns/TcpDnsQueryDecoder.java.
Where is TcpDnsQueryDecoder defined?
TcpDnsQueryDecoder is defined in codec-dns/src/main/java/io/netty/handler/codec/dns/TcpDnsQueryDecoder.java at line 23.

Analyze Your Own Codebase

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

Try Supermodel Free