blob: c813ddc381cf64a1672842929ac23d5fdca5864b [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 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AsyncTable.CoprocessorCallback (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<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="AsyncTable.CoprocessorCallback (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"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";
</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/AsyncTable.CoprocessorCallback.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/hadoop/hbase/client/AsyncTable.CheckAndMutateWithFilterBuilder.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorServiceBuilder.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" target="_top">Frames</a></li>
<li><a href="AsyncTable.CoprocessorCallback.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.hadoop.hbase.client</div>
<h2 title="Interface AsyncTable.CoprocessorCallback" class="title">Interface AsyncTable.CoprocessorCallback&lt;R&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing interface:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="type parameter in AsyncTable">C</a> extends <a href="../../../../../org/apache/hadoop/hbase/client/ScanResultConsumerBase.html" title="interface in org.apache.hadoop.hbase.client">ScanResultConsumerBase</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Public
public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.html#line.637">AsyncTable.CoprocessorCallback</a>&lt;R&gt;</pre>
<div class="block">The callback when we want to execute a coprocessor call on a range of regions.
<p>
As the locating itself also takes some time, the implementation may want to send rpc calls on
the fly, which means we do not know how many regions we have when we get the return value of
the rpc calls, so we need an <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onComplete--"><code>onComplete()</code></a> which is used to tell you that we have
passed all the return values to you(through the <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-R-"><code>onRegionComplete(RegionInfo, Object)</code></a>
or <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionError-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Throwable-"><code>onRegionError(RegionInfo, Throwable)</code></a> calls), i.e, there will be no
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-R-"><code>onRegionComplete(RegionInfo, Object)</code></a> or <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionError-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Throwable-"><code>onRegionError(RegionInfo, Throwable)</code></a>
calls in the future.
<p>
Here is a pseudo code to describe a typical implementation of a range coprocessor service
method to help you better understand how the <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable.CoprocessorCallback</code></a> will be called. The
<code>callback</code> in the pseudo code is our <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable.CoprocessorCallback</code></a>. And notice that the
<code>whenComplete</code> is <code>CompletableFuture.whenComplete</code>.
<pre>
locateThenCall(byte[] row) {
locate(row).whenComplete((location, locateError) -> {
if (locateError != null) {
callback.onError(locateError);
return;
}
incPendingCall();
region = location.getRegion();
if (region.getEndKey() > endKey) {
locateEnd = true;
} else {
locateThenCall(region.getEndKey());
}
sendCall().whenComplete((resp, error) -> {
if (error != null) {
callback.onRegionError(region, error);
} else {
callback.onRegionComplete(region, resp);
}
if (locateEnd && decPendingCallAndGet() == 0) {
callback.onComplete();
}
});
});
}
</pre></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/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onComplete--">onComplete</a></span>()</code>
<div class="block">Indicate that all responses of the regions have been notified by calling
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-R-"><code>onRegionComplete(RegionInfo, Object)</code></a> or
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionError-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Throwable-"><code>onRegionError(RegionInfo, Throwable)</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onError-java.lang.Throwable-">onError</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>
<div class="block">Indicate that we got an error which does not belong to any regions.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-R-">onRegionComplete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="type parameter in AsyncTable.CoprocessorCallback">R</a>&nbsp;resp)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionError-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Throwable-">onRegionError</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</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="onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Object-">
<!-- -->
</a><a name="onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-R-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onRegionComplete</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#line.643">onRegionComplete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="type parameter in AsyncTable.CoprocessorCallback">R</a>&nbsp;resp)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>region</code> - the region that the response belongs to</dd>
<dd><code>resp</code> - the response of the coprocessor call</dd>
</dl>
</li>
</ul>
<a name="onRegionError-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onRegionError</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#line.649">onRegionError</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>region</code> - the region that the error belongs to</dd>
<dd><code>error</code> - the response error of the coprocessor call</dd>
</dl>
</li>
</ul>
<a name="onComplete--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onComplete</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#line.656">onComplete</a>()</pre>
<div class="block">Indicate that all responses of the regions have been notified by calling
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionComplete-org.apache.hadoop.hbase.client.RegionInfo-R-"><code>onRegionComplete(RegionInfo, Object)</code></a> or
<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onRegionError-org.apache.hadoop.hbase.client.RegionInfo-java.lang.Throwable-"><code>onRegionError(RegionInfo, Throwable)</code></a>.</div>
</li>
</ul>
<a name="onError-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onError</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#line.661">onError</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
<div class="block">Indicate that we got an error which does not belong to any regions. Usually a locating error.</div>
</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/AsyncTable.CoprocessorCallback.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/hadoop/hbase/client/AsyncTable.CheckAndMutateWithFilterBuilder.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorServiceBuilder.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" target="_top">Frames</a></li>
<li><a href="AsyncTable.CoprocessorCallback.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; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>