Home / Class/ InetSocketAddressResolver Class — netty Architecture

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();
    }
}

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