Home / Class/ ResolveAddressHandler Class — netty Architecture

ResolveAddressHandler Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  85b1544b_87af_d04d_e4c6_6e94b6749f73["ResolveAddressHandler"]
  9dab69f9_101a_1a97_dae4_5ab5e79e1069["ResolveAddressHandler.java"]
  85b1544b_87af_d04d_e4c6_6e94b6749f73 -->|defined in| 9dab69f9_101a_1a97_dae4_5ab5e79e1069
  025ca509_349a_4ac5_feb5_4dee1e8976b3["ResolveAddressHandler()"]
  85b1544b_87af_d04d_e4c6_6e94b6749f73 -->|method| 025ca509_349a_4ac5_feb5_4dee1e8976b3
  1ce462a0_7cbf_88ed_d80e_f194cfe4f38f["connect()"]
  85b1544b_87af_d04d_e4c6_6e94b6749f73 -->|method| 1ce462a0_7cbf_88ed_d80e_f194cfe4f38f

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/address/ResolveAddressHandler.java lines 35–63

@Sharable
public class ResolveAddressHandler extends ChannelOutboundHandlerAdapter {

    private final AddressResolverGroup<? extends SocketAddress> resolverGroup;

    public ResolveAddressHandler(AddressResolverGroup<? extends SocketAddress> resolverGroup) {
        this.resolverGroup = ObjectUtil.checkNotNull(resolverGroup, "resolverGroup");
    }

    @Override
    public void connect(final ChannelHandlerContext ctx, SocketAddress remoteAddress,
                        final SocketAddress localAddress, final ChannelPromise promise)  {
        AddressResolver<? extends SocketAddress> resolver = resolverGroup.getResolver(ctx.executor());
        if (resolver.isSupported(remoteAddress) && !resolver.isResolved(remoteAddress)) {
            resolver.resolve(remoteAddress).addListener((FutureListener<SocketAddress>) future -> {
                Throwable cause = future.cause();
                if (cause != null) {
                    promise.setFailure(cause);
                } else {
                    ctx.connect(future.getNow(), localAddress, promise);
                }
                ctx.pipeline().remove(ResolveAddressHandler.this);
            });
        } else {
            ctx.connect(remoteAddress, localAddress, promise);
            ctx.pipeline().remove(this);
        }
    }
}

Frequently Asked Questions

What is the ResolveAddressHandler class?
ResolveAddressHandler is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/address/ResolveAddressHandler.java.
Where is ResolveAddressHandler defined?
ResolveAddressHandler is defined in handler/src/main/java/io/netty/handler/address/ResolveAddressHandler.java at line 35.

Analyze Your Own Codebase

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

Try Supermodel Free