Home / Class/ AbstractDnsMessage Class — netty Architecture

AbstractDnsMessage Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21["AbstractDnsMessage"]
  f73cbde7_9320_07d7_1d7d_6c02b1569f31["AbstractDnsMessage.java"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|defined in| f73cbde7_9320_07d7_1d7d_6c02b1569f31
  f062b288_7cbe_759a_d39c_b9e3ac77a98c["AbstractDnsMessage()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| f062b288_7cbe_759a_d39c_b9e3ac77a98c
  4f1727fd_86b0_c9af_3e2d_f5464c85a222["id()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| 4f1727fd_86b0_c9af_3e2d_f5464c85a222
  cf59bc5e_842b_08d7_dc64_5a8446e778ed["DnsMessage()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| cf59bc5e_842b_08d7_dc64_5a8446e778ed
  a0600d4b_b164_a889_efd6_441e2a62f11b["DnsOpCode()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| a0600d4b_b164_a889_efd6_441e2a62f11b
  4ab15298_89a3_bb85_8535_3b45f81635da["isRecursionDesired()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| 4ab15298_89a3_bb85_8535_3b45f81635da
  fc153139_778e_6d31_0546_9ee0e97f02de["z()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| fc153139_778e_6d31_0546_9ee0e97f02de
  ab0b52d4_200c_8b45_a2e2_ea9f5c8b40f1["count()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| ab0b52d4_200c_8b45_a2e2_ea9f5c8b40f1
  001734d8_8ee3_1a0c_1c18_41c8907038ca["T()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| 001734d8_8ee3_1a0c_1c18_41c8907038ca
  7558e755_76cf_c28c_e5c5_26ffdd9e605f["setRecord()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| 7558e755_76cf_c28c_e5c5_26ffdd9e605f
  1608476e_fc0e_81d8_a8b5_dcdbf114419b["addRecord()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| 1608476e_fc0e_81d8_a8b5_dcdbf114419b
  bef82d38_5cb5_f764_a19a_09846f51a0d8["clear()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| bef82d38_5cb5_f764_a19a_09846f51a0d8
  d8bdf3fd_17d6_953a_7563_07f99bb1c430["deallocate()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| d8bdf3fd_17d6_953a_7563_07f99bb1c430
  d1bd251e_e5b8_5db3_67a8_39ba8a652342["equals()"]
  d9ce7b5a_3a9d_b410_1400_d8f33f269e21 -->|method| d1bd251e_e5b8_5db3_67a8_39ba8a652342

Relationship Graph

Source Code

codec-dns/src/main/java/io/netty/handler/codec/dns/AbstractDnsMessage.java lines 34–472

public abstract class AbstractDnsMessage extends AbstractReferenceCounted implements DnsMessage {

    private static final ResourceLeakDetector<DnsMessage> leakDetector =
            ResourceLeakDetectorFactory.instance().newResourceLeakDetector(DnsMessage.class);

    private static final int SECTION_QUESTION = DnsSection.QUESTION.ordinal();
    private static final int SECTION_COUNT = 4;

    private final ResourceLeakTracker<DnsMessage> leak = leakDetector.track(this);
    private short id;
    private DnsOpCode opCode;
    private boolean recursionDesired;
    private byte z;

    // To reduce the memory footprint of a message,
    // each of the following fields is a single record or a list of records.
    private Object questions;
    private Object answers;
    private Object authorities;
    private Object additionals;

    /**
     * Creates a new instance with the specified {@code id} and {@link DnsOpCode#QUERY} opCode.
     */
    protected AbstractDnsMessage(int id) {
        this(id, DnsOpCode.QUERY);
    }

    /**
     * Creates a new instance with the specified {@code id} and {@code opCode}.
     */
    protected AbstractDnsMessage(int id, DnsOpCode opCode) {
        setId(id);
        setOpCode(opCode);
    }

    @Override
    public int id() {
        return id & 0xFFFF;
    }

    @Override
    public DnsMessage setId(int id) {
        this.id = (short) id;
        return this;
    }

    @Override
    public DnsOpCode opCode() {
        return opCode;
    }

    @Override
    public DnsMessage setOpCode(DnsOpCode opCode) {
        this.opCode = checkNotNull(opCode, "opCode");
        return this;
    }

    @Override
    public boolean isRecursionDesired() {
        return recursionDesired;
    }

    @Override
    public DnsMessage setRecursionDesired(boolean recursionDesired) {
        this.recursionDesired = recursionDesired;
        return this;
    }

    @Override
    public int z() {
        return z;
    }

    @Override
    public DnsMessage setZ(int z) {
        this.z = (byte) (z & 7);
        return this;
    }

    @Override

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free