blob: 319ad1c64e1b27cc32aa98821448049bfa237574 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.9.1) on Fri Sep 09 19:30:40 KST 2022 -->
<title>SourceVertex (Nemo Project 0.4 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-09-09">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.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.5.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SourceVertex (Nemo Project 0.4 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":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";
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/SourceVertex.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>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">org.apache.nemo.common.ir.vertex</a></div>
<h2 title="Class SourceVertex" class="title">Class SourceVertex&lt;O&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../dag/Vertex.html" title="class in org.apache.nemo.common.dag">org.apache.nemo.common.dag.Vertex</a></li>
<li>
<ul class="inheritance">
<li><a href="IRVertex.html" title="class in org.apache.nemo.common.ir.vertex">org.apache.nemo.common.ir.vertex.IRVertex</a></li>
<li>
<ul class="inheritance">
<li>org.apache.nemo.common.ir.vertex.SourceVertex&lt;O&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>O</code> - output type.</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.io.Serializable</code>, <code><a href="../../Cloneable.html" title="interface in org.apache.nemo.common">Cloneable</a>&lt;<a href="IRVertex.html" title="class in org.apache.nemo.common.ir.vertex">IRVertex</a>&gt;</code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../../../compiler/frontend/beam/source/BeamBoundedSourceVertex.html" title="class in org.apache.nemo.compiler.frontend.beam.source">BeamBoundedSourceVertex</a></code>, <code><a href="../../../compiler/frontend/beam/source/BeamUnboundedSourceVertex.html" title="class in org.apache.nemo.compiler.frontend.beam.source">BeamUnboundedSourceVertex</a></code>, <code><a href="CachedSourceVertex.html" title="class in org.apache.nemo.common.ir.vertex">CachedSourceVertex</a></code>, <code><a href="../../test/EmptyComponents.EmptySourceVertex.html" title="class in org.apache.nemo.common.test">EmptyComponents.EmptySourceVertex</a></code>, <code><a href="InMemorySourceVertex.html" title="class in org.apache.nemo.common.ir.vertex">InMemorySourceVertex</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">SourceVertex&lt;O&gt;</span>
extends <a href="IRVertex.html" title="class in org.apache.nemo.common.ir.vertex">IRVertex</a></pre>
<div class="block">IRVertex that reads data from an external source.
It is to be implemented in the compiler frontend with source-specific data fetching logic.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.nemo.common.ir.vertex.SourceVertex">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<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()">SourceVertex</a></span>()</code></th>
<td class="colLast">
<div class="block">Constructor for SourceVertex.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.nemo.common.ir.vertex.SourceVertex)">SourceVertex</a></span>&#8203;(<a href="SourceVertex.html" title="class in org.apache.nemo.common.ir.vertex">SourceVertex</a>&nbsp;that)</code></th>
<td class="colLast">
<div class="block">Copy Constructor for SourceVertex.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<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="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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearInternalStates()">clearInternalStates</a></span>()</code></th>
<td class="colLast">
<div class="block">Clears internal states, must be called after getReadables().</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEstimatedSizeBytes()">getEstimatedSizeBytes</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the estimated size of bytes.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract java.util.List&lt;<a href="../Readable.html" title="interface in org.apache.nemo.common.ir">Readable</a>&lt;<a href="SourceVertex.html" title="type parameter in SourceVertex">O</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReadables(int)">getReadables</a></span>&#8203;(int&nbsp;desiredNumOfSplits)</code></th>
<td class="colLast">
<div class="block">Gets parallel readables.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBounded()">isBounded</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.nemo.common.ir.vertex.IRVertex">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.nemo.common.ir.vertex.<a href="IRVertex.html" title="class in org.apache.nemo.common.ir.vertex">IRVertex</a></h3>
<code><a href="IRVertex.html#copyExecutionPropertiesTo(org.apache.nemo.common.ir.vertex.IRVertex)">copyExecutionPropertiesTo</a>, <a href="IRVertex.html#getExecutionProperties()">getExecutionProperties</a>, <a href="IRVertex.html#getIRVertexPropertiesAsJsonNode()">getIRVertexPropertiesAsJsonNode</a>, <a href="IRVertex.html#getPropertyValue(java.lang.Class)">getPropertyValue</a>, <a href="IRVertex.html#isUtilityVertex()">isUtilityVertex</a>, <a href="IRVertex.html#setProperty(org.apache.nemo.common.ir.executionproperty.VertexExecutionProperty)">setProperty</a>, <a href="IRVertex.html#setPropertyPermanently(org.apache.nemo.common.ir.executionproperty.VertexExecutionProperty)">setPropertyPermanently</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.nemo.common.dag.Vertex">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.nemo.common.dag.<a href="../../dag/Vertex.html" title="class in org.apache.nemo.common.dag">Vertex</a></h3>
<code><a href="../../dag/Vertex.html#getId()">getId</a>, <a href="../../dag/Vertex.html#getNumericId()">getNumericId</a>, <a href="../../dag/Vertex.html#getPropertiesAsJsonNode()">getPropertiesAsJsonNode</a></code></li>
</ul>
<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>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.nemo.common.Cloneable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.nemo.common.<a href="../../Cloneable.html" title="interface in org.apache.nemo.common">Cloneable</a></h3>
<code><a href="../../Cloneable.html#getClone()">getClone</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SourceVertex</h4>
<pre>public&nbsp;SourceVertex()</pre>
<div class="block">Constructor for SourceVertex.</div>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.nemo.common.ir.vertex.SourceVertex)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SourceVertex</h4>
<pre>public&nbsp;SourceVertex&#8203;(<a href="SourceVertex.html" title="class in org.apache.nemo.common.ir.vertex">SourceVertex</a>&nbsp;that)</pre>
<div class="block">Copy Constructor for SourceVertex.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - the source object for copying</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="isBounded()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBounded</h4>
<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;isBounded()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if it is bounded source</dd>
</dl>
</li>
</ul>
<a id="getReadables(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadables</h4>
<pre class="methodSignature">public abstract&nbsp;java.util.List&lt;<a href="../Readable.html" title="interface in org.apache.nemo.common.ir">Readable</a>&lt;<a href="SourceVertex.html" title="type parameter in SourceVertex">O</a>&gt;&gt;&nbsp;getReadables&#8203;(int&nbsp;desiredNumOfSplits)
throws java.lang.Exception</pre>
<div class="block">Gets parallel readables.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>desiredNumOfSplits</code> - number of splits desired.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of readables.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if fail to get.</dd>
</dl>
</li>
</ul>
<a id="getEstimatedSizeBytes()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEstimatedSizeBytes</h4>
<pre class="methodSignature">public abstract&nbsp;long&nbsp;getEstimatedSizeBytes()</pre>
<div class="block">Gets the estimated size of bytes. Returns 0L if not applicable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>size of input bytes.</dd>
</dl>
</li>
</ul>
<a id="clearInternalStates()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>clearInternalStates</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;clearInternalStates()</pre>
<div class="block">Clears internal states, must be called after getReadables().
Concretely, this clears the huge list of input splits held by objects like BeamBoundedSourceVertex before
sending the vertex to remote executors.
Between clearing states of an existing vertex, and creating a new vertex, we've chosen the former approach
to ensure consistent use of the same IRVertex object across the compiler, the master, and the executors.</div>
</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/SourceVertex.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>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>
<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>