Class NameResolver.Args
- java.lang.Object
-
- io.grpc.NameResolver.Args
-
- Enclosing class:
- NameResolver
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1770") public static final class NameResolver.Args extends Object
Information that aNameResolver.Factoryuses to create aNameResolver.Args applicable to all
NameResolvers are defined here using ordinary setters and getters. This container can also hold externally-defined "custom" args that aren't so widely useful or that would be inappropriate dependencies for this low level API. SeegetArg(io.grpc.NameResolver.Args.Key<T>)for more.Note this class overrides neither
equals()norhashCode().- Since:
- 1.21.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classNameResolver.Args.BuilderBuilder forNameResolver.Args.static classNameResolver.Args.Key<T>Identifies an externally-defined custom argument that can be stored inNameResolver.Args.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TgetArg(NameResolver.Args.Key<T> key)Returns the value of a custom arg named 'key', ornullif it's not set.ChannelLoggergetChannelLogger()Returns theChannelLoggerfor the Channel served by this NameResolver.intgetDefaultPort()The port number used in case the target or the underlying naming system doesn't provide a port number.io.grpc.MetricRecordergetMetricRecorder()Returns theMetricRecorderthat the channel uses to record metrics.NameResolverRegistrygetNameResolverRegistry()Returns theNameResolverRegistrythat the Channel uses to look forNameResolvers.ExecutorgetOffloadExecutor()Returns the Executor on which this resolver should execute long-running or I/O bound work.StringgetOverrideAuthority()Returns the overrideAuthority from channelManagedChannelBuilder.overrideAuthority(java.lang.String).ProxyDetectorgetProxyDetector()If the NameResolver wants to support proxy, it should inquire thisProxyDetector.ScheduledExecutorServicegetScheduledExecutorService()Returns aScheduledExecutorServicefor scheduling delayed tasks.NameResolver.ServiceConfigParsergetServiceConfigParser()Returns theNameResolver.ServiceConfigParser.SynchronizationContextgetSynchronizationContext()Returns theSynchronizationContextwhereNameResolver.start(Listener2),NameResolver.shutdown()andNameResolver.refresh()are run from.static NameResolver.Args.BuildernewBuilder()Creates a new builder.NameResolver.Args.BuildertoBuilder()Returns a builder with the same initial values as this object.StringtoString()
-
-
-
Method Detail
-
getDefaultPort
public int getDefaultPort()
The port number used in case the target or the underlying naming system doesn't provide a port number.- Since:
- 1.21.0
-
getProxyDetector
public ProxyDetector getProxyDetector()
If the NameResolver wants to support proxy, it should inquire thisProxyDetector. See documentation onProxyDetectorabout how proxies work in gRPC.- Since:
- 1.21.0
-
getSynchronizationContext
public SynchronizationContext getSynchronizationContext()
Returns theSynchronizationContextwhereNameResolver.start(Listener2),NameResolver.shutdown()andNameResolver.refresh()are run from.- Since:
- 1.21.0
-
getScheduledExecutorService
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/6454") public ScheduledExecutorService getScheduledExecutorService()
Returns aScheduledExecutorServicefor scheduling delayed tasks.This service is a shared resource and is only meant for quick tasks. DO NOT block or run time-consuming tasks.
The returned service doesn't support
shutdown()andshutdownNow(). They will throw if called.- Since:
- 1.26.0
-
getServiceConfigParser
public NameResolver.ServiceConfigParser getServiceConfigParser()
Returns theNameResolver.ServiceConfigParser.- Since:
- 1.21.0
-
getArg
@Nullable public <T> T getArg(NameResolver.Args.Key<T> key)
Returns the value of a custom arg named 'key', ornullif it's not set.While ordinary
NameResolver.Argsshould be universally useful and meaningful, custom arguments can apply just to resolvers of a certain URI scheme, just to resolvers producing a particular type ofSocketAddress, or even an individualNameResolversubclass. Custom args are identified by an instance ofNameResolver.Args.Keywhich should be a constant defined in a java package and class appropriate for the argument's scope.NameResolver.Argsare normally reserved for information in *support* of name resolution, not the name to be resolved itself. However, there are rare cases where all or part of the target name can't be represented by any standard URI scheme or can't be encoded as a String at all. Custom args, in contrast, can hold arbitrary Java types, making them a useful work around in these cases.Custom args can also be used simply to avoid adding inappropriate deps to the low level io.grpc package.
-
getChannelLogger
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/6438") public ChannelLogger getChannelLogger()
Returns theChannelLoggerfor the Channel served by this NameResolver.- Since:
- 1.26.0
-
getOffloadExecutor
@Nullable public Executor getOffloadExecutor()
Returns the Executor on which this resolver should execute long-running or I/O bound work. Null if no Executor was set.- Since:
- 1.25.0
-
getOverrideAuthority
@Nullable @ExperimentalApi("https://github.com/grpc/grpc-java/issues/9406") public String getOverrideAuthority()
Returns the overrideAuthority from channelManagedChannelBuilder.overrideAuthority(java.lang.String). Overrides the host name for L7 HTTP virtual host matching. Almost all name resolvers should not use this.- Since:
- 1.49.0
-
getMetricRecorder
@Nullable public io.grpc.MetricRecorder getMetricRecorder()
Returns theMetricRecorderthat the channel uses to record metrics.
-
getNameResolverRegistry
public NameResolverRegistry getNameResolverRegistry()
Returns theNameResolverRegistrythat the Channel uses to look forNameResolvers.- Since:
- 1.74.0
-
toBuilder
public NameResolver.Args.Builder toBuilder()
Returns a builder with the same initial values as this object.- Since:
- 1.21.0
-
newBuilder
public static NameResolver.Args.Builder newBuilder()
Creates a new builder.- Since:
- 1.21.0
-
-