blob: 3df8b757a3d193ec96610293b4aeea5a09f49db5 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>NameResolver.Args (grpc-all 1.77.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../jquery/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="NameResolver.Args (grpc-all 1.77.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":9,"i12":10,"i13":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NameResolver.Args.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">io.grpc</a></div>
<h2 title="Class NameResolver.Args" class="title">Class NameResolver.Args</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>io.grpc.NameResolver.Args</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="NameResolver.html" title="class in io.grpc">NameResolver</a></dd>
</dl>
<hr>
<pre><a href="ExperimentalApi.html" title="annotation in io.grpc">@ExperimentalApi</a>("https://github.com/grpc/grpc-java/issues/1770")
public static final class <span class="typeNameLabel">NameResolver.Args</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">Information that a <a href="NameResolver.Factory.html" title="class in io.grpc"><code>NameResolver.Factory</code></a> uses to create a <a href="NameResolver.html" title="class in io.grpc"><code>NameResolver</code></a>.
<p>Args applicable to all <a href="NameResolver.html" title="class in io.grpc"><code>NameResolver</code></a>s 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. See <a href="#getArg(io.grpc.NameResolver.Args.Key)"><code>getArg(io.grpc.NameResolver.Args.Key&lt;T&gt;)</code></a> for more.
<p>Note this class overrides neither <code>equals()</code> nor <code>hashCode()</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="NameResolver.Args.Builder.html" title="class in io.grpc">NameResolver.Args.Builder</a></span></code></th>
<td class="colLast">
<div class="block">Builder for <a href="NameResolver.Args.html" title="class in io.grpc"><code>NameResolver.Args</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="NameResolver.Args.Key.html" title="class in io.grpc">NameResolver.Args.Key</a>&lt;<a href="NameResolver.Args.Key.html" title="type parameter in NameResolver.Args.Key">T</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Identifies an externally-defined custom argument that can be stored in <a href="NameResolver.Args.html" title="class in io.grpc"><code>NameResolver.Args</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getArg(io.grpc.NameResolver.Args.Key)">getArg</a></span>&#8203;(<a href="NameResolver.Args.Key.html" title="class in io.grpc">NameResolver.Args.Key</a>&lt;T&gt;&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns the value of a custom arg named 'key', or <code>null</code> if it's not set.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="ChannelLogger.html" title="class in io.grpc">ChannelLogger</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChannelLogger()">getChannelLogger</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="ChannelLogger.html" title="class in io.grpc"><code>ChannelLogger</code></a> for the Channel served by this NameResolver.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultPort()">getDefaultPort</a></span>()</code></th>
<td class="colLast">
<div class="block">The port number used in case the target or the underlying naming system doesn't provide a
port number.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>io.grpc.MetricRecorder</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetricRecorder()">getMetricRecorder</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <code>MetricRecorder</code> that the channel uses to record metrics.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="NameResolverRegistry.html" title="class in io.grpc">NameResolverRegistry</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNameResolverRegistry()">getNameResolverRegistry</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="NameResolverRegistry.html" title="class in io.grpc"><code>NameResolverRegistry</code></a> that the Channel uses to look for <a href="NameResolver.html" title="class in io.grpc"><code>NameResolver</code></a>s.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOffloadExecutor()">getOffloadExecutor</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the Executor on which this resolver should execute long-running or I/O bound work.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOverrideAuthority()">getOverrideAuthority</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the overrideAuthority from channel <a href="ManagedChannelBuilder.html#overrideAuthority(java.lang.String)"><code>ManagedChannelBuilder.overrideAuthority(java.lang.String)</code></a>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="ProxyDetector.html" title="interface in io.grpc">ProxyDetector</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProxyDetector()">getProxyDetector</a></span>()</code></th>
<td class="colLast">
<div class="block">If the NameResolver wants to support proxy, it should inquire this <a href="ProxyDetector.html" title="interface in io.grpc"><code>ProxyDetector</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getScheduledExecutorService()">getScheduledExecutorService</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a> for scheduling delayed tasks.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="NameResolver.ServiceConfigParser.html" title="class in io.grpc">NameResolver.ServiceConfigParser</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServiceConfigParser()">getServiceConfigParser</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="NameResolver.ServiceConfigParser.html" title="class in io.grpc"><code>NameResolver.ServiceConfigParser</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="SynchronizationContext.html" title="class in io.grpc">SynchronizationContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSynchronizationContext()">getSynchronizationContext</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="SynchronizationContext.html" title="class in io.grpc"><code>SynchronizationContext</code></a> where <a href="NameResolver.html#start(io.grpc.NameResolver.Listener2)"><code>NameResolver.start(Listener2)</code></a>, <a href="NameResolver.html#shutdown()"><code>NameResolver.shutdown()</code></a>
and <a href="NameResolver.html#refresh()"><code>NameResolver.refresh()</code></a> are run from.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="NameResolver.Args.Builder.html" title="class in io.grpc">NameResolver.Args.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBuilder()">newBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a new builder.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="NameResolver.Args.Builder.html" title="class in io.grpc">NameResolver.Args.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBuilder()">toBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a builder with the same initial values as this object.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getDefaultPort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultPort</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultPort()</pre>
<div class="block">The port number used in case the target or the underlying naming system doesn't provide a
port number.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
<a id="getProxyDetector()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProxyDetector</h4>
<pre class="methodSignature">public&nbsp;<a href="ProxyDetector.html" title="interface in io.grpc">ProxyDetector</a>&nbsp;getProxyDetector()</pre>
<div class="block">If the NameResolver wants to support proxy, it should inquire this <a href="ProxyDetector.html" title="interface in io.grpc"><code>ProxyDetector</code></a>.
See documentation on <a href="ProxyDetector.html" title="interface in io.grpc"><code>ProxyDetector</code></a> about how proxies work in gRPC.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
<a id="getSynchronizationContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSynchronizationContext</h4>
<pre class="methodSignature">public&nbsp;<a href="SynchronizationContext.html" title="class in io.grpc">SynchronizationContext</a>&nbsp;getSynchronizationContext()</pre>
<div class="block">Returns the <a href="SynchronizationContext.html" title="class in io.grpc"><code>SynchronizationContext</code></a> where <a href="NameResolver.html#start(io.grpc.NameResolver.Listener2)"><code>NameResolver.start(Listener2)</code></a>, <a href="NameResolver.html#shutdown()"><code>NameResolver.shutdown()</code></a>
and <a href="NameResolver.html#refresh()"><code>NameResolver.refresh()</code></a> are run from.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
<a id="getScheduledExecutorService()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScheduledExecutorService</h4>
<pre class="methodSignature"><a href="ExperimentalApi.html" title="annotation in io.grpc">@ExperimentalApi</a>("https://github.com/grpc/grpc-java/issues/6454")
public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;getScheduledExecutorService()</pre>
<div class="block">Returns a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a> for scheduling delayed tasks.
<p>This service is a shared resource and is only meant for quick tasks. DO NOT block or run
time-consuming tasks.
<p>The returned service doesn't support <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true#shutdown--" title="class or interface in java.util.concurrent" class="externalLink"><code>shutdown()</code></a>
and <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true#shutdownNow--" title="class or interface in java.util.concurrent" class="externalLink"><code>shutdownNow()</code></a>. They will throw if called.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.26.0</dd>
</dl>
</li>
</ul>
<a id="getServiceConfigParser()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceConfigParser</h4>
<pre class="methodSignature">public&nbsp;<a href="NameResolver.ServiceConfigParser.html" title="class in io.grpc">NameResolver.ServiceConfigParser</a>&nbsp;getServiceConfigParser()</pre>
<div class="block">Returns the <a href="NameResolver.ServiceConfigParser.html" title="class in io.grpc"><code>NameResolver.ServiceConfigParser</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
<a id="getArg(io.grpc.NameResolver.Args.Key)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getArg</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation" class="externalLink">@Nullable</a>
public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getArg&#8203;(<a href="NameResolver.Args.Key.html" title="class in io.grpc">NameResolver.Args.Key</a>&lt;T&gt;&nbsp;key)</pre>
<div class="block">Returns the value of a custom arg named 'key', or <code>null</code> if it's not set.
<p>While ordinary <a href="NameResolver.Args.html" title="class in io.grpc"><code>NameResolver.Args</code></a> should be universally useful and meaningful, custom arguments
can apply just to resolvers of a certain URI scheme, just to resolvers producing a particular
type of <a href="https://docs.oracle.com/javase/8/docs/api/java/net/SocketAddress.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>SocketAddress</code></a>, or even an individual <a href="NameResolver.html" title="class in io.grpc"><code>NameResolver</code></a> subclass.
Custom args are identified by an instance of <a href="NameResolver.Args.Key.html" title="class in io.grpc"><code>NameResolver.Args.Key</code></a> which should be a constant
defined in a java package and class appropriate for the argument's scope.
<p><a href="NameResolver.Args.html" title="class in io.grpc"><code>NameResolver.Args</code></a> are 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.
<p>Custom args can also be used simply to avoid adding inappropriate deps to the low level
io.grpc package.</div>
</li>
</ul>
<a id="getChannelLogger()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChannelLogger</h4>
<pre class="methodSignature"><a href="ExperimentalApi.html" title="annotation in io.grpc">@ExperimentalApi</a>("https://github.com/grpc/grpc-java/issues/6438")
public&nbsp;<a href="ChannelLogger.html" title="class in io.grpc">ChannelLogger</a>&nbsp;getChannelLogger()</pre>
<div class="block">Returns the <a href="ChannelLogger.html" title="class in io.grpc"><code>ChannelLogger</code></a> for the Channel served by this NameResolver.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.26.0</dd>
</dl>
</li>
</ul>
<a id="getOffloadExecutor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOffloadExecutor</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation" class="externalLink">@Nullable</a>
public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;getOffloadExecutor()</pre>
<div class="block">Returns the Executor on which this resolver should execute long-running or I/O bound work.
Null if no Executor was set.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.25.0</dd>
</dl>
</li>
</ul>
<a id="getOverrideAuthority()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOverrideAuthority</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation" class="externalLink">@Nullable</a>
<a href="ExperimentalApi.html" title="annotation in io.grpc">@ExperimentalApi</a>("https://github.com/grpc/grpc-java/issues/9406")
public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOverrideAuthority()</pre>
<div class="block">Returns the overrideAuthority from channel <a href="ManagedChannelBuilder.html#overrideAuthority(java.lang.String)"><code>ManagedChannelBuilder.overrideAuthority(java.lang.String)</code></a>.
Overrides the host name for L7 HTTP virtual host matching. Almost all name resolvers should
not use this.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.49.0</dd>
</dl>
</li>
</ul>
<a id="getMetricRecorder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetricRecorder</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation" class="externalLink">@Nullable</a>
public&nbsp;io.grpc.MetricRecorder&nbsp;getMetricRecorder()</pre>
<div class="block">Returns the <code>MetricRecorder</code> that the channel uses to record metrics.</div>
</li>
</ul>
<a id="getNameResolverRegistry()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNameResolverRegistry</h4>
<pre class="methodSignature">public&nbsp;<a href="NameResolverRegistry.html" title="class in io.grpc">NameResolverRegistry</a>&nbsp;getNameResolverRegistry()</pre>
<div class="block">Returns the <a href="NameResolverRegistry.html" title="class in io.grpc"><code>NameResolverRegistry</code></a> that the Channel uses to look for <a href="NameResolver.html" title="class in io.grpc"><code>NameResolver</code></a>s.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.74.0</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="toBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toBuilder</h4>
<pre class="methodSignature">public&nbsp;<a href="NameResolver.Args.Builder.html" title="class in io.grpc">NameResolver.Args.Builder</a>&nbsp;toBuilder()</pre>
<div class="block">Returns a builder with the same initial values as this object.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
<a id="newBuilder()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>newBuilder</h4>
<pre class="methodSignature">public static&nbsp;<a href="NameResolver.Args.Builder.html" title="class in io.grpc">NameResolver.Args.Builder</a>&nbsp;newBuilder()</pre>
<div class="block">Creates a new builder.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.21.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NameResolver.Args.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>