Home / Class/ DnsAddressStreamList Class — netty Architecture

DnsAddressStreamList Class — netty Architecture

Architecture documentation for the DnsAddressStreamList class in DnsResolveContext.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  f888550a_6fc1_ef49_db27_c4e711ee7c80["DnsAddressStreamList"]
  21f3aef4_24fe_7168_ea1d_94d7a3f45711["DnsResolveContext.java"]
  f888550a_6fc1_ef49_db27_c4e711ee7c80 -->|defined in| 21f3aef4_24fe_7168_ea1d_94d7a3f45711
  8551bbf5_ceb5_b64c_f8de_aedc66ee65f3["DnsAddressStreamList()"]
  f888550a_6fc1_ef49_db27_c4e711ee7c80 -->|method| 8551bbf5_ceb5_b64c_f8de_aedc66ee65f3
  6074b900_3b4a_a781_3f13_d319edfe2ce0["InetSocketAddress()"]
  f888550a_6fc1_ef49_db27_c4e711ee7c80 -->|method| 6074b900_3b4a_a781_3f13_d319edfe2ce0
  8ad22f82_2828_32a5_2cf2_ae4ca594c709["size()"]
  f888550a_6fc1_ef49_db27_c4e711ee7c80 -->|method| 8ad22f82_2828_32a5_2cf2_ae4ca594c709
  bf482da1_b132_070b_41fc_4cdb2284527d["iterator()"]
  f888550a_6fc1_ef49_db27_c4e711ee7c80 -->|method| bf482da1_b132_070b_41fc_4cdb2284527d

Relationship Graph

Source Code

resolver-dns/src/main/java/io/netty/resolver/dns/DnsResolveContext.java lines 739–791

    private static final class DnsAddressStreamList extends AbstractList<InetSocketAddress> {

        private final DnsServerAddressStream duplicate;
        private List<InetSocketAddress> addresses;

        DnsAddressStreamList(DnsServerAddressStream stream) {
            duplicate = stream.duplicate();
        }

        @Override
        public InetSocketAddress get(int index) {
            if (addresses == null) {
                DnsServerAddressStream stream = duplicate.duplicate();
                addresses = new ArrayList<InetSocketAddress>(size());
                for (int i = 0; i < stream.size(); i++) {
                    addresses.add(stream.next());
                }
            }
            return addresses.get(index);
        }

        @Override
        public int size() {
            return duplicate.size();
        }

        @Override
        public Iterator<InetSocketAddress> iterator() {
            return new Iterator<InetSocketAddress>() {
                private final DnsServerAddressStream stream = duplicate.duplicate();
                private int i;

                @Override
                public boolean hasNext() {
                    return i < stream.size();
                }

                @Override
                public InetSocketAddress next() {
                    if (!hasNext()) {
                        throw new NoSuchElementException();
                    }
                    i++;
                    return stream.next();
                }

                @Override
                public void remove() {
                    throw new UnsupportedOperationException();
                }
            };
        }
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free