Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/47be635d
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/47be635d
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/47be635d

Branch: refs/heads/asf-site
Commit: 47be635d181b64a0d68e0b0fa4b011b2b3d15158
Parents: 8d17471
Author: jenkins <bui...@apache.org>
Authored: Thu Aug 10 15:05:51 2017 +0000
Committer: jenkins <bui...@apache.org>
Committed: Thu Aug 10 15:05:51 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                |    6 +-
 apidocs/index-all.html                          |    6 +-
 .../RawScanResultConsumer.ScanController.html   |   44 +-
 .../RawScanResultConsumer.ScanResumer.html      |    4 +-
 .../hbase/client/RawScanResultConsumer.html     |   14 +-
 .../hadoop/hbase/client/class-use/Cursor.html   |   15 +
 .../hadoop/hbase/client/package-summary.html    |    2 +-
 .../apache/hadoop/hbase/client/package-use.html |    2 +-
 .../RawScanResultConsumer.ScanController.html   |  208 +-
 .../RawScanResultConsumer.ScanResumer.html      |  208 +-
 .../hbase/client/RawScanResultConsumer.html     |  208 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       | 5672 ++++++++-------
 checkstyle.rss                                  |   12 +-
 coc.html                                        |    4 +-
 cygwin.html                                     |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/constant-values.html                 |   60 +-
 devapidocs/index-all.html                       |   74 +-
 .../hadoop/hbase/backup/package-tree.html       |    2 +-
 .../org/apache/hadoop/hbase/class-use/Cell.html |   40 +-
 .../class-use/InterfaceAudience.Public.html     |    2 +-
 .../hbase/classification/package-tree.html      |    6 +-
 ...ionRpcRetryingCaller.ScanControllerImpl.html |   74 +-
 ...onRpcRetryingCaller.ScanControllerState.html |   14 +-
 ...RegionRpcRetryingCaller.ScanResumerImpl.html |   20 +-
 ...egionRpcRetryingCaller.ScanResumerState.html |   12 +-
 .../AsyncScanSingleRegionRpcRetryingCaller.html |   88 +-
 .../RawScanResultConsumer.ScanController.html   |   44 +-
 .../RawScanResultConsumer.ScanResumer.html      |    4 +-
 .../hbase/client/RawScanResultConsumer.html     |   14 +-
 .../hadoop/hbase/client/class-use/Cursor.html   |   32 +
 .../hadoop/hbase/client/package-summary.html    |    2 +-
 .../hadoop/hbase/client/package-tree.html       |   26 +-
 .../apache/hadoop/hbase/client/package-use.html |    4 +-
 .../hadoop/hbase/filter/package-tree.html       |   10 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    8 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |    2 +-
 .../hadoop/hbase/master/package-tree.html       |    4 +-
 .../hbase/monitoring/MonitoredRPCHandler.html   |    2 +-
 .../monitoring/MonitoredRPCHandlerImpl.html     |    4 +-
 .../hadoop/hbase/monitoring/MonitoredTask.html  |   62 +-
 .../hbase/monitoring/MonitoredTaskImpl.html     |  115 +-
 .../monitoring/TaskMonitor.MonitorRunnable.html |  323 +
 ...askMonitor.PassthroughInvocationHandler.html |   12 +-
 .../TaskMonitor.TaskAndWeakRefPair.html         |   12 +-
 .../hadoop/hbase/monitoring/TaskMonitor.html    |  265 +-
 .../class-use/TaskMonitor.MonitorRunnable.html  |  125 +
 .../hbase/monitoring/package-summary.html       |    6 +-
 .../hadoop/hbase/monitoring/package-tree.html   |    1 +
 .../org/apache/hadoop/hbase/package-tree.html   |   14 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    6 +-
 .../hadoop/hbase/quotas/package-tree.html       |    8 +-
 .../hbase/regionserver/MobStoreScanner.html     |    2 +-
 .../regionserver/NoLimitScannerContext.html     |    2 +-
 .../regionserver/RSRpcServices.LogDelegate.html |    4 +-
 ...SRpcServices.RegionScannerCloseCallBack.html |    8 +-
 .../RSRpcServices.RegionScannerHolder.html      |   24 +-
 ...pcServices.RegionScannerShippedCallBack.html |   12 +-
 ...RpcServices.RegionScannersCloseCallBack.html |   10 +-
 .../RSRpcServices.ScannerListener.html          |    8 +-
 .../hbase/regionserver/RSRpcServices.html       |  224 +-
 .../regionserver/ReversedMobStoreScanner.html   |    2 +-
 .../regionserver/ReversedStoreScanner.html      |    2 +-
 .../regionserver/ScannerContext.Builder.html    |   24 +-
 .../ScannerContext.LimitFields.html             |   62 +-
 .../regionserver/ScannerContext.LimitScope.html |   16 +-
 .../regionserver/ScannerContext.NextState.html  |   32 +-
 .../hbase/regionserver/ScannerContext.html      |  126 +-
 ...StoreScanner.StoreScannerCompactionRace.html |   12 +-
 .../hadoop/hbase/regionserver/StoreScanner.html |  172 +-
 .../hadoop/hbase/regionserver/package-tree.html |   16 +-
 .../regionserver/querymatcher/package-tree.html |    2 +-
 .../hbase/regionserver/wal/package-tree.html    |    2 +-
 .../hbase/security/access/package-tree.html     |    2 +-
 .../hadoop/hbase/security/package-tree.html     |    2 +-
 .../hadoop/hbase/thrift/package-tree.html       |    4 +-
 .../apache/hadoop/hbase/util/package-tree.html  |   10 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    2 +-
 devapidocs/overview-tree.html                   |    1 +
 .../org/apache/hadoop/hbase/Version.html        |    6 +-
 ...ionRpcRetryingCaller.ScanControllerImpl.html | 1018 +--
 ...onRpcRetryingCaller.ScanControllerState.html | 1018 +--
 ...RegionRpcRetryingCaller.ScanResumerImpl.html | 1018 +--
 ...egionRpcRetryingCaller.ScanResumerState.html | 1018 +--
 .../AsyncScanSingleRegionRpcRetryingCaller.html | 1018 +--
 .../RawScanResultConsumer.ScanController.html   |  208 +-
 .../RawScanResultConsumer.ScanResumer.html      |  208 +-
 .../hbase/client/RawScanResultConsumer.html     |  208 +-
 .../monitoring/MonitoredRPCHandlerImpl.html     |   12 +-
 .../hbase/monitoring/MonitoredTask.State.html   |   76 +-
 .../hadoop/hbase/monitoring/MonitoredTask.html  |   76 +-
 .../hbase/monitoring/MonitoredTaskImpl.html     |  300 +-
 .../monitoring/TaskMonitor.MonitorRunnable.html |  355 +
 ...askMonitor.PassthroughInvocationHandler.html |  436 +-
 .../TaskMonitor.TaskAndWeakRefPair.html         |  436 +-
 .../hadoop/hbase/monitoring/TaskMonitor.html    |  436 +-
 .../regionserver/RSRpcServices.LogDelegate.html | 6833 +++++++++---------
 ...SRpcServices.RegionScannerCloseCallBack.html | 6833 +++++++++---------
 .../RSRpcServices.RegionScannerHolder.html      | 6833 +++++++++---------
 ...pcServices.RegionScannerShippedCallBack.html | 6833 +++++++++---------
 ...RpcServices.RegionScannersCloseCallBack.html | 6833 +++++++++---------
 .../RSRpcServices.ScannerListener.html          | 6833 +++++++++---------
 .../hbase/regionserver/RSRpcServices.html       | 6833 +++++++++---------
 .../regionserver/ScannerContext.Builder.html    | 1344 ++--
 .../ScannerContext.LimitFields.html             | 1344 ++--
 .../regionserver/ScannerContext.LimitScope.html | 1344 ++--
 .../regionserver/ScannerContext.NextState.html  | 1344 ++--
 .../hbase/regionserver/ScannerContext.html      | 1344 ++--
 ...StoreScanner.StoreScannerCompactionRace.html | 2239 +++---
 .../hadoop/hbase/regionserver/StoreScanner.html | 2239 +++---
 export_control.html                             |    4 +-
 hbase-annotations/checkstyle.html               |    4 +-
 hbase-annotations/dependencies.html             |    4 +-
 hbase-annotations/dependency-convergence.html   |    4 +-
 hbase-annotations/dependency-info.html          |    4 +-
 hbase-annotations/dependency-management.html    |    4 +-
 hbase-annotations/index.html                    |    4 +-
 hbase-annotations/integration.html              |    4 +-
 hbase-annotations/issue-tracking.html           |    4 +-
 hbase-annotations/license.html                  |    4 +-
 hbase-annotations/mail-lists.html               |    4 +-
 hbase-annotations/plugin-management.html        |    4 +-
 hbase-annotations/plugins.html                  |    4 +-
 hbase-annotations/project-info.html             |    4 +-
 hbase-annotations/project-reports.html          |    4 +-
 hbase-annotations/project-summary.html          |    4 +-
 hbase-annotations/source-repository.html        |    4 +-
 hbase-annotations/team-list.html                |    4 +-
 hbase-archetypes/dependencies.html              |    4 +-
 hbase-archetypes/dependency-convergence.html    |    4 +-
 hbase-archetypes/dependency-info.html           |    4 +-
 hbase-archetypes/dependency-management.html     |    4 +-
 .../hbase-archetype-builder/dependencies.html   |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-archetype-builder/index.html          |    4 +-
 .../hbase-archetype-builder/integration.html    |    4 +-
 .../hbase-archetype-builder/issue-tracking.html |    4 +-
 .../hbase-archetype-builder/license.html        |    4 +-
 .../hbase-archetype-builder/mail-lists.html     |    4 +-
 .../plugin-management.html                      |    4 +-
 .../hbase-archetype-builder/plugins.html        |    4 +-
 .../hbase-archetype-builder/project-info.html   |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 .../hbase-archetype-builder/team-list.html      |    4 +-
 .../hbase-client-project/checkstyle.html        |    4 +-
 .../hbase-client-project/dependencies.html      |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../hbase-client-project/dependency-info.html   |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-client-project/index.html             |    4 +-
 .../hbase-client-project/integration.html       |    4 +-
 .../hbase-client-project/issue-tracking.html    |    4 +-
 .../hbase-client-project/license.html           |    4 +-
 .../hbase-client-project/mail-lists.html        |    4 +-
 .../hbase-client-project/plugin-management.html |    4 +-
 .../hbase-client-project/plugins.html           |    4 +-
 .../hbase-client-project/project-info.html      |    4 +-
 .../hbase-client-project/project-reports.html   |    4 +-
 .../hbase-client-project/project-summary.html   |    4 +-
 .../hbase-client-project/source-repository.html |    4 +-
 .../hbase-client-project/team-list.html         |    4 +-
 .../hbase-shaded-client-project/checkstyle.html |    4 +-
 .../dependencies.html                           |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-shaded-client-project/index.html      |    4 +-
 .../integration.html                            |    4 +-
 .../issue-tracking.html                         |    4 +-
 .../hbase-shaded-client-project/license.html    |    4 +-
 .../hbase-shaded-client-project/mail-lists.html |    4 +-
 .../plugin-management.html                      |    4 +-
 .../hbase-shaded-client-project/plugins.html    |    4 +-
 .../project-info.html                           |    4 +-
 .../project-reports.html                        |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 .../hbase-shaded-client-project/team-list.html  |    4 +-
 hbase-archetypes/index.html                     |    4 +-
 hbase-archetypes/integration.html               |    4 +-
 hbase-archetypes/issue-tracking.html            |    4 +-
 hbase-archetypes/license.html                   |    4 +-
 hbase-archetypes/mail-lists.html                |    4 +-
 hbase-archetypes/plugin-management.html         |    4 +-
 hbase-archetypes/plugins.html                   |    4 +-
 hbase-archetypes/project-info.html              |    4 +-
 hbase-archetypes/project-summary.html           |    4 +-
 hbase-archetypes/source-repository.html         |    4 +-
 hbase-archetypes/team-list.html                 |    4 +-
 hbase-spark/checkstyle.html                     |    4 +-
 hbase-spark/dependencies.html                   |    4 +-
 hbase-spark/dependency-convergence.html         |    4 +-
 hbase-spark/dependency-info.html                |    4 +-
 hbase-spark/dependency-management.html          |    4 +-
 hbase-spark/index.html                          |    4 +-
 hbase-spark/integration.html                    |    4 +-
 hbase-spark/issue-tracking.html                 |    4 +-
 hbase-spark/license.html                        |    4 +-
 hbase-spark/mail-lists.html                     |    4 +-
 hbase-spark/plugin-management.html              |    4 +-
 hbase-spark/plugins.html                        |    4 +-
 hbase-spark/project-info.html                   |    4 +-
 hbase-spark/project-reports.html                |    4 +-
 hbase-spark/project-summary.html                |    4 +-
 hbase-spark/source-repository.html              |    4 +-
 hbase-spark/team-list.html                      |    4 +-
 index.html                                      |    4 +-
 integration.html                                |    4 +-
 issue-tracking.html                             |    4 +-
 license.html                                    |  208 +-
 mail-lists.html                                 |    4 +-
 metrics.html                                    |    4 +-
 old_news.html                                   |    4 +-
 plugin-management.html                          |    4 +-
 plugins.html                                    |    4 +-
 poweredbyhbase.html                             |    4 +-
 project-info.html                               |    4 +-
 project-reports.html                            |    4 +-
 project-summary.html                            |    4 +-
 pseudo-distributed.html                         |    4 +-
 replication.html                                |    4 +-
 resources.html                                  |    4 +-
 source-repository.html                          |    4 +-
 sponsors.html                                   |    4 +-
 supportingprojects.html                         |    4 +-
 team-list.html                                  |    4 +-
 testdevapidocs/allclasses-frame.html            |    6 +-
 testdevapidocs/allclasses-noframe.html          |    6 +-
 testdevapidocs/constant-values.html             |   38 +-
 testdevapidocs/index-all.html                   |  132 +-
 .../hbase/class-use/HBaseTestingUtility.html    |  222 +-
 .../client/AbstractTestAsyncTableScan.html      |    4 +-
 .../AbstractTestScanCursor.SparseFilter.html    |  391 +
 .../hbase/client/AbstractTestScanCursor.html    |  619 ++
 .../hadoop/hbase/client/AbstractTestShell.html  |    4 +-
 ...IntoShippedBlocks.CompactorStoreScanner.html |    2 +-
 ...onInReseekRegionObserver.MyStoreScanner.html |    2 +-
 .../hadoop/hbase/client/TestPutWriteToWal.html  |    4 +-
 .../hbase/client/TestRawAsyncScanCursor.html    |  367 +
 .../TestRawAsyncTableLimitedScanWithFilter.html |    4 +-
 .../apache/hadoop/hbase/client/TestScan.html    |    4 +-
 .../hadoop/hbase/client/TestScanCursor.html     |  355 +
 .../client/TestScannersFromClientSide.html      |    4 +-
 .../AbstractTestScanCursor.SparseFilter.html    |  125 +
 .../class-use/AbstractTestScanCursor.html       |  169 +
 .../class-use/TestRawAsyncScanCursor.html       |  125 +
 .../hbase/client/class-use/TestScanCursor.html  |  125 +
 .../hadoop/hbase/client/package-frame.html      |    4 +
 .../hadoop/hbase/client/package-summary.html    |   54 +-
 .../hadoop/hbase/client/package-tree.html       |    7 +
 .../apache/hadoop/hbase/client/package-use.html |   47 +-
 .../hbase/monitoring/TestTaskMonitor.html       |   34 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    2 +-
 .../hadoop/hbase/regionserver/TestScanner.html  |    4 +-
 .../TestScannerCursor.SparseFilter.html         |  350 -
 .../hbase/regionserver/TestScannerCursor.html   |  638 --
 .../TestScannerHeartbeatMessages.html           |    4 +-
 .../TestStoreScanner.CellGridStoreScanner.html  |    2 +-
 ....CellWithVersionsNoOptimizeStoreScanner.html |    2 +-
 ...oreScanner.CellWithVersionsStoreScanner.html |    2 +-
 .../TestScannerCursor.SparseFilter.html         |  125 -
 .../class-use/TestScannerCursor.html            |  125 -
 .../hbase/regionserver/package-frame.html       |    2 -
 .../hbase/regionserver/package-summary.html     |    8 -
 .../hadoop/hbase/regionserver/package-tree.html |    8 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    2 +-
 testdevapidocs/overview-tree.html               |    9 +-
 .../AbstractTestScanCursor.SparseFilter.html    |  218 +
 .../hbase/client/AbstractTestScanCursor.html    |  218 +
 .../hbase/client/TestRawAsyncScanCursor.html    |  179 +
 .../hadoop/hbase/client/TestScanCursor.html     |  162 +
 .../hbase/monitoring/TestTaskMonitor.html       |  226 +-
 .../TestScannerCursor.SparseFilter.html         |  263 -
 .../hbase/regionserver/TestScannerCursor.html   |  263 -
 284 files changed, 42350 insertions(+), 39597 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index aeaa904..860277d 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170809" />
+    <meta name="Date-Revision-yyyymmdd" content="20170810" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,7 @@ under the License. -->
                         <a href="https://www.apache.org/";>The Apache Software 
Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-08-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-08-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index f89b0fc..2ba9414 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20170809184114+00'00')
-/CreationDate (D:20170809184114+00'00')
+/ModDate (D:20170810144502+00'00')
+/CreationDate (D:20170810144502+00'00')
 >>
 endobj
 2 0 obj
@@ -27334,7 +27334,7 @@ endobj
 endobj
 136 0 obj
 << /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 25 0 R (__indexterm-6955510) 3262 0 R 
(__indexterm-6957760) 3264 0 R (__indexterm-6959822) 3265 0 R 
(__indexterm-6961696) 3266 0 R (acid) 891 0 R 
(add-metric-name-and-function-to-hadoop-compat-interface) 3361 0 R 
(add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3362 0 R 
(add.metrics) 3359 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3596 
0 R (adding.new.node) 2859 0 R]
+/Names [(__anchor-top) 25 0 R (__indexterm-6955508) 3262 0 R 
(__indexterm-6957758) 3264 0 R (__indexterm-6959820) 3265 0 R 
(__indexterm-6961694) 3266 0 R (acid) 891 0 R 
(add-metric-name-and-function-to-hadoop-compat-interface) 3361 0 R 
(add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3362 0 R 
(add.metrics) 3359 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3596 
0 R (adding.new.node) 2859 0 R]
 >>
 endobj
 137 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 209ec91..0dc7f76 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -2719,6 +2719,10 @@
  <a 
href="org/apache/hadoop/hbase/client/Result.html#isCursor--"><code>Result.isCursor()</code></a>
  <a 
href="org/apache/hadoop/hbase/client/Result.html#getCursor--"><code>Result.getCursor()</code></a></div>
 </dd>
+<dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#cursor--">cursor()</a></span>
 - Method in interface org.apache.hadoop.hbase.client.<a 
href="org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html" 
title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a></dt>
+<dd>
+<div class="block">Get the scan cursor if available.</div>
+</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/rest/Constants.html#CUSTOM_FILTERS">CUSTOM_FILTERS</a></span>
 - Static variable in interface org.apache.hadoop.hbase.rest.<a 
href="org/apache/hadoop/hbase/rest/Constants.html" title="interface in 
org.apache.hadoop.hbase.rest">Constants</a></dt>
 <dd>&nbsp;</dd>
 </dl>
@@ -12687,7 +12691,7 @@ Input/OutputFormats, a table indexing MapReduce job, 
and utility methods.</div>
 </dd>
 <dt><a 
href="org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html" 
title="interface in org.apache.hadoop.hbase.client"><span 
class="typeNameLink">RawScanResultConsumer.ScanController</span></a> - 
Interface in <a 
href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>
-<div class="block">Used to suspend or stop a scan.</div>
+<div class="block">Used to suspend or stop a scan, or get a scan cursor if 
available.</div>
 </dd>
 <dt><a 
href="org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html" 
title="interface in org.apache.hadoop.hbase.client"><span 
class="typeNameLink">RawScanResultConsumer.ScanResumer</span></a> - Interface 
in <a 
href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
----------------------------------------------------------------------
diff --git 
a/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
 
b/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
index aa9f8f6..551a67d 100644
--- 
a/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
+++ 
b/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6};
+var methods = {"i0":6,"i1":6,"i2":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance 
Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -106,15 +106,15 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.60">RawScanResultConsumer.ScanController</a></pre>
-<div class="block">Used to suspend or stop a scan.
+public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.62">RawScanResultConsumer.ScanController</a></pre>
+<div class="block">Used to suspend or stop a scan, or get a scan cursor if 
available.
  <p>
- Notice that, you should only call the methods below inside onNext or 
onHeartbeat method. A
- IllegalStateException will be thrown if you call them at other places.
+ Notice that, you should only call the <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#suspend--"><code>suspend()</code></a>
 or <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#terminate--"><code>terminate()</code></a>
 inside onNext
+ or onHeartbeat method. A IllegalStateException will be thrown if you call 
them at other places.
  <p>
- You can only call one of the methods below, i.e., call suspend or 
terminate(of course you are
- free to not call them both), and the methods are not reentrant. A 
IllegalStateException will be
- thrown if you have already called one of the methods.</div>
+ You can only call one of the <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#suspend--"><code>suspend()</code></a>
 and <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#terminate--"><code>terminate()</code></a>
 methods(of course you
+ are free to not call them both), and the methods are not reentrant. An 
IllegalStateException
+ will be thrown if you have already called one of the methods.</div>
 </li>
 </ul>
 </div>
@@ -134,12 +134,18 @@ public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code><a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class 
in org.apache.hadoop.hbase.client">Cursor</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#cursor--">cursor</a></span>()</code>
+<div class="block">Get the scan cursor if available.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanResumer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#suspend--">suspend</a></span>()</code>
 <div class="block">Suspend the scan.</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<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/RawScanResultConsumer.ScanController.html#terminate--">terminate</a></span>()</code>
 <div class="block">Terminate the scan.</div>
@@ -166,7 +172,7 @@ public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase
 <ul class="blockList">
 <li class="blockList">
 <h4>suspend</h4>
-<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanResumer</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#line.69">suspend</a>()</pre>
+<pre><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanResumer</a>&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#line.71">suspend</a>()</pre>
 <div class="block">Suspend the scan.
  <p>
  This means we will stop fetching data in background, i.e., will not call 
onNext any more
@@ -180,16 +186,30 @@ public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase
 <a name="terminate--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>terminate</h4>
-<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#line.77">terminate</a>()</pre>
+<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#line.79">terminate</a>()</pre>
 <div class="block">Terminate the scan.
  <p>
  This is useful when you have got enough results and want to stop the scan in 
onNext method,
  or you want to stop the scan in onHeartbeat method because it has spent too 
many time.</div>
 </li>
 </ul>
+<a name="cursor--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cursor</h4>
+<pre><a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class 
in org.apache.hadoop.hbase.client">Cursor</a>&gt;&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#line.85">cursor</a>()</pre>
+<div class="block">Get the scan cursor if available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The scan cursor.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
----------------------------------------------------------------------
diff --git 
a/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html 
b/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
index 00a65ba..da5dec0 100644
--- 
a/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
+++ 
b/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
@@ -106,7 +106,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.40">RawScanResultConsumer.ScanResumer</a></pre>
+public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.42">RawScanResultConsumer.ScanResumer</a></pre>
 <div class="block">Used to resume a scan.</div>
 </li>
 </ul>
@@ -153,7 +153,7 @@ public static interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase
 <ul class="blockListLast">
 <li class="blockList">
 <h4>resume</h4>
-<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html#line.46">resume</a>()</pre>
+<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html#line.48">resume</a>()</pre>
 <div class="block">Resume the scan. You are free to call it multiple time but 
only the first call will take
  effect.</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.html 
b/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.html
index 8993ca2..fbf7f4d 100644
--- a/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.html
+++ b/apidocs/org/apache/hadoop/hbase/client/RawScanResultConsumer.html
@@ -102,7 +102,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.34">RawScanResultConsumer</a></pre>
+public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.36">RawScanResultConsumer</a></pre>
 <div class="block">Receives <a 
href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class 
in org.apache.hadoop.hbase.client"><code>Result</code></a> for an asynchronous 
scan.
  <p>
  Notice that, the <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.html#onNext-org.apache.hadoop.hbase.client.Result:A-org.apache.hadoop.hbase.client.RawScanResultConsumer.ScanController-"><code>onNext(Result[],
 ScanController)</code></a> method will be called in the thread
@@ -131,7 +131,7 @@ public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client
 <tr class="altColor">
 <td class="colFirst"><code>static interface&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a></span></code>
-<div class="block">Used to suspend or stop a scan.</div>
+<div class="block">Used to suspend or stop a scan, or get a scan cursor if 
available.</div>
 </td>
 </tr>
 <tr class="rowColor">
@@ -210,7 +210,7 @@ public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>onNext</h4>
-<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.87">onNext</a>(<a
 href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class 
in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;results,
+<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.95">onNext</a>(<a
 href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class 
in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;results,
             <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a>&nbsp;controller)</pre>
 <div class="block">Indicate that we have receive some data.</div>
 <dl>
@@ -228,7 +228,7 @@ public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>onHeartbeat</h4>
-<pre>default&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.98">onHeartbeat</a>(<a
 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a>&nbsp;controller)</pre>
+<pre>default&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.106">onHeartbeat</a>(<a
 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a>&nbsp;controller)</pre>
 <div class="block">Indicate that there is an heartbeat message but we have not 
cumulated enough cells to call
  onNext.
  <p>
@@ -247,7 +247,7 @@ public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>onError</h4>
-<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.106">onError</a>(<a
 
href="http://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>
+<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.114">onError</a>(<a
 
href="http://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 hit an unrecoverable error and the scan 
operation is terminated.
  <p>
  We will not call <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.html#onComplete--"><code>onComplete()</code></a>
 after calling <a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.html#onError-java.lang.Throwable-"><code>onError(Throwable)</code></a>.</div>
@@ -259,7 +259,7 @@ public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>onComplete</h4>
-<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.111">onComplete</a>()</pre>
+<pre>void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.119">onComplete</a>()</pre>
 <div class="block">Indicate that the scan operation is completed 
normally.</div>
 </li>
 </ul>
@@ -269,7 +269,7 @@ public interface <a 
href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockListLast">
 <li class="blockList">
 <h4>onScanMetricsCreated</h4>
-<pre>default&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.119">onScanMetricsCreated</a>(org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;scanMetrics)</pre>
+<pre>default&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html#line.127">onScanMetricsCreated</a>(org.apache.hadoop.hbase.client.metrics.ScanMetrics&nbsp;scanMetrics)</pre>
 <div class="block">If <code>scan.isScanMetricsEnabled()</code> returns true, 
then this method will be called prior to
  all other methods in this interface to give you the <code>ScanMetrics</code> 
instance for this scan
  operation. The <code>ScanMetrics</code> instance will be updated on-the-fly 
during the scan, you can

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/org/apache/hadoop/hbase/client/class-use/Cursor.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Cursor.html 
b/apidocs/org/apache/hadoop/hbase/client/class-use/Cursor.html
index b10a9c7..8b33f72 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Cursor.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Cursor.html
@@ -113,6 +113,21 @@
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" 
summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a 
href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a>
 that return types with arguments of type <a 
href="../../../../../../org/apache/hadoop/hbase/client/Cursor.html" 
title="class in org.apache.hadoop.hbase.client">Cursor</a></span><span 
class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a 
href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true";
 title="class or interface in java.util">Optional</a>&lt;<a 
href="../../../../../../org/apache/hadoop/hbase/client/Cursor.html" 
title="class in org.apache.hadoop.hbase.client">Cursor</a>&gt;</code></td>
+<td class="colLast"><span 
class="typeNameLabel">RawScanResultConsumer.ScanController.</span><code><span 
class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html#cursor--">cursor</a></span>()</code>
+<div class="block">Get the scan cursor if available.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" 
summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a 
href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a>
 with parameters of type <a 
href="../../../../../../org/apache/hadoop/hbase/client/Cursor.html" 
title="class in org.apache.hadoop.hbase.client">Cursor</a></span><span 
class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/org/apache/hadoop/hbase/client/package-summary.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-summary.html 
b/apidocs/org/apache/hadoop/hbase/client/package-summary.html
index df746ac..17a8670 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-summary.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-summary.html
@@ -192,7 +192,7 @@
 <tr class="rowColor">
 <td class="colFirst"><a 
href="../../../../../org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html"
 title="interface in 
org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a></td>
 <td class="colLast">
-<div class="block">Used to suspend or stop a scan.</div>
+<div class="block">Used to suspend or stop a scan, or get a scan cursor if 
available.</div>
 </td>
 </tr>
 <tr class="altColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/org/apache/hadoop/hbase/client/package-use.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-use.html 
b/apidocs/org/apache/hadoop/hbase/client/package-use.html
index 1d7dd88..d8e47e3 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -367,7 +367,7 @@ Input/OutputFormats, a table indexing MapReduce job, and 
utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colOne"><a 
href="../../../../../org/apache/hadoop/hbase/client/class-use/RawScanResultConsumer.ScanController.html#org.apache.hadoop.hbase.client">RawScanResultConsumer.ScanController</a>
-<div class="block">Used to suspend or stop a scan.</div>
+<div class="block">Used to suspend or stop a scan, or get a scan cursor if 
available.</div>
 </td>
 </tr>
 <tr class="rowColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
----------------------------------------------------------------------
diff --git 
a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
 
b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
index 6ecabed..59c2836 100644
--- 
a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
+++ 
b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html
@@ -25,108 +25,116 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a 
name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import 
org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import 
org.apache.hadoop.hbase.client.Result;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import 
org.apache.hadoop.hbase.client.metrics.ScanMetrics;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Receives {@link Result} for an 
asynchronous scan.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * &lt;p&gt;<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * Notice that, the {@link 
#onNext(Result[], ScanController)} method will be called in the thread<a 
name="line.27"></a>
-<span class="sourceLineNo">028</span> * which we send request to HBase 
service. So if you want the asynchronous scanner fetch data from<a 
name="line.28"></a>
-<span class="sourceLineNo">029</span> * HBase in background while you process 
the returned data, you need to move the processing work to<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * another thread to make the {@code 
onNext} call return immediately. And please do NOT do any time<a 
name="line.30"></a>
-<span class="sourceLineNo">031</span> * consuming tasks in all methods below 
unless you know what you are doing.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a 
name="line.33"></a>
-<span class="sourceLineNo">034</span>public interface RawScanResultConsumer 
{<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * Used to resume a scan.<a 
name="line.37"></a>
-<span class="sourceLineNo">038</span>   */<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  @InterfaceAudience.Public<a 
name="line.39"></a>
-<span class="sourceLineNo">040</span>  interface ScanResumer {<a 
name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>    /**<a name="line.42"></a>
-<span class="sourceLineNo">043</span>     * Resume the scan. You are free to 
call it multiple time but only the first call will take<a name="line.43"></a>
-<span class="sourceLineNo">044</span>     * effect.<a name="line.44"></a>
-<span class="sourceLineNo">045</span>     */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    void resume();<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  }<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  /**<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   * Used to suspend or stop a scan.<a 
name="line.50"></a>
-<span class="sourceLineNo">051</span>   * &lt;p&gt;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>   * Notice that, you should only call 
the methods below inside onNext or onHeartbeat method. A<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * IllegalStateException will be thrown 
if you call them at other places.<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * &lt;p&gt;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * You can only call one of the methods 
below, i.e., call suspend or terminate(of course you are<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * free to not call them both), and the 
methods are not reentrant. A IllegalStateException will be<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * thrown if you have already called 
one of the methods.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  @InterfaceAudience.Public<a 
name="line.59"></a>
-<span class="sourceLineNo">060</span>  interface ScanController {<a 
name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>    /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * Suspend the scan.<a 
name="line.63"></a>
-<span class="sourceLineNo">064</span>     * &lt;p&gt;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * This means we will stop fetching 
data in background, i.e., will not call onNext any more<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     * before you resume the scan.<a 
name="line.66"></a>
-<span class="sourceLineNo">067</span>     * @return A resumer used to resume 
the scan later.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>     */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    ScanResumer suspend();<a 
name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>    /**<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * Terminate the scan.<a 
name="line.72"></a>
-<span class="sourceLineNo">073</span>     * &lt;p&gt;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>     * This is useful when you have got 
enough results and want to stop the scan in onNext method,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>     * or you want to stop the scan in 
onHeartbeat method because it has spent too many time.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>     */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    void terminate();<a 
name="line.77"></a>
-<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  /**<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   * Indicate that we have receive some 
data.<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * @param results the data fetched from 
HBase service.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   *          instance is only valid 
within scope of onNext method. You can only call its method in<a 
name="line.84"></a>
-<span class="sourceLineNo">085</span>   *          onNext, do NOT store it and 
call it later outside onNext.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  void onNext(Result[] results, 
ScanController controller);<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * Indicate that there is an heartbeat 
message but we have not cumulated enough cells to call<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * onNext.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * &lt;p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * This method give you a chance to 
terminate a slow scan operation.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   *          instance is only valid 
within the scope of onHeartbeat method. You can only call its<a 
name="line.95"></a>
-<span class="sourceLineNo">096</span>   *          method in onHeartbeat, do 
NOT store it and call it later outside onHeartbeat.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  default void onHeartbeat(ScanController 
controller) {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  /**<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * Indicate that we hit an 
unrecoverable error and the scan operation is terminated.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * &lt;p&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * We will not call {@link 
#onComplete()} after calling {@link #onError(Throwable)}.<a name="line.104"></a>
+<span class="sourceLineNo">020</span>import java.util.Optional;<a 
name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import 
org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import 
org.apache.hadoop.hbase.client.Result;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import 
org.apache.hadoop.hbase.client.metrics.ScanMetrics;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Receives {@link Result} for an 
asynchronous scan.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * &lt;p&gt;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Notice that, the {@link 
#onNext(Result[], ScanController)} method will be called in the thread<a 
name="line.29"></a>
+<span class="sourceLineNo">030</span> * which we send request to HBase 
service. So if you want the asynchronous scanner fetch data from<a 
name="line.30"></a>
+<span class="sourceLineNo">031</span> * HBase in background while you process 
the returned data, you need to move the processing work to<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * another thread to make the {@code 
onNext} call return immediately. And please do NOT do any time<a 
name="line.32"></a>
+<span class="sourceLineNo">033</span> * consuming tasks in all methods below 
unless you know what you are doing.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@InterfaceAudience.Public<a 
name="line.35"></a>
+<span class="sourceLineNo">036</span>public interface RawScanResultConsumer 
{<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * Used to resume a scan.<a 
name="line.39"></a>
+<span class="sourceLineNo">040</span>   */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @InterfaceAudience.Public<a 
name="line.41"></a>
+<span class="sourceLineNo">042</span>  interface ScanResumer {<a 
name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>    /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>     * Resume the scan. You are free to 
call it multiple time but only the first call will take<a name="line.45"></a>
+<span class="sourceLineNo">046</span>     * effect.<a name="line.46"></a>
+<span class="sourceLineNo">047</span>     */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    void resume();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * Used to suspend or stop a scan, or 
get a scan cursor if available.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * &lt;p&gt;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Notice that, you should only call 
the {@link #suspend()} or {@link #terminate()} inside onNext<a 
name="line.54"></a>
+<span class="sourceLineNo">055</span>   * or onHeartbeat method. A 
IllegalStateException will be thrown if you call them at other places.<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span>   * &lt;p&gt;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * You can only call one of the {@link 
#suspend()} and {@link #terminate()} methods(of course you<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   * are free to not call them both), and 
the methods are not reentrant. An IllegalStateException<a name="line.58"></a>
+<span class="sourceLineNo">059</span>   * will be thrown if you have already 
called one of the methods.<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @InterfaceAudience.Public<a 
name="line.61"></a>
+<span class="sourceLineNo">062</span>  interface ScanController {<a 
name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * Suspend the scan.<a 
name="line.65"></a>
+<span class="sourceLineNo">066</span>     * &lt;p&gt;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     * This means we will stop fetching 
data in background, i.e., will not call onNext any more<a name="line.67"></a>
+<span class="sourceLineNo">068</span>     * before you resume the scan.<a 
name="line.68"></a>
+<span class="sourceLineNo">069</span>     * @return A resumer used to resume 
the scan later.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>     */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    ScanResumer suspend();<a 
name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>    /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>     * Terminate the scan.<a 
name="line.74"></a>
+<span class="sourceLineNo">075</span>     * &lt;p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * This is useful when you have got 
enough results and want to stop the scan in onNext method,<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     * or you want to stop the scan in 
onHeartbeat method because it has spent too many time.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>     */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    void terminate();<a 
name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * Get the scan cursor if 
available.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     * @return The scan cursor.<a 
name="line.83"></a>
+<span class="sourceLineNo">084</span>     */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    Optional&lt;Cursor&gt; cursor();<a 
name="line.85"></a>
+<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * Indicate that we have receive some 
data.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param results the data fetched from 
HBase service.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   *          instance is only valid 
within scope of onNext method. You can only call its method in<a 
name="line.92"></a>
+<span class="sourceLineNo">093</span>   *          onNext, do NOT store it and 
call it later outside onNext.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  void onNext(Result[] results, 
ScanController controller);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * Indicate that there is an heartbeat 
message but we have not cumulated enough cells to call<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * onNext.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * &lt;p&gt;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * This method give you a chance to 
terminate a slow scan operation.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   *          instance is only valid 
within the scope of onHeartbeat method. You can only call its<a 
name="line.103"></a>
+<span class="sourceLineNo">104</span>   *          method in onHeartbeat, do 
NOT store it and call it later outside onHeartbeat.<a name="line.104"></a>
 <span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  void onError(Throwable error);<a 
name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * Indicate that the scan operation is 
completed normally.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  void onComplete();<a 
name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * If {@code 
scan.isScanMetricsEnabled()} returns true, then this method will be called 
prior to<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * all other methods in this interface 
to give you the {@link ScanMetrics} instance for this scan<a 
name="line.115"></a>
-<span class="sourceLineNo">116</span>   * operation. The {@link ScanMetrics} 
instance will be updated on-the-fly during the scan, you can<a 
name="line.116"></a>
-<span class="sourceLineNo">117</span>   * store it somewhere to get the 
metrics at any time if you want.<a name="line.117"></a>
+<span class="sourceLineNo">106</span>  default void onHeartbeat(ScanController 
controller) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  /**<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * Indicate that we hit an 
unrecoverable error and the scan operation is terminated.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * &lt;p&gt;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * We will not call {@link 
#onComplete()} after calling {@link #onError(Throwable)}.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   */<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  void onError(Throwable error);<a 
name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * Indicate that the scan operation is 
completed normally.<a name="line.117"></a>
 <span class="sourceLineNo">118</span>   */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  default void 
onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>}<a name="line.121"></a>
+<span class="sourceLineNo">119</span>  void onComplete();<a 
name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * If {@code 
scan.isScanMetricsEnabled()} returns true, then this method will be called 
prior to<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * all other methods in this interface 
to give you the {@link ScanMetrics} instance for this scan<a 
name="line.123"></a>
+<span class="sourceLineNo">124</span>   * operation. The {@link ScanMetrics} 
instance will be updated on-the-fly during the scan, you can<a 
name="line.124"></a>
+<span class="sourceLineNo">125</span>   * store it somewhere to get the 
metrics at any time if you want.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  default void 
onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>}<a name="line.129"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/47be635d/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
----------------------------------------------------------------------
diff --git 
a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
 
b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
index 6ecabed..59c2836 100644
--- 
a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
+++ 
b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html
@@ -25,108 +25,116 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a 
name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import 
org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import 
org.apache.hadoop.hbase.client.Result;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import 
org.apache.hadoop.hbase.client.metrics.ScanMetrics;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Receives {@link Result} for an 
asynchronous scan.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * &lt;p&gt;<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * Notice that, the {@link 
#onNext(Result[], ScanController)} method will be called in the thread<a 
name="line.27"></a>
-<span class="sourceLineNo">028</span> * which we send request to HBase 
service. So if you want the asynchronous scanner fetch data from<a 
name="line.28"></a>
-<span class="sourceLineNo">029</span> * HBase in background while you process 
the returned data, you need to move the processing work to<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * another thread to make the {@code 
onNext} call return immediately. And please do NOT do any time<a 
name="line.30"></a>
-<span class="sourceLineNo">031</span> * consuming tasks in all methods below 
unless you know what you are doing.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a 
name="line.33"></a>
-<span class="sourceLineNo">034</span>public interface RawScanResultConsumer 
{<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * Used to resume a scan.<a 
name="line.37"></a>
-<span class="sourceLineNo">038</span>   */<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  @InterfaceAudience.Public<a 
name="line.39"></a>
-<span class="sourceLineNo">040</span>  interface ScanResumer {<a 
name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>    /**<a name="line.42"></a>
-<span class="sourceLineNo">043</span>     * Resume the scan. You are free to 
call it multiple time but only the first call will take<a name="line.43"></a>
-<span class="sourceLineNo">044</span>     * effect.<a name="line.44"></a>
-<span class="sourceLineNo">045</span>     */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    void resume();<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  }<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  /**<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   * Used to suspend or stop a scan.<a 
name="line.50"></a>
-<span class="sourceLineNo">051</span>   * &lt;p&gt;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>   * Notice that, you should only call 
the methods below inside onNext or onHeartbeat method. A<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * IllegalStateException will be thrown 
if you call them at other places.<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * &lt;p&gt;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * You can only call one of the methods 
below, i.e., call suspend or terminate(of course you are<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * free to not call them both), and the 
methods are not reentrant. A IllegalStateException will be<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * thrown if you have already called 
one of the methods.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  @InterfaceAudience.Public<a 
name="line.59"></a>
-<span class="sourceLineNo">060</span>  interface ScanController {<a 
name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>    /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>     * Suspend the scan.<a 
name="line.63"></a>
-<span class="sourceLineNo">064</span>     * &lt;p&gt;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>     * This means we will stop fetching 
data in background, i.e., will not call onNext any more<a name="line.65"></a>
-<span class="sourceLineNo">066</span>     * before you resume the scan.<a 
name="line.66"></a>
-<span class="sourceLineNo">067</span>     * @return A resumer used to resume 
the scan later.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>     */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    ScanResumer suspend();<a 
name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>    /**<a name="line.71"></a>
-<span class="sourceLineNo">072</span>     * Terminate the scan.<a 
name="line.72"></a>
-<span class="sourceLineNo">073</span>     * &lt;p&gt;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>     * This is useful when you have got 
enough results and want to stop the scan in onNext method,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>     * or you want to stop the scan in 
onHeartbeat method because it has spent too many time.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>     */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    void terminate();<a 
name="line.77"></a>
-<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  /**<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   * Indicate that we have receive some 
data.<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * @param results the data fetched from 
HBase service.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   *          instance is only valid 
within scope of onNext method. You can only call its method in<a 
name="line.84"></a>
-<span class="sourceLineNo">085</span>   *          onNext, do NOT store it and 
call it later outside onNext.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  void onNext(Result[] results, 
ScanController controller);<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * Indicate that there is an heartbeat 
message but we have not cumulated enough cells to call<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * onNext.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * &lt;p&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * This method give you a chance to 
terminate a slow scan operation.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   *          instance is only valid 
within the scope of onHeartbeat method. You can only call its<a 
name="line.95"></a>
-<span class="sourceLineNo">096</span>   *          method in onHeartbeat, do 
NOT store it and call it later outside onHeartbeat.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  default void onHeartbeat(ScanController 
controller) {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  /**<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * Indicate that we hit an 
unrecoverable error and the scan operation is terminated.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * &lt;p&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * We will not call {@link 
#onComplete()} after calling {@link #onError(Throwable)}.<a name="line.104"></a>
+<span class="sourceLineNo">020</span>import java.util.Optional;<a 
name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import 
org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import 
org.apache.hadoop.hbase.client.Result;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import 
org.apache.hadoop.hbase.client.metrics.ScanMetrics;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Receives {@link Result} for an 
asynchronous scan.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * &lt;p&gt;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Notice that, the {@link 
#onNext(Result[], ScanController)} method will be called in the thread<a 
name="line.29"></a>
+<span class="sourceLineNo">030</span> * which we send request to HBase 
service. So if you want the asynchronous scanner fetch data from<a 
name="line.30"></a>
+<span class="sourceLineNo">031</span> * HBase in background while you process 
the returned data, you need to move the processing work to<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * another thread to make the {@code 
onNext} call return immediately. And please do NOT do any time<a 
name="line.32"></a>
+<span class="sourceLineNo">033</span> * consuming tasks in all methods below 
unless you know what you are doing.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@InterfaceAudience.Public<a 
name="line.35"></a>
+<span class="sourceLineNo">036</span>public interface RawScanResultConsumer 
{<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * Used to resume a scan.<a 
name="line.39"></a>
+<span class="sourceLineNo">040</span>   */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @InterfaceAudience.Public<a 
name="line.41"></a>
+<span class="sourceLineNo">042</span>  interface ScanResumer {<a 
name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>    /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>     * Resume the scan. You are free to 
call it multiple time but only the first call will take<a name="line.45"></a>
+<span class="sourceLineNo">046</span>     * effect.<a name="line.46"></a>
+<span class="sourceLineNo">047</span>     */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    void resume();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * Used to suspend or stop a scan, or 
get a scan cursor if available.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * &lt;p&gt;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Notice that, you should only call 
the {@link #suspend()} or {@link #terminate()} inside onNext<a 
name="line.54"></a>
+<span class="sourceLineNo">055</span>   * or onHeartbeat method. A 
IllegalStateException will be thrown if you call them at other places.<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span>   * &lt;p&gt;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * You can only call one of the {@link 
#suspend()} and {@link #terminate()} methods(of course you<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   * are free to not call them both), and 
the methods are not reentrant. An IllegalStateException<a name="line.58"></a>
+<span class="sourceLineNo">059</span>   * will be thrown if you have already 
called one of the methods.<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @InterfaceAudience.Public<a 
name="line.61"></a>
+<span class="sourceLineNo">062</span>  interface ScanController {<a 
name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     * Suspend the scan.<a 
name="line.65"></a>
+<span class="sourceLineNo">066</span>     * &lt;p&gt;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     * This means we will stop fetching 
data in background, i.e., will not call onNext any more<a name="line.67"></a>
+<span class="sourceLineNo">068</span>     * before you resume the scan.<a 
name="line.68"></a>
+<span class="sourceLineNo">069</span>     * @return A resumer used to resume 
the scan later.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>     */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    ScanResumer suspend();<a 
name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>    /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>     * Terminate the scan.<a 
name="line.74"></a>
+<span class="sourceLineNo">075</span>     * &lt;p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     * This is useful when you have got 
enough results and want to stop the scan in onNext method,<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     * or you want to stop the scan in 
onHeartbeat method because it has spent too many time.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>     */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    void terminate();<a 
name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
+<span class="sourceLineNo">082</span>     * Get the scan cursor if 
available.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>     * @return The scan cursor.<a 
name="line.83"></a>
+<span class="sourceLineNo">084</span>     */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    Optional&lt;Cursor&gt; cursor();<a 
name="line.85"></a>
+<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * Indicate that we have receive some 
data.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param results the data fetched from 
HBase service.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   *          instance is only valid 
within scope of onNext method. You can only call its method in<a 
name="line.92"></a>
+<span class="sourceLineNo">093</span>   *          onNext, do NOT store it and 
call it later outside onNext.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  void onNext(Result[] results, 
ScanController controller);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * Indicate that there is an heartbeat 
message but we have not cumulated enough cells to call<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * onNext.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * &lt;p&gt;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * This method give you a chance to 
terminate a slow scan operation.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * @param controller used to suspend or 
terminate the scan. Notice that the {@code controller}<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   *          instance is only valid 
within the scope of onHeartbeat method. You can only call its<a 
name="line.103"></a>
+<span class="sourceLineNo">104</span>   *          method in onHeartbeat, do 
NOT store it and call it later outside onHeartbeat.<a name="line.104"></a>
 <span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  void onError(Throwable error);<a 
name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * Indicate that the scan operation is 
completed normally.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   */<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  void onComplete();<a 
name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * If {@code 
scan.isScanMetricsEnabled()} returns true, then this method will be called 
prior to<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * all other methods in this interface 
to give you the {@link ScanMetrics} instance for this scan<a 
name="line.115"></a>
-<span class="sourceLineNo">116</span>   * operation. The {@link ScanMetrics} 
instance will be updated on-the-fly during the scan, you can<a 
name="line.116"></a>
-<span class="sourceLineNo">117</span>   * store it somewhere to get the 
metrics at any time if you want.<a name="line.117"></a>
+<span class="sourceLineNo">106</span>  default void onHeartbeat(ScanController 
controller) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  /**<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * Indicate that we hit an 
unrecoverable error and the scan operation is terminated.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * &lt;p&gt;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * We will not call {@link 
#onComplete()} after calling {@link #onError(Throwable)}.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   */<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  void onError(Throwable error);<a 
name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * Indicate that the scan operation is 
completed normally.<a name="line.117"></a>
 <span class="sourceLineNo">118</span>   */<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  default void 
onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>}<a name="line.121"></a>
+<span class="sourceLineNo">119</span>  void onComplete();<a 
name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * If {@code 
scan.isScanMetricsEnabled()} returns true, then this method will be called 
prior to<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * all other methods in this interface 
to give you the {@link ScanMetrics} instance for this scan<a 
name="line.123"></a>
+<span class="sourceLineNo">124</span>   * operation. The {@link ScanMetrics} 
instance will be updated on-the-fly during the scan, you can<a 
name="line.124"></a>
+<span class="sourceLineNo">125</span>   * store it somewhere to get the 
metrics at any time if you want.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  default void 
onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>}<a name="line.129"></a>
 
 
 

Reply via email to