blob: d5e409ce7575d301a45b3b34eb58d71e6080223b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SdkHarnessClient (Apache Beam 2.38.0-SNAPSHOT)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SdkHarnessClient (Apache Beam 2.38.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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">
<li><a href="../../../../../../org/apache/beam/runners/fnexecution/control/RemoteOutputReceiver.html" title="class in org.apache.beam.runners.fnexecution.control"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html" target="_top">Frames</a></li>
<li><a href="SdkHarnessClient.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.runners.fnexecution.control</div>
<h2 title="Class SdkHarnessClient" class="title">Class SdkHarnessClient</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.runners.fnexecution.control.SdkHarnessClient</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.lang.AutoCloseable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">SdkHarnessClient</span>
extends java.lang.Object
implements java.lang.AutoCloseable</pre>
<div class="block">A high-level client for an SDK harness.
<p>This provides a Java-friendly wrapper around <a href="../../../../../../org/apache/beam/runners/fnexecution/control/InstructionRequestHandler.html" title="interface in org.apache.beam.runners.fnexecution.control"><code>InstructionRequestHandler</code></a> and <a href="../../../../../../org/apache/beam/sdk/fn/data/CloseableFnDataReceiver.html" title="interface in org.apache.beam.sdk.fn.data"><code>CloseableFnDataReceiver</code></a>, which handle lower-level gRPC message wrangling.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a></span></code>
<div class="block">A processor capable of creating bundles for some registered <code>BeamFnApi.ProcessBundleDescriptor</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#close--">close</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/runners/fnexecution/control/InstructionRequestHandler.html" title="interface in org.apache.beam.runners.fnexecution.control">InstructionRequestHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#getInstructionRequestHandler--">getInstructionRequestHandler</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#getProcessor-org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor-java.util.List-">getProcessor</a></span>(org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor&nbsp;descriptor,
java.util.List&lt;<a href="../../../../../../org/apache/beam/runners/fnexecution/data/RemoteInputDestination.html" title="class in org.apache.beam.runners.fnexecution.data">RemoteInputDestination</a>&gt;&nbsp;remoteInputDesinations)</code>
<div class="block">Provides <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><code>SdkHarnessClient.BundleProcessor</code></a> that is capable of processing bundles not containing timers or
state accesses such as:
Side inputs
User state
Remote references
</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#getProcessor-org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor-java.util.List-org.apache.beam.runners.fnexecution.state.StateDelegator-">getProcessor</a></span>(org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor&nbsp;descriptor,
java.util.List&lt;<a href="../../../../../../org/apache/beam/runners/fnexecution/data/RemoteInputDestination.html" title="class in org.apache.beam.runners.fnexecution.data">RemoteInputDestination</a>&gt;&nbsp;remoteInputDesinations,
<a href="../../../../../../org/apache/beam/runners/fnexecution/state/StateDelegator.html" title="interface in org.apache.beam.runners.fnexecution.state">StateDelegator</a>&nbsp;stateDelegator)</code>
<div class="block">Provides <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><code>SdkHarnessClient.BundleProcessor</code></a> that is capable of processing bundles not containing timers.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#getProcessor-org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor-java.util.List-org.apache.beam.runners.fnexecution.state.StateDelegator-java.util.Map-">getProcessor</a></span>(org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor&nbsp;descriptor,
java.util.List&lt;<a href="../../../../../../org/apache/beam/runners/fnexecution/data/RemoteInputDestination.html" title="class in org.apache.beam.runners.fnexecution.data">RemoteInputDestination</a>&gt;&nbsp;remoteInputDestinations,
<a href="../../../../../../org/apache/beam/runners/fnexecution/state/StateDelegator.html" title="interface in org.apache.beam.runners.fnexecution.state">StateDelegator</a>&nbsp;stateDelegator,
java.util.Map&lt;java.lang.String,java.util.Map&lt;java.lang.String,<a href="../../../../../../org/apache/beam/runners/fnexecution/control/ProcessBundleDescriptors.TimerSpec.html" title="class in org.apache.beam.runners.fnexecution.control">ProcessBundleDescriptors.TimerSpec</a>&gt;&gt;&nbsp;timerSpecs)</code>
<div class="block">Provides <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><code>SdkHarnessClient.BundleProcessor</code></a> that is capable of processing bundles containing timers and
state accesses such as:
Side inputs
User state
Remote references
</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#usingFnApiClient-org.apache.beam.runners.fnexecution.control.InstructionRequestHandler-org.apache.beam.runners.fnexecution.data.FnDataService-">usingFnApiClient</a></span>(<a href="../../../../../../org/apache/beam/runners/fnexecution/control/InstructionRequestHandler.html" title="interface in org.apache.beam.runners.fnexecution.control">InstructionRequestHandler</a>&nbsp;fnApiControlClient,
<a href="../../../../../../org/apache/beam/runners/fnexecution/data/FnDataService.html" title="interface in org.apache.beam.runners.fnexecution.data">FnDataService</a>&nbsp;fnApiDataService)</code>
<div class="block">Creates a client for a particular SDK harness.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html#withIdGenerator-org.apache.beam.sdk.fn.IdGenerator-">withIdGenerator</a></span>(<a href="../../../../../../org/apache/beam/sdk/fn/IdGenerator.html" title="interface in org.apache.beam.sdk.fn">IdGenerator</a>&nbsp;idGenerator)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getInstructionRequestHandler--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstructionRequestHandler</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/runners/fnexecution/control/InstructionRequestHandler.html" title="interface in org.apache.beam.runners.fnexecution.control">InstructionRequestHandler</a>&nbsp;getInstructionRequestHandler()</pre>
</li>
</ul>
<a name="usingFnApiClient-org.apache.beam.runners.fnexecution.control.InstructionRequestHandler-org.apache.beam.runners.fnexecution.data.FnDataService-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>usingFnApiClient</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient</a>&nbsp;usingFnApiClient(<a href="../../../../../../org/apache/beam/runners/fnexecution/control/InstructionRequestHandler.html" title="interface in org.apache.beam.runners.fnexecution.control">InstructionRequestHandler</a>&nbsp;fnApiControlClient,
<a href="../../../../../../org/apache/beam/runners/fnexecution/data/FnDataService.html" title="interface in org.apache.beam.runners.fnexecution.data">FnDataService</a>&nbsp;fnApiDataService)</pre>
<div class="block">Creates a client for a particular SDK harness. It is the responsibility of the caller to ensure
that these correspond to the same SDK harness, so control plane and data plane messages can be
correctly associated.</div>
</li>
</ul>
<a name="withIdGenerator-org.apache.beam.sdk.fn.IdGenerator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withIdGenerator</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient</a>&nbsp;withIdGenerator(<a href="../../../../../../org/apache/beam/sdk/fn/IdGenerator.html" title="interface in org.apache.beam.sdk.fn">IdGenerator</a>&nbsp;idGenerator)</pre>
</li>
</ul>
<a name="getProcessor-org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessor</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a>&nbsp;getProcessor(org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor&nbsp;descriptor,
java.util.List&lt;<a href="../../../../../../org/apache/beam/runners/fnexecution/data/RemoteInputDestination.html" title="class in org.apache.beam.runners.fnexecution.data">RemoteInputDestination</a>&gt;&nbsp;remoteInputDesinations)</pre>
<div class="block">Provides <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><code>SdkHarnessClient.BundleProcessor</code></a> that is capable of processing bundles not containing timers or
state accesses such as:
<ul>
<li>Side inputs
<li>User state
<li>Remote references
</ul>
<p>Note that bundle processors are cached based upon the the <code>process bundle descriptor id</code>. A previously created instance
may be returned.</div>
</li>
</ul>
<a name="getProcessor-org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor-java.util.List-org.apache.beam.runners.fnexecution.state.StateDelegator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessor</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a>&nbsp;getProcessor(org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor&nbsp;descriptor,
java.util.List&lt;<a href="../../../../../../org/apache/beam/runners/fnexecution/data/RemoteInputDestination.html" title="class in org.apache.beam.runners.fnexecution.data">RemoteInputDestination</a>&gt;&nbsp;remoteInputDesinations,
<a href="../../../../../../org/apache/beam/runners/fnexecution/state/StateDelegator.html" title="interface in org.apache.beam.runners.fnexecution.state">StateDelegator</a>&nbsp;stateDelegator)</pre>
<div class="block">Provides <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><code>SdkHarnessClient.BundleProcessor</code></a> that is capable of processing bundles not containing timers.
<p>Note that bundle processors are cached based upon the the <code>process bundle descriptor id</code>. A previously created instance
may be returned.</div>
</li>
</ul>
<a name="getProcessor-org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor-java.util.List-org.apache.beam.runners.fnexecution.state.StateDelegator-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcessor</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control">SdkHarnessClient.BundleProcessor</a>&nbsp;getProcessor(org.apache.beam.model.fnexecution.v1.BeamFnApi.ProcessBundleDescriptor&nbsp;descriptor,
java.util.List&lt;<a href="../../../../../../org/apache/beam/runners/fnexecution/data/RemoteInputDestination.html" title="class in org.apache.beam.runners.fnexecution.data">RemoteInputDestination</a>&gt;&nbsp;remoteInputDestinations,
<a href="../../../../../../org/apache/beam/runners/fnexecution/state/StateDelegator.html" title="interface in org.apache.beam.runners.fnexecution.state">StateDelegator</a>&nbsp;stateDelegator,
java.util.Map&lt;java.lang.String,java.util.Map&lt;java.lang.String,<a href="../../../../../../org/apache/beam/runners/fnexecution/control/ProcessBundleDescriptors.TimerSpec.html" title="class in org.apache.beam.runners.fnexecution.control">ProcessBundleDescriptors.TimerSpec</a>&gt;&gt;&nbsp;timerSpecs)</pre>
<div class="block">Provides <a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><code>SdkHarnessClient.BundleProcessor</code></a> that is capable of processing bundles containing timers and
state accesses such as:
<ul>
<li>Side inputs
<li>User state
<li>Remote references
</ul>
<p>Note that bundle processors are cached based upon the the <code>process bundle descriptor id</code>. A previously created instance
may be returned.</div>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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">
<li><a href="../../../../../../org/apache/beam/runners/fnexecution/control/RemoteOutputReceiver.html" title="class in org.apache.beam.runners.fnexecution.control"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/runners/fnexecution/control/SdkHarnessClient.BundleProcessor.html" title="class in org.apache.beam.runners.fnexecution.control"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/fnexecution/control/SdkHarnessClient.html" target="_top">Frames</a></li>
<li><a href="SdkHarnessClient.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.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>
</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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>