blob: acdea46deb25c7308afe7c38b969e7c3dd3d10a3 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.18) on Wed Mar 01 02:01:42 GMT 2023 -->
<title>SpoutOutputCollector (Heron Java API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-03-01">
<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.6.0.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="SpoutOutputCollector (Heron Java API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":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";
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="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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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">backtype.storm.spout</a></div>
<h2 title="Class SpoutOutputCollector" class="title">Class SpoutOutputCollector</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>backtype.storm.spout.SpoutOutputCollector</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="SpoutOutputCollectorImpl.html" title="class in backtype.storm.spout">SpoutOutputCollectorImpl</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SpoutOutputCollector</span>
extends java.lang.Object
implements <a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a></pre>
<div class="block">This output collector exposes the API for emitting tuples from an <a href="../topology/IRichSpout.html" title="interface in backtype.storm.topology"><code>IRichSpout</code></a>.
The main difference between this output collector and <a href="../task/OutputCollector.html" title="class in backtype.storm.task"><code>OutputCollector</code></a>
for <a href="../topology/IRichBolt.html" title="interface in backtype.storm.topology"><code>IRichBolt</code></a> is that spouts can tag messages with ids so that they can be
acked or failed later on. This is the Spout portion of Storm's API to
guarantee that each message is fully processed at least once.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(backtype.storm.spout.ISpoutOutputCollector)">SpoutOutputCollector</a></span>&#8203;(<a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a>&nbsp;delegate)</code></th>
<td class="colLast">&nbsp;</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="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>java.util.List&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emit(java.lang.String,java.util.List)">emit</a></span>&#8203;(java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</code></th>
<td class="colLast">
<div class="block">Emits a tuple to the specified output stream with a null message id.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emit(java.lang.String,java.util.List,java.lang.Object)">emit</a></span>&#8203;(java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</code></th>
<td class="colLast">
<div class="block">Emits a new tuple to the specified output stream with the given message ID.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emit(java.util.List)">emit</a></span>&#8203;(java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</code></th>
<td class="colLast">
<div class="block">Emits a tuple to the default output stream with a null message id.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emit(java.util.List,java.lang.Object)">emit</a></span>&#8203;(java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</code></th>
<td class="colLast">
<div class="block">Emits a new tuple to the default output stream with the given message ID.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emitDirect(int,java.lang.String,java.util.List)">emitDirect</a></span>&#8203;(int&nbsp;taskId,
java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</code></th>
<td class="colLast">
<div class="block">Emits a tuple to the specified task on the specified output stream.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emitDirect(int,java.lang.String,java.util.List,java.lang.Object)">emitDirect</a></span>&#8203;(int&nbsp;taskId,
java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</code></th>
<td class="colLast">
<div class="block">Emits a tuple to the specified task on the specified output stream.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emitDirect(int,java.util.List)">emitDirect</a></span>&#8203;(int&nbsp;taskId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</code></th>
<td class="colLast">
<div class="block">Emits a tuple to the specified task on the default output stream.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emitDirect(int,java.util.List,java.lang.Object)">emitDirect</a></span>&#8203;(int&nbsp;taskId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</code></th>
<td class="colLast">
<div class="block">Emits a tuple to the specified task on the default output stream.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reportError(java.lang.Throwable)">reportError</a></span>&#8203;(java.lang.Throwable&nbsp;error)</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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(backtype.storm.spout.ISpoutOutputCollector)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SpoutOutputCollector</h4>
<pre>public&nbsp;SpoutOutputCollector&#8203;(<a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a>&nbsp;delegate)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="emit(java.lang.String,java.util.List,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emit</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;java.lang.Integer&gt;&nbsp;emit&#8203;(java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</pre>
<div class="block">Emits a new tuple to the specified output stream with the given message ID.
When Storm detects that this tuple has been fully processed, or has failed
to be fully processed, the spout will receive an ack or fail callback respectively
with the messageId as long as the messageId was not null. If the messageId was null,
Storm will not track the tuple and no callback will be received. The emitted values must be
immutable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISpoutOutputCollector.html#emit(java.lang.String,java.util.List,java.lang.Object)">emit</a></code>&nbsp;in interface&nbsp;<code><a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of task ids that this tuple was sent to</dd>
</dl>
</li>
</ul>
<a id="emit(java.util.List,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emit</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;java.lang.Integer&gt;&nbsp;emit&#8203;(java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</pre>
<div class="block">Emits a new tuple to the default output stream with the given message ID.
When Storm detects that this tuple has been fully processed, or has failed
to be fully processed, the spout will receive an ack or fail callback respectively
with the messageId as long as the messageId was not null. If the messageId was null,
Storm will not track the tuple and no callback will be received. The emitted values must be
immutable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of task ids that this tuple was sent to</dd>
</dl>
</li>
</ul>
<a id="emit(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emit</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;java.lang.Integer&gt;&nbsp;emit&#8203;(java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</pre>
<div class="block">Emits a tuple to the default output stream with a null message id. Storm will
not track this message so ack and fail will never be called for this tuple. The
emitted values must be immutable.</div>
</li>
</ul>
<a id="emit(java.lang.String,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emit</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;java.lang.Integer&gt;&nbsp;emit&#8203;(java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</pre>
<div class="block">Emits a tuple to the specified output stream with a null message id. Storm will
not track this message so ack and fail will never be called for this tuple. The
emitted values must be immutable.</div>
</li>
</ul>
<a id="emitDirect(int,java.lang.String,java.util.List,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emitDirect</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;emitDirect&#8203;(int&nbsp;taskId,
java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</pre>
<div class="block">Emits a tuple to the specified task on the specified output stream. This output
stream must have been declared as a direct stream, and the specified task must
use a direct grouping on this stream to receive the message. The emitted values must be
immutable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISpoutOutputCollector.html#emitDirect(int,java.lang.String,java.util.List,java.lang.Object)">emitDirect</a></code>&nbsp;in interface&nbsp;<code><a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a></code></dd>
</dl>
</li>
</ul>
<a id="emitDirect(int,java.util.List,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emitDirect</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;emitDirect&#8203;(int&nbsp;taskId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple,
java.lang.Object&nbsp;messageId)</pre>
<div class="block">Emits a tuple to the specified task on the default output stream. This output
stream must have been declared as a direct stream, and the specified task must
use a direct grouping on this stream to receive the message. The emitted values must be
immutable.</div>
</li>
</ul>
<a id="emitDirect(int,java.lang.String,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emitDirect</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;emitDirect&#8203;(int&nbsp;taskId,
java.lang.String&nbsp;streamId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</pre>
<div class="block">Emits a tuple to the specified task on the specified output stream. This output
stream must have been declared as a direct stream, and the specified task must
use a direct grouping on this stream to receive the message. The emitted values must be
immutable.
<p>
<p> Because no message id is specified, Storm will not track this message
so ack and fail will never be called for this tuple.</p></div>
</li>
</ul>
<a id="emitDirect(int,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emitDirect</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;emitDirect&#8203;(int&nbsp;taskId,
java.util.List&lt;java.lang.Object&gt;&nbsp;tuple)</pre>
<div class="block">Emits a tuple to the specified task on the default output stream. This output
stream must have been declared as a direct stream, and the specified task must
use a direct grouping on this stream to receive the message. The emitted values must be
immutable.
<p>
<p> Because no message id is specified, Storm will not track this message
so ack and fail will never be called for this tuple.</p></div>
</li>
</ul>
<a id="reportError(java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>reportError</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;reportError&#8203;(java.lang.Throwable&nbsp;error)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ISpoutOutputCollector.html#reportError(java.lang.Throwable)">reportError</a></code>&nbsp;in interface&nbsp;<code><a href="ISpoutOutputCollector.html" title="interface in backtype.storm.spout">ISpoutOutputCollector</a></code></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="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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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>