InetSocketAddressResolver Class — netty Architecture
Architecture documentation for the InetSocketAddressResolver class in InetSocketAddressResolver.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 21498a5a_5ceb_e4f5_18c5_42fb30fee58a["InetSocketAddressResolver"] 09c598d3_60af_5116_a4ef_d83e2d6a189a["InetSocketAddressResolver.java"] 21498a5a_5ceb_e4f5_18c5_42fb30fee58a -->|defined in| 09c598d3_60af_5116_a4ef_d83e2d6a189a 84cca777_a33c_de93_31c9_71aadff9dac4["InetSocketAddressResolver()"] 21498a5a_5ceb_e4f5_18c5_42fb30fee58a -->|method| 84cca777_a33c_de93_31c9_71aadff9dac4 f42873a5_197d_95c2_6b44_a5f1113c6b5f["doIsResolved()"] 21498a5a_5ceb_e4f5_18c5_42fb30fee58a -->|method| f42873a5_197d_95c2_6b44_a5f1113c6b5f b0e81efb_7154_d40e_6541_aaffefbb7e5c["doResolve()"] 21498a5a_5ceb_e4f5_18c5_42fb30fee58a -->|method| b0e81efb_7154_d40e_6541_aaffefbb7e5c 9894c060_43ce_fdf2_f055_2fe6bb0128fe["doResolveAll()"] 21498a5a_5ceb_e4f5_18c5_42fb30fee58a -->|method| 9894c060_43ce_fdf2_f055_2fe6bb0128fe 4b9bf483_9172_5164_26b4_33791132c68b["close()"] 21498a5a_5ceb_e4f5_18c5_42fb30fee58a -->|method| 4b9bf483_9172_5164_26b4_33791132c68b
Relationship Graph
Source Code
resolver/src/main/java/io/netty/resolver/InetSocketAddressResolver.java lines 31–90
public class InetSocketAddressResolver extends AbstractAddressResolver<InetSocketAddress> {
final NameResolver<InetAddress> nameResolver;
/**
* @param executor the {@link EventExecutor} which is used to notify the listeners of the {@link Future} returned
* by {@link #resolve(java.net.SocketAddress)}
* @param nameResolver the {@link NameResolver} used for name resolution
*/
public InetSocketAddressResolver(EventExecutor executor, NameResolver<InetAddress> nameResolver) {
super(executor, InetSocketAddress.class);
this.nameResolver = nameResolver;
}
@Override
protected boolean doIsResolved(InetSocketAddress address) {
return !address.isUnresolved();
}
@Override
protected void doResolve(final InetSocketAddress unresolvedAddress, final Promise<InetSocketAddress> promise)
throws Exception {
// Note that InetSocketAddress.getHostName() will never incur a reverse lookup here,
// because an unresolved address always has a host name.
nameResolver.resolve(unresolvedAddress.getHostName())
.addListener((FutureListener<InetAddress>) future -> {
if (future.isSuccess()) {
promise.setSuccess(new InetSocketAddress(future.getNow(), unresolvedAddress.getPort()));
} else {
promise.setFailure(future.cause());
}
});
}
@Override
protected void doResolveAll(final InetSocketAddress unresolvedAddress,
final Promise<List<InetSocketAddress>> promise) throws Exception {
// Note that InetSocketAddress.getHostName() will never incur a reverse lookup here,
// because an unresolved address always has a host name.
nameResolver.resolveAll(unresolvedAddress.getHostName())
.addListener((FutureListener<List<InetAddress>>) future -> {
if (future.isSuccess()) {
List<InetAddress> inetAddresses = future.getNow();
List<InetSocketAddress> socketAddresses =
new ArrayList<InetSocketAddress>(inetAddresses.size());
for (InetAddress inetAddress : inetAddresses) {
socketAddresses.add(new InetSocketAddress(inetAddress, unresolvedAddress.getPort()));
}
promise.setSuccess(socketAddresses);
} else {
promise.setFailure(future.cause());
}
});
}
@Override
public void close() {
nameResolver.close();
}
}
Source
Frequently Asked Questions
What is the InetSocketAddressResolver class?
InetSocketAddressResolver is a class in the netty codebase, defined in resolver/src/main/java/io/netty/resolver/InetSocketAddressResolver.java.
Where is InetSocketAddressResolver defined?
InetSocketAddressResolver is defined in resolver/src/main/java/io/netty/resolver/InetSocketAddressResolver.java at line 31.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free