blob: e76777a875a6fbcc052195ea0eb7a0a3140dbfa5 [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_77) on Mon Oct 24 00:05:44 UTC 2016 -->
<title>TWindowTimeImpl (Edgent v1.0.0)</title>
<meta name="date" content="2016-10-24">
<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="TWindowTimeImpl (Edgent v1.0.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All 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="class-use/TWindowTimeImpl.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">
<li><a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowImpl.html" title="class in org.apache.edgent.topology.spi.graph"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" target="_top">Frames</a></li>
<li><a href="TWindowTimeImpl.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.edgent.topology.spi.graph</div>
<h2 title="Class TWindowTimeImpl" class="title">Class TWindowTimeImpl&lt;T,K&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html" title="class in org.apache.edgent.topology.spi.graph">org.apache.edgent.topology.spi.graph.AbstractTWindow</a>&lt;T,K&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.edgent.topology.spi.graph.TWindowTimeImpl&lt;T,K&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a>, <a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;T,K&gt;</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">TWindowTimeImpl&lt;T,K&gt;</span>
extends <a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html" title="class in org.apache.edgent.topology.spi.graph">AbstractTWindow</a>&lt;T,K&gt;</pre>
</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="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>&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html#aggregate-org.apache.edgent.function.BiFunction-">aggregate</a></span>(<a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;java.util.List&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">T</a>&gt;,<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">K</a>,U&gt;&nbsp;processor)</code>
<div class="block">Window behaviour here is that:
Tuples are always inserted into the partition.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html#batch-org.apache.edgent.function.BiFunction-">batch</a></span>(<a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;java.util.List&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">T</a>&gt;,<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">K</a>,U&gt;&nbsp;batcher)</code>
<div class="block">Declares a stream that represents a batched aggregation of
partitions in this window.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html#getTime--">getTime</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.concurrent.TimeUnit</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html#getUnit--">getUnit</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.edgent.topology.spi.graph.AbstractTWindow">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.edgent.topology.spi.graph.<a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html" title="class in org.apache.edgent.topology.spi.graph">AbstractTWindow</a></h3>
<code><a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html#feeder--">feeder</a>, <a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html#getKeyFunction--">getKeyFunction</a>, <a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html#topology--">topology</a></code></li>
</ul>
<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="aggregate-org.apache.edgent.function.BiFunction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregate</h4>
<pre>public&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;aggregate(<a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;java.util.List&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">T</a>&gt;,<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">K</a>,U&gt;&nbsp;processor)</pre>
<div class="block">Window behaviour here is that:
Tuples are always inserted into the partition.
If before insertion the partition is empty the
a eviction is scheduled
After insertion the window is processed so that
any change triggers this continuous aggregation.
The evict determiner evicts any tuples that have
been in the window longer that the configured
size, and invokes the processing on any eviction.
Multiple tuples may have been evicted before processing.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - Tuple type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>processor</code> - Logic to aggregation a partition.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A stream that contains the latest aggregations of partitions in this window.</dd>
</dl>
</li>
</ul>
<a name="batch-org.apache.edgent.function.BiFunction-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>batch</h4>
<pre>public&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;batch(<a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;java.util.List&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">T</a>&gt;,<a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" title="type parameter in TWindowTimeImpl">K</a>,U&gt;&nbsp;batcher)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TWindow.html#batch-org.apache.edgent.function.BiFunction-">TWindow</a></code></span></div>
<div class="block">Declares a stream that represents a batched aggregation of
partitions in this window.
<P>
Each partition "batch" triggers an invocation of
<code>batcher.apply(tuples, key)</code>, where <code>tuples</code> is
a <code>List&lt;T&gt;</code> containing all the tuples in the partition in
insertion order from oldest to newest The list is stable
during the batcher invocation.
<UL>
<LI>Count-based window: a batch occurs when the partition is full.</LI>
<LI>Time-based window: a batch occurs every "time" period units. The
list will be empty if no tuples have been received during the period.</LI>
</UL>
A non-null <code>batcher</code> result is added to the returned stream.
The partition's contents are cleared after a batch is processed.
</P>
<P>
Thus the returned stream will contain a sequence of tuples where the
most recent tuple represents the most up to date aggregation of a
partition.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - Tuple type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>batcher</code> - Logic to aggregation a partition.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A stream that contains the latest aggregations of partitions in this window.</dd>
</dl>
</li>
</ul>
<a name="getTime--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTime</h4>
<pre>public&nbsp;long&nbsp;getTime()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the time</dd>
</dl>
</li>
</ul>
<a name="getUnit--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getUnit</h4>
<pre>public&nbsp;java.util.concurrent.TimeUnit&nbsp;getUnit()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the unit</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="class-use/TWindowTimeImpl.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 class="aboutLanguage"><a href="http://edgent.incubator.apache.org">Apache Edgent (incubating)</a></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/edgent/topology/spi/graph/TWindowImpl.html" title="class in org.apache.edgent.topology.spi.graph"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/edgent/topology/spi/graph/TWindowTimeImpl.html" target="_top">Frames</a></li>
<li><a href="TWindowTimeImpl.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 ======= -->
<p class="legalCopy"><small>Copyright &#169; 2016 The Apache Software Foundation. All Rights Reserved - 59dfbdf-20161024-0005</small></p>
</body>
</html>