<!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_121) on Sun Jul 09 07:41:25 CEST 2017 -->
<title>TaskContext</title>
<meta name="date" content="2017-07-09">
<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="TaskContext";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":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/gearpump/streaming/task/TaskActorSpec.TestTask.html" title="class in org.apache.gearpump.streaming.task"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/gearpump/streaming/task/TaskContextData.html" title="class in org.apache.gearpump.streaming.task"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/gearpump/streaming/task/TaskContext.html" target="_top">Frames</a></li>
<li><a href="TaskContext.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.gearpump.streaming.task</div>
<h2 title="Interface TaskContext" class="title">Interface TaskContext</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/gearpump/streaming/task/TaskWrapper.html" title="class in org.apache.gearpump.streaming.task">TaskWrapper</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">TaskContext</span></pre>
<div class="block">This provides context information for a task.</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>akka.actor.ActorRef</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#actorOf-akka.actor.Props-">actorOf</a></span>(akka.actor.Props&nbsp;props)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>akka.actor.ActorRef</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#actorOf-akka.actor.Props-java.lang.String-">actorOf</a></span>(akka.actor.Props&nbsp;props,
       java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#appId--">appId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>akka.actor.ActorRef</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#appMaster--">appMaster</a></span>()</code>
<div class="block">The actorRef of AppMaster</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#appName--">appName</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#executorId--">executorId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#logger--">logger</a></span>()</code>
<div class="block">Logger is environment dependant, it should be provided by
 containing environment.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#output-org.apache.gearpump.Message-">output</a></span>(<a href="../../../../../org/apache/gearpump/Message.html" title="interface in org.apache.gearpump">Message</a>&nbsp;msg)</code>
<div class="block">This can be used to output messages to downstream tasks.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#parallelism--">parallelism</a></span>()</code>
<div class="block">The task parallelism</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>akka.actor.Cancellable</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#schedule-scala.concurrent.duration.FiniteDuration-scala.concurrent.duration.FiniteDuration-scala.Function0-">schedule</a></span>(scala.concurrent.duration.FiniteDuration&nbsp;initialDelay,
        scala.concurrent.duration.FiniteDuration&nbsp;interval,
        scala.Function0&lt;scala.runtime.BoxedUnit&gt;&nbsp;f)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>akka.actor.Cancellable</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#scheduleOnce-scala.concurrent.duration.FiniteDuration-scala.Function0-">scheduleOnce</a></span>(scala.concurrent.duration.FiniteDuration&nbsp;initialDelay,
            scala.Function0&lt;scala.runtime.BoxedUnit&gt;&nbsp;f)</code>
<div class="block">akka.actor.ActorRefProvider.scheduleOnce</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>akka.actor.ActorRef</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#self--">self</a></span>()</code>
<div class="block">Please don't use this if possible.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>akka.actor.ActorRef</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#sender--">sender</a></span>()</code>
<div class="block">For managed message(type of Message), the sender only serve as a unique Id,
 It's address is not something meaningful, you should not use this directly</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>akka.actor.ActorSystem</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#system--">system</a></span>()</code>
<div class="block">Please don't use this if possible</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/gearpump/streaming/task/TaskId.html" title="class in org.apache.gearpump.streaming.task">TaskId</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#taskId--">taskId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#updateWatermark-java.time.Instant-">updateWatermark</a></span>(java.time.Instant&nbsp;watermark)</code>
<div class="block">Update TaskActor with the processing progress (watermark)</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/gearpump/streaming/task/TaskContext.html#upstreamMinClock--">upstreamMinClock</a></span>()</code>
<div class="block">Retrieves upstream min clock from TaskActor</div>
</td>
</tr>
</table>
</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="taskId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>taskId</h4>
<pre><a href="../../../../../org/apache/gearpump/streaming/task/TaskId.html" title="class in org.apache.gearpump.streaming.task">TaskId</a>&nbsp;taskId()</pre>
</li>
</ul>
<a name="executorId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executorId</h4>
<pre>int&nbsp;executorId()</pre>
</li>
</ul>
<a name="appId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>appId</h4>
<pre>int&nbsp;appId()</pre>
</li>
</ul>
<a name="appName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>appName</h4>
<pre>java.lang.String&nbsp;appName()</pre>
</li>
</ul>
<a name="appMaster--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>appMaster</h4>
<pre>akka.actor.ActorRef&nbsp;appMaster()</pre>
<div class="block">The actorRef of AppMaster</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>application master's actor reference</dd>
</dl>
</li>
</ul>
<a name="parallelism--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parallelism</h4>
<pre>int&nbsp;parallelism()</pre>
<div class="block">The task parallelism
 <p>
 For example, we can create 3 source tasks, and 3 sink tasks,
 the task parallelism is 3 for each.
 <p>
 This can be useful when reading from partitioned data source.
 For example, for kafka, there may be 10 partitions, if we have
 parallelism of 2 for this task, then each task will be responsible
 to read data from 5 partitions.
 <p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parallelism level</dd>
</dl>
</li>
</ul>
<a name="self--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>self</h4>
<pre>akka.actor.ActorRef&nbsp;self()</pre>
<div class="block">Please don't use this if possible.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>self actor ref</dd>
</dl>
</li>
</ul>
<a name="system--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>system</h4>
<pre>akka.actor.ActorSystem&nbsp;system()</pre>
<div class="block">Please don't use this if possible</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the actor system</dd>
</dl>
</li>
</ul>
<a name="output-org.apache.gearpump.Message-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>output</h4>
<pre>void&nbsp;output(<a href="../../../../../org/apache/gearpump/Message.html" title="interface in org.apache.gearpump">Message</a>&nbsp;msg)</pre>
<div class="block">This can be used to output messages to downstream tasks. The data shuffling rule
 can be decided by Partitioner.
 <p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>msg</code> - message to output</dd>
</dl>
</li>
</ul>
<a name="actorOf-akka.actor.Props-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>actorOf</h4>
<pre>akka.actor.ActorRef&nbsp;actorOf(akka.actor.Props&nbsp;props)</pre>
</li>
</ul>
<a name="actorOf-akka.actor.Props-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>actorOf</h4>
<pre>akka.actor.ActorRef&nbsp;actorOf(akka.actor.Props&nbsp;props,
                            java.lang.String&nbsp;name)</pre>
</li>
</ul>
<a name="schedule-scala.concurrent.duration.FiniteDuration-scala.concurrent.duration.FiniteDuration-scala.Function0-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schedule</h4>
<pre>akka.actor.Cancellable&nbsp;schedule(scala.concurrent.duration.FiniteDuration&nbsp;initialDelay,
                                scala.concurrent.duration.FiniteDuration&nbsp;interval,
                                scala.Function0&lt;scala.runtime.BoxedUnit&gt;&nbsp;f)</pre>
</li>
</ul>
<a name="scheduleOnce-scala.concurrent.duration.FiniteDuration-scala.Function0-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduleOnce</h4>
<pre>akka.actor.Cancellable&nbsp;scheduleOnce(scala.concurrent.duration.FiniteDuration&nbsp;initialDelay,
                                    scala.Function0&lt;scala.runtime.BoxedUnit&gt;&nbsp;f)</pre>
<div class="block">akka.actor.ActorRefProvider.scheduleOnce
 <p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initialDelay</code> - the initial delay</dd>
<dd><code>f</code> - the function to execute after initial delay</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the executable</dd>
</dl>
</li>
</ul>
<a name="sender--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sender</h4>
<pre>akka.actor.ActorRef&nbsp;sender()</pre>
<div class="block">For managed message(type of Message), the sender only serve as a unique Id,
 It's address is not something meaningful, you should not use this directly
 <p>
 For unmanaged message, the sender represent the sender ActorRef</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>sender</dd>
</dl>
</li>
</ul>
<a name="upstreamMinClock--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>upstreamMinClock</h4>
<pre>long&nbsp;upstreamMinClock()</pre>
<div class="block">Retrieves upstream min clock from TaskActor
 <p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the min clock</dd>
</dl>
</li>
</ul>
<a name="updateWatermark-java.time.Instant-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateWatermark</h4>
<pre>void&nbsp;updateWatermark(java.time.Instant&nbsp;watermark)</pre>
<div class="block">Update TaskActor with the processing progress (watermark)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>watermark</code> - (undocumented)</dd>
</dl>
</li>
</ul>
<a name="logger--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>logger</h4>
<pre>org.slf4j.Logger&nbsp;logger()</pre>
<div class="block">Logger is environment dependant, it should be provided by
 containing environment.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>(undocumented)</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/gearpump/streaming/task/TaskActorSpec.TestTask.html" title="class in org.apache.gearpump.streaming.task"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/gearpump/streaming/task/TaskContextData.html" title="class in org.apache.gearpump.streaming.task"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/gearpump/streaming/task/TaskContext.html" target="_top">Frames</a></li>
<li><a href="TaskContext.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>
