blob: 5e21d2803c1d29125c39fa449ddb4140d6847981 [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 (1.8.0_181-google-v7) on Mon Jan 27 16:42:31 PST 2020 -->
<title>CombiningState (Apache Beam 2.20.0-SNAPSHOT)</title>
<meta name="date" content="2020-01-27">
<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="CombiningState (Apache Beam 2.20.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/sdk/state/BagState.html" title="interface in org.apache.beam.sdk.state"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/beam/sdk/state/GroupingState.html" title="interface in org.apache.beam.sdk.state"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/beam/sdk/state/CombiningState.html" target="_top">Frames</a></li>
<li><a href="CombiningState.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>Nested&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.sdk.state</div>
<h2 title="Interface CombiningState" class="title">Interface CombiningState&lt;InputT,AccumT,OutputT&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>InputT</code> - the type of values added to the state</dd>
<dd><code>AccumT</code> - the type of accumulator</dd>
<dd><code>OutputT</code> - the type of value extracted from the state</dd>
</dl>
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../org/apache/beam/sdk/state/GroupingState.html" title="interface in org.apache.beam.sdk.state">GroupingState</a>&lt;InputT,OutputT&gt;, <a href="../../../../../org/apache/beam/sdk/state/ReadableState.html" title="interface in org.apache.beam.sdk.state">ReadableState</a>&lt;OutputT&gt;, <a href="../../../../../org/apache/beam/sdk/state/State.html" title="interface in org.apache.beam.sdk.state">State</a></dd>
</dl>
<hr>
<br>
<pre><a href="../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#STATE">STATE</a>)
public interface <span class="typeNameLabel">CombiningState&lt;InputT,AccumT,OutputT&gt;</span>
extends <a href="../../../../../org/apache/beam/sdk/state/GroupingState.html" title="interface in org.apache.beam.sdk.state">GroupingState</a>&lt;InputT,OutputT&gt;</pre>
<div class="block">A <a href="../../../../../org/apache/beam/sdk/state/ReadableState.html" title="interface in org.apache.beam.sdk.state"><code>ReadableState</code></a> cell defined by a <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="class in org.apache.beam.sdk.transforms"><code>Combine.CombineFn</code></a>, accepting multiple input values,
combining them as specified into accumulators, and producing a single output value.
<p>Implementations of this form of state are expected to implement <a href="../../../../../org/apache/beam/sdk/state/GroupingState.html#add-InputT-"><code>GroupingState.add(InputT)</code></a> efficiently, not
via a sequence of read-modify-write.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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/sdk/state/CombiningState.html#addAccum-AccumT-">addAccum</a></span>(<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>&nbsp;accum)</code>
<div class="block">Add an accumulator to this state cell.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html#getAccum--">getAccum</a></span>()</code>
<div class="block">Read the merged accumulator for this state cell.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html#mergeAccumulators-java.lang.Iterable-">mergeAccumulators</a></span>(java.lang.Iterable&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>&gt;&nbsp;accumulators)</code>
<div class="block">Merge the given accumulators according to the underlying <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="class in org.apache.beam.sdk.transforms"><code>Combine.CombineFn</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html#read--">read</a></span>()</code>
<div class="block">Read the current value, blocking until it is available.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="interface in org.apache.beam.sdk.state">CombiningState</a>&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">InputT</a>,<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>,<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html#readLater--">readLater</a></span>()</code>
<div class="block">Indicate that the value will be read later.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.state.GroupingState">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.beam.sdk.state.<a href="../../../../../org/apache/beam/sdk/state/GroupingState.html" title="interface in org.apache.beam.sdk.state">GroupingState</a></h3>
<code><a href="../../../../../org/apache/beam/sdk/state/GroupingState.html#add-InputT-">add</a>, <a href="../../../../../org/apache/beam/sdk/state/GroupingState.html#isEmpty--">isEmpty</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.state.State">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.beam.sdk.state.<a href="../../../../../org/apache/beam/sdk/state/State.html" title="interface in org.apache.beam.sdk.state">State</a></h3>
<code><a href="../../../../../org/apache/beam/sdk/state/State.html#clear--">clear</a></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="read--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre><a href="https://static.javadoc.io/com.google.code.findbugs/jsr305/3.0.2/javax/annotation/Nonnull.html?is-external=true" title="class or interface in javax.annotation">@Nonnull</a>
<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a>&nbsp;read()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/beam/sdk/state/ReadableState.html#read--">ReadableState</a></code></span></div>
<div class="block">Read the current value, blocking until it is available.
<p>If there will be many calls to <a href="../../../../../org/apache/beam/sdk/state/ReadableState.html#read--"><code>ReadableState.read()</code></a> for different state in short succession, you
should first call <a href="../../../../../org/apache/beam/sdk/state/ReadableState.html#readLater--"><code>ReadableState.readLater()</code></a> for all of them so the reads can potentially be batched
(depending on the underlying implementation}.
<p>The returned object should be independent of the underlying state. Any direct modification
of the returned object should not modify state without going through the appropriate state
interface, and modification to the state should not be mirrored in the returned object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/state/ReadableState.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/beam/sdk/state/ReadableState.html" title="interface in org.apache.beam.sdk.state">ReadableState</a>&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getAccum--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccum</h4>
<pre><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>&nbsp;getAccum()</pre>
<div class="block">Read the merged accumulator for this state cell. It is implied that reading the state involves
reading the accumulator, so <a href="../../../../../org/apache/beam/sdk/state/CombiningState.html#readLater--"><code>readLater()</code></a> is sufficient to prefetch for this.</div>
</li>
</ul>
<a name="addAccum-java.lang.Object-">
<!-- -->
</a><a name="addAccum-AccumT-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAccum</h4>
<pre>void&nbsp;addAccum(<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>&nbsp;accum)</pre>
<div class="block">Add an accumulator to this state cell. Depending on implementation this may immediately merge
it with the previous accumulator, or may buffer this accumulator for a future merge.</div>
</li>
</ul>
<a name="mergeAccumulators-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mergeAccumulators</h4>
<pre><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>&nbsp;mergeAccumulators(java.lang.Iterable&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>&gt;&nbsp;accumulators)</pre>
<div class="block">Merge the given accumulators according to the underlying <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="class in org.apache.beam.sdk.transforms"><code>Combine.CombineFn</code></a>.</div>
</li>
</ul>
<a name="readLater--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>readLater</h4>
<pre><a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="interface in org.apache.beam.sdk.state">CombiningState</a>&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">InputT</a>,<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">AccumT</a>,<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a>&gt;&nbsp;readLater()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/beam/sdk/state/ReadableState.html#readLater--">ReadableState</a></code></span></div>
<div class="block">Indicate that the value will be read later.
<p>This allows an implementation to start an asynchronous prefetch or to include this state in
the next batch of reads.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/state/GroupingState.html#readLater--">readLater</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/beam/sdk/state/GroupingState.html" title="interface in org.apache.beam.sdk.state">GroupingState</a>&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">InputT</a>,<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/beam/sdk/state/ReadableState.html#readLater--">readLater</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/beam/sdk/state/ReadableState.html" title="interface in org.apache.beam.sdk.state">ReadableState</a>&lt;<a href="../../../../../org/apache/beam/sdk/state/CombiningState.html" title="type parameter in CombiningState">OutputT</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for convenient chaining</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/sdk/state/BagState.html" title="interface in org.apache.beam.sdk.state"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/beam/sdk/state/GroupingState.html" title="interface in org.apache.beam.sdk.state"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/beam/sdk/state/CombiningState.html" target="_top">Frames</a></li>
<li><a href="CombiningState.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>Nested&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>