Home / Class/ DnsRecordResolveContext Class — netty Architecture

DnsRecordResolveContext Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  a4892046_baaa_c9e4_eaa7_283ab070ef5b["DnsRecordResolveContext"]
  0a07aa75_3ffc_ba9b_aa6e_e9e49b9b98ac["DnsRecordResolveContext.java"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|defined in| 0a07aa75_3ffc_ba9b_aa6e_e9e49b9b98ac
  b0d94478_36d1_a3b7_e8df_aa30fd68ebf5["DnsRecordResolveContext()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| b0d94478_36d1_a3b7_e8df_aa30fd68ebf5
  8d65bf69_90b3_83e6_f0cb_45c21ccb6890["newResolverContext()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| 8d65bf69_90b3_83e6_f0cb_45c21ccb6890
  6a91be4c_195a_d6bc_86c5_2b6c9463ed13["DnsRecord()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| 6a91be4c_195a_d6bc_86c5_2b6c9463ed13
  e6793ccb_a859_869f_1445_49d73956318d["filterResults()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| e6793ccb_a859_869f_1445_49d73956318d
  d31a5c4d_7234_21dc_bce3_0e52c2509948["isCompleteEarly()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| d31a5c4d_7234_21dc_bce3_0e52c2509948
  2cf44077_a40e_9484_4010_48a9459d3ab3["isDuplicateAllowed()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| 2cf44077_a40e_9484_4010_48a9459d3ab3
  45e2f8cb_9b8f_b77a_0d49_0a9ced430fb5["cache()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| 45e2f8cb_9b8f_b77a_0d49_0a9ced430fb5
  a869fc8a_9946_db70_5037_1fbc0cdb0f22["DnsCnameCache()"]
  a4892046_baaa_c9e4_eaa7_283ab070ef5b -->|method| a869fc8a_9946_db70_5037_1fbc0cdb0f22

Relationship Graph

Source Code

resolver-dns/src/main/java/io/netty/resolver/dns/DnsRecordResolveContext.java lines 29–98

final class DnsRecordResolveContext extends DnsResolveContext<DnsRecord> {

    DnsRecordResolveContext(DnsNameResolver parent, Channel channel,
                            Promise<?> originalPromise, DnsQuestion question, DnsRecord[] additionals,
                            DnsServerAddressStream nameServerAddrs, int allowedQueries) {
        this(parent, channel, originalPromise, question.name(), question.dnsClass(),
             new DnsRecordType[] { question.type() },
             additionals, nameServerAddrs, allowedQueries);
    }

    private DnsRecordResolveContext(DnsNameResolver parent, Channel channel,
                                    Promise<?> originalPromise,
                                    String hostname, int dnsClass, DnsRecordType[] expectedTypes,
                                    DnsRecord[] additionals,
                                    DnsServerAddressStream nameServerAddrs,
                                    int allowedQueries) {
        super(parent, channel, originalPromise, hostname, dnsClass, expectedTypes,
                additionals, nameServerAddrs, allowedQueries);
    }

    @Override
    DnsResolveContext<DnsRecord> newResolverContext(DnsNameResolver parent, Channel channel,
                                                    Promise<?> originalPromise,
                                                    String hostname,
                                                    int dnsClass, DnsRecordType[] expectedTypes,
                                                    DnsRecord[] additionals,
                                                    DnsServerAddressStream nameServerAddrs,
                                                    int allowedQueries) {
        return new DnsRecordResolveContext(parent, channel, originalPromise, hostname, dnsClass,
                                           expectedTypes, additionals, nameServerAddrs, allowedQueries);
    }

    @Override
    DnsRecord convertRecord(DnsRecord record, String hostname, DnsRecord[] additionals, EventLoop eventLoop) {
        return ReferenceCountUtil.retain(record);
    }

    @Override
    List<DnsRecord> filterResults(List<DnsRecord> unfiltered) {
        return unfiltered;
    }

    @Override
    boolean isCompleteEarly(DnsRecord resolved) {
        return false;
    }

    @Override
    boolean isDuplicateAllowed() {
        return true;
    }

    @Override
    void cache(String hostname, DnsRecord[] additionals, DnsRecord result, DnsRecord convertedResult) {
        // Do not cache.
        // XXX: When we implement cache, we would need to retain the reference count of the result record.
    }

    @Override
    void cache(String hostname, DnsRecord[] additionals, UnknownHostException cause) {
        // Do not cache.
        // XXX: When we implement cache, we would need to retain the reference count of the result record.
    }

    @Override
    DnsCnameCache cnameCache() {
        // We don't use a cache here at all as we also don't cache if we end up using the DnsRecordResolverContext.
        return NoopDnsCnameCache.INSTANCE;
    }
}

Frequently Asked Questions

What is the DnsRecordResolveContext class?
DnsRecordResolveContext is a class in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsRecordResolveContext.java.
Where is DnsRecordResolveContext defined?
DnsRecordResolveContext is defined in resolver-dns/src/main/java/io/netty/resolver/dns/DnsRecordResolveContext.java at line 29.

Analyze Your Own Codebase

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

Try Supermodel Free