ShuffledDnsServerAddressStream Class — netty Architecture
Architecture documentation for the ShuffledDnsServerAddressStream class in ShuffledDnsServerAddressStream.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 33adca09_6e96_6601_9566_45700e378291["ShuffledDnsServerAddressStream"] 0df2e111_2487_8299_c08c_cfb7870c68f5["ShuffledDnsServerAddressStream.java"] 33adca09_6e96_6601_9566_45700e378291 -->|defined in| 0df2e111_2487_8299_c08c_cfb7870c68f5 ce3c3bb7_553c_723b_296d_4d2805480eb0["ShuffledDnsServerAddressStream()"] 33adca09_6e96_6601_9566_45700e378291 -->|method| ce3c3bb7_553c_723b_296d_4d2805480eb0 b0641730_af5d_63fb_0794_6a0c879a8488["shuffle()"] 33adca09_6e96_6601_9566_45700e378291 -->|method| b0641730_af5d_63fb_0794_6a0c879a8488 b3804647_8a04_7c42_bc3e_b55431b5f411["InetSocketAddress()"] 33adca09_6e96_6601_9566_45700e378291 -->|method| b3804647_8a04_7c42_bc3e_b55431b5f411 e8771c2c_bbc3_e302_dc97_9145d661dd69["size()"] 33adca09_6e96_6601_9566_45700e378291 -->|method| e8771c2c_bbc3_e302_dc97_9145d661dd69 11fa7da4_e7e4_cc16_9400_4e1e0c3933f0["String()"] 33adca09_6e96_6601_9566_45700e378291 -->|method| 11fa7da4_e7e4_cc16_9400_4e1e0c3933f0
Relationship Graph
Source Code
resolver-dns/src/main/java/io/netty/resolver/dns/ShuffledDnsServerAddressStream.java lines 24–76
final class ShuffledDnsServerAddressStream implements DnsServerAddressStream {
private final List<InetSocketAddress> addresses;
private int i;
/**
* Create a new instance.
* @param addresses The addresses are not cloned. It is assumed the caller has cloned this array or otherwise will
* not modify the contents.
*/
ShuffledDnsServerAddressStream(List<InetSocketAddress> addresses) {
this.addresses = addresses;
shuffle();
}
private ShuffledDnsServerAddressStream(List<InetSocketAddress> addresses, int startIdx) {
this.addresses = addresses;
i = startIdx;
}
private void shuffle() {
Collections.shuffle(addresses, ThreadLocalRandom.current());
}
@Override
public InetSocketAddress next() {
int i = this.i;
InetSocketAddress next = addresses.get(i);
if (++ i < addresses.size()) {
this.i = i;
} else {
this.i = 0;
shuffle();
}
return next;
}
@Override
public int size() {
return addresses.size();
}
@Override
public ShuffledDnsServerAddressStream duplicate() {
return new ShuffledDnsServerAddressStream(addresses, i);
}
@Override
public String toString() {
return SequentialDnsServerAddressStream.toString("shuffled", i, addresses);
}
}
Source
Frequently Asked Questions
What is the ShuffledDnsServerAddressStream class?
ShuffledDnsServerAddressStream is a class in the netty codebase, defined in resolver-dns/src/main/java/io/netty/resolver/dns/ShuffledDnsServerAddressStream.java.
Where is ShuffledDnsServerAddressStream defined?
ShuffledDnsServerAddressStream is defined in resolver-dns/src/main/java/io/netty/resolver/dns/ShuffledDnsServerAddressStream.java at line 24.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free