@UnstableApi public abstract class AddressResolverGroup<T extends java.net.SocketAddress> extends java.lang.Object implements java.io.Closeable
NameResolvers so that each EventExecutor has its own resolver instance.| Modifier and Type | Field and Description |
|---|---|
private static InternalLogger |
logger |
private java.util.Map<EventExecutor,AddressResolver<T>> |
resolvers
Note that we do not use a
ConcurrentMap here because it is usually expensive to instantiate a resolver. |
| Modifier | Constructor and Description |
|---|---|
protected |
AddressResolverGroup() |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes all
NameResolvers created by this group. |
AddressResolver<T> |
getResolver(EventExecutor executor)
Returns the
AddressResolver associated with the specified EventExecutor. |
protected abstract AddressResolver<T> |
newResolver(EventExecutor executor)
Invoked by
getResolver(EventExecutor) to create a new AddressResolver. |
private static final InternalLogger logger
private final java.util.Map<EventExecutor,AddressResolver<T extends java.net.SocketAddress>> resolvers
ConcurrentMap here because it is usually expensive to instantiate a resolver.public AddressResolver<T> getResolver(EventExecutor executor)
AddressResolver associated with the specified EventExecutor. If there's no associated
resolved found, this method creates and returns a new resolver instance created by
newResolver(EventExecutor) so that the new resolver is reused on another
getResolver(EventExecutor) call with the same EventExecutor.protected abstract AddressResolver<T> newResolver(EventExecutor executor) throws java.lang.Exception
getResolver(EventExecutor) to create a new AddressResolver.java.lang.Exceptionpublic void close()
NameResolvers created by this group.close in interface java.io.Closeableclose in interface java.lang.AutoCloseable