blob: 4840ffe39646ba2785b7756725213111a7572bc4 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ScannerContext (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase.regionserver, class: ScannerContext">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ScannerContext.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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.regionserver</a></div>
<h1 title="Class ScannerContext" class="title">Class ScannerContext</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.regionserver.ScannerContext</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="NoLimitScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">NoLimitScannerContext</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations">@LimitedPrivate("Coprocesssor")
@Evolving
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-50">ScannerContext</a></span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">ScannerContext instances encapsulate limit tracking AND progress towards those limits during
invocations of <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> and
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a>.
<p>
A ScannerContext instance should be updated periodically throughout execution whenever progress
towards a limit has been made. Each limit can be checked via the appropriate checkLimit method.
<p>
Once a limit has been reached, the scan will stop. The invoker of
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> or <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> can
use the appropriate check*Limit methods to see exactly which limits have been reached.
Alternatively, <a href="#checkAnyLimitReached(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)"><code>checkAnyLimitReached(LimitScope)</code></a> is provided to see if ANY limit was
reached
<p>
<a href="NoLimitScannerContext.html#NO_LIMIT"><code>NoLimitScannerContext.NO_LIMIT</code></a> is an immutable static definition that can be used
whenever a <a href="ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>ScannerContext</code></a> is needed but limits do not need to be enforced.
<p>
NOTE: It is important that this class only ever expose setter methods that can be safely skipped
when limits should be NOT enforced. This is because of the necessary immutability of the class
<a href="NoLimitScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>NoLimitScannerContext</code></a>. If a setter cannot be safely skipped, the immutable nature of
<a href="NoLimitScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>NoLimitScannerContext</code></a> will lead to incorrect behavior.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="ScannerContext.Builder.html" class="type-name-link" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private static class&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="ScannerContext.LimitFields.html" class="type-name-link" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The different fields that can be used as limits in calls to
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> and <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a></div>
</div>
<div class="col-first even-row-color"><code>static enum&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="ScannerContext.LimitScope.html" class="type-name-link" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a></code></div>
<div class="col-last even-row-color">
<div class="block">The various scopes where a limit can be enforced.</div>
</div>
<div class="col-first odd-row-color"><code>static enum&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="ScannerContext.NextState.html" class="type-name-link" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The possible states a scanner may be in following a call to <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(List)</code></a></div>
</div>
<div class="col-first even-row-color"><code>private static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="ScannerContext.ProgressFields.html" class="type-name-link" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.ProgressFields</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private static boolean</code></div>
<div class="col-second even-row-color"><code><a href="#DEFAULT_KEEP_PROGRESS" class="member-name-link">DEFAULT_KEEP_PROGRESS</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private static final <a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></code></div>
<div class="col-second odd-row-color"><code><a href="#DEFAULT_STATE" class="member-name-link">DEFAULT_STATE</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>(package private) boolean</code></div>
<div class="col-second even-row-color"><code><a href="#keepProgress" class="member-name-link">keepProgress</a></code></div>
<div class="col-last even-row-color">
<div class="block">Used as an indication to invocations of <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> and
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> that, if true, the progress tracked within this
<a href="ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>ScannerContext</code></a> instance should be considered while evaluating the limits.</div>
</div>
<div class="col-first odd-row-color"><code>private <a href="../Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></div>
<div class="col-second odd-row-color"><code><a href="#lastPeekedCell" class="member-name-link">lastPeekedCell</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>(package private) <a href="ScannerContext.LimitFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a></code></div>
<div class="col-second even-row-color"><code><a href="#limits" class="member-name-link">limits</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>(package private) final <a href="../client/metrics/ServerSideScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics">ServerSideScanMetrics</a></code></div>
<div class="col-second odd-row-color"><code><a href="#metrics" class="member-name-link">metrics</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Tracks the relevant server side metrics during scans.</div>
</div>
<div class="col-first even-row-color"><code>(package private) <a href="ScannerContext.ProgressFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.ProgressFields</a></code></div>
<div class="col-second even-row-color"><code><a href="#progress" class="member-name-link">progress</a></code></div>
<div class="col-last even-row-color">
<div class="block">A different set of progress fields.</div>
</div>
<div class="col-first odd-row-color"><code>private boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#returnImmediately" class="member-name-link">returnImmediately</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>(package private) <a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></code></div>
<div class="col-second even-row-color"><code><a href="#scannerState" class="member-name-link">scannerState</a></code></div>
<div class="col-last even-row-color">
<div class="block">The state of the scanner after the invocation of <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a>
or <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a>.</div>
</div>
<div class="col-first odd-row-color"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#skippingRow" class="member-name-link">skippingRow</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Allows temporarily ignoring limits and skipping tracking of batch and size progress.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(boolean,org.apache.hadoop.hbase.regionserver.ScannerContext.LimitFields,boolean)" class="member-name-link">ScannerContext</a><wbr>(boolean&nbsp;keepProgress,
<a href="ScannerContext.LimitFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a>&nbsp;limitsToCopy,
boolean&nbsp;trackMetrics)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkAnyLimitReached(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">checkAnyLimitReached</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkBatchLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">checkBatchLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkSizeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">checkSizeLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkTimeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">checkTimeLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clearProgress()" class="member-name-link">clearProgress</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Clear away any progress that has been made so far.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBatchLimit()" class="member-name-link">getBatchLimit</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBatchProgress()" class="member-name-link">getBatchProgress</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBlockSizeProgress()" class="member-name-link">getBlockSizeProgress</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDataSizeLimit()" class="member-name-link">getDataSizeLimit</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDataSizeProgress()" class="member-name-link">getDataSizeProgress</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getHeapSizeProgress()" class="member-name-link">getHeapSizeProgress</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getKeepProgress()" class="member-name-link">getKeepProgress</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) <a href="../Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLastPeekedCell()" class="member-name-link">getLastPeekedCell</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../client/metrics/ServerSideScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics">ServerSideScanMetrics</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMetrics()" class="member-name-link">getMetrics</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get the metrics instance.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSkippingRow()" class="member-name-link">getSkippingRow</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">In this mode, only block size progress is tracked, and limits are ignored.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTimeLimit()" class="member-name-link">getTimeLimit</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasAnyLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">hasAnyLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if any limit can be enforced within the checker's scope</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasBatchLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">hasBatchLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if the batch limit can be enforced in the checker's scope</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasSizeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">hasSizeLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if the size limit can be enforced in the checker's scope</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hasTimeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">hasTimeLimit</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if the time limit can be enforced in the checker's scope</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#incrementBatchProgress(int)" class="member-name-link">incrementBatchProgress</a><wbr>(int&nbsp;batch)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Progress towards the batch limit has been made.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#incrementBlockProgress(int)" class="member-name-link">incrementBlockProgress</a><wbr>(int&nbsp;blockSize)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Progress towards the block limit has been made.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#incrementSizeProgress(long,long)" class="member-name-link">incrementSizeProgress</a><wbr>(long&nbsp;dataSize,
long&nbsp;heapSize)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Progress towards the size limit has been made.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isTrackingMetrics()" class="member-name-link">isTrackingMetrics</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#mayHaveMoreCellsInRow()" class="member-name-link">mayHaveMoreCellsInRow</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ScannerContext.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#newBuilder()" class="member-name-link">newBuilder</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="ScannerContext.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#newBuilder(boolean)" class="member-name-link">newBuilder</a><wbr>(boolean&nbsp;keepProgress)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#returnImmediately()" class="member-name-link">returnImmediately</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBatchProgress(int)" class="member-name-link">setBatchProgress</a><wbr>(int&nbsp;batchProgress)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setKeepProgress(boolean)" class="member-name-link">setKeepProgress</a><wbr>(boolean&nbsp;keepProgress)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setLastPeekedCell(org.apache.hadoop.hbase.Cell)" class="member-name-link">setLastPeekedCell</a><wbr>(<a href="../Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;lastPeekedCell)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setProgress(int,long,long)" class="member-name-link">setProgress</a><wbr>(int&nbsp;batchProgress,
long&nbsp;sizeProgress,
long&nbsp;heapSizeProgress)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) <a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setScannerState(org.apache.hadoop.hbase.regionserver.ScannerContext.NextState)" class="member-name-link">setScannerState</a><wbr>(<a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a>&nbsp;state)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Note that this is not a typical setter.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSizeLimitScope(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">setSizeLimitScope</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;scope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSizeProgress(long,long)" class="member-name-link">setSizeProgress</a><wbr>(long&nbsp;dataSizeProgress,
long&nbsp;heapSizeProgress)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSkippingRow(boolean)" class="member-name-link">setSkippingRow</a><wbr>(boolean&nbsp;skippingRow)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setTimeLimitScope(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)" class="member-name-link">setTimeLimitScope</a><wbr>(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;scope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="limits">
<h3>limits</h3>
<div class="member-signature"><span class="return-type"><a href="ScannerContext.LimitFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-54">limits</a></span></div>
</section>
</li>
<li>
<section class="detail" id="progress">
<h3>progress</h3>
<div class="member-signature"><span class="return-type"><a href="ScannerContext.ProgressFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.ProgressFields</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-60">progress</a></span></div>
<div class="block">A different set of progress fields. Only include batch, dataSize and heapSize. Compare to
LimitFields, ProgressFields doesn't contain time field. As we save a deadline in LimitFields,
so use <a href="../util/EnvironmentEdgeManager.html#currentTime()"><code>EnvironmentEdgeManager.currentTime()</code></a> directly when check time limit.</div>
</section>
</li>
<li>
<section class="detail" id="scannerState">
<h3>scannerState</h3>
<div class="member-signature"><span class="return-type"><a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-66">scannerState</a></span></div>
<div class="block">The state of the scanner after the invocation of <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a>
or <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="DEFAULT_STATE">
<h3>DEFAULT_STATE</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type"><a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-67">DEFAULT_STATE</a></span></div>
</section>
</li>
<li>
<section class="detail" id="keepProgress">
<h3>keepProgress</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-103">keepProgress</a></span></div>
<div class="block">Used as an indication to invocations of <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> and
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> that, if true, the progress tracked within this
<a href="ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>ScannerContext</code></a> instance should be considered while evaluating the limits. Useful for
enforcing a set of limits across multiple calls (i.e. the limit may not be reached in a single
invocation, but any progress made should be considered in future invocations)
<p>
Defaulting this value to false means that, by default, any tracked progress will be wiped clean
on invocations to <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> and
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> and the call will be treated as though no progress
has been made towards the limits so far.
<p>
This is an important mechanism. Users of Internal/Region scanners expect that they can define
some limits and then repeatedly invoke <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(List)</code></a> or
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(List)</code></a> where each invocation respects these limits separately.
<p>
For example:
<pre>
<code>
ScannerContext context = new ScannerContext.newBuilder().setBatchLimit(5).build();
RegionScanner scanner = ...
List&lt;Cell&gt; results = new ArrayList&lt;Cell&gt;();
while(scanner.next(results, context)) {
// Do something with a batch of 5 cells
}
</code>
</pre>
However, in the case of RPCs, the server wants to be able to define a set of limits for a
particular RPC request and have those limits respected across multiple invocations. This means
that the progress made towards the limits in earlier calls will be saved and considered in
future invocations</div>
</section>
</li>
<li>
<section class="detail" id="DEFAULT_KEEP_PROGRESS">
<h3>DEFAULT_KEEP_PROGRESS</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-104">DEFAULT_KEEP_PROGRESS</a></span></div>
</section>
</li>
<li>
<section class="detail" id="skippingRow">
<h3>skippingRow</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-111">skippingRow</a></span></div>
<div class="block">Allows temporarily ignoring limits and skipping tracking of batch and size progress. Used when
skipping to the next row, in which case all processed cells are thrown away so should not count
towards progress.</div>
</section>
</li>
<li>
<section class="detail" id="lastPeekedCell">
<h3>lastPeekedCell</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="../Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-113">lastPeekedCell</a></span></div>
</section>
</li>
<li>
<section class="detail" id="returnImmediately">
<h3>returnImmediately</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-119">returnImmediately</a></span></div>
</section>
</li>
<li>
<section class="detail" id="metrics">
<h3>metrics</h3>
<div class="member-signature"><span class="modifiers">final</span>&nbsp;<span class="return-type"><a href="../client/metrics/ServerSideScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics">ServerSideScanMetrics</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-124">metrics</a></span></div>
<div class="block">Tracks the relevant server side metrics during scans. null when metrics should not be tracked</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(boolean,org.apache.hadoop.hbase.regionserver.ScannerContext.LimitFields,boolean)">
<h3>ScannerContext</h3>
<div class="member-signature"><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-126">ScannerContext</a></span><wbr><span class="parameters">(boolean&nbsp;keepProgress,
<a href="ScannerContext.LimitFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a>&nbsp;limitsToCopy,
boolean&nbsp;trackMetrics)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="isTrackingMetrics()">
<h3>isTrackingMetrics</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-140">isTrackingMetrics</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getMetrics()">
<h3>getMetrics</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../client/metrics/ServerSideScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics">ServerSideScanMetrics</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-149">getMetrics</a></span>()</div>
<div class="block">Get the metrics instance. Should only be called after a call to <a href="#isTrackingMetrics()"><code>isTrackingMetrics()</code></a>
has been made to confirm that metrics are indeed being tracked.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd><a href="../client/metrics/ServerSideScanMetrics.html" title="class in org.apache.hadoop.hbase.client.metrics"><code>ServerSideScanMetrics</code></a> instance that is tracking metrics for this scan</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getKeepProgress()">
<h3>getKeepProgress</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-162">getKeepProgress</a></span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if the progress tracked so far in this instance will be considered during an
invocation of <a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a> or
<a href="InternalScanner.html#next(java.util.List)"><code>InternalScanner.next(java.util.List)</code></a>. false when the progress tracked so far
should not be considered and should instead be wiped away via <a href="#clearProgress()"><code>clearProgress()</code></a>.
This only applies to per-row progress, like batch and data/heap size. Block size is
never reset because it tracks all of the blocks scanned for an entire request.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setKeepProgress(boolean)">
<h3>setKeepProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-166">setKeepProgress</a></span><wbr><span class="parameters">(boolean&nbsp;keepProgress)</span></div>
</section>
</li>
<li>
<section class="detail" id="getSkippingRow()">
<h3>getSkippingRow</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-176">getSkippingRow</a></span>()</div>
<div class="block">In this mode, only block size progress is tracked, and limits are ignored. We set this mode
when skipping to next row, in which case all cells returned a thrown away so should not count
towards progress.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if we are in skipping row mode.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSkippingRow(boolean)">
<h3>setSkippingRow</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-185">setSkippingRow</a></span><wbr><span class="parameters">(boolean&nbsp;skippingRow)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>skippingRow</code> - set true to cause disabling of collecting per-cell progress or enforcing any
limits. This is used when trying to skip over all cells in a row, in which
case those cells are thrown away so should not count towards progress.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="incrementBatchProgress(int)">
<h3>incrementBatchProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-192">incrementBatchProgress</a></span><wbr><span class="parameters">(int&nbsp;batch)</span></div>
<div class="block">Progress towards the batch limit has been made. Increment internal tracking of batch progress</div>
</section>
</li>
<li>
<section class="detail" id="incrementSizeProgress(long,long)">
<h3>incrementSizeProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-203">incrementSizeProgress</a></span><wbr><span class="parameters">(long&nbsp;dataSize,
long&nbsp;heapSize)</span></div>
<div class="block">Progress towards the size limit has been made. Increment internal tracking of size progress</div>
</section>
</li>
<li>
<section class="detail" id="incrementBlockProgress(int)">
<h3>incrementBlockProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-216">incrementBlockProgress</a></span><wbr><span class="parameters">(int&nbsp;blockSize)</span></div>
<div class="block">Progress towards the block limit has been made. Increment internal track of block progress</div>
</section>
</li>
<li>
<section class="detail" id="getBatchProgress()">
<h3>getBatchProgress</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-223">getBatchProgress</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getDataSizeProgress()">
<h3>getDataSizeProgress</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-227">getDataSizeProgress</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getHeapSizeProgress()">
<h3>getHeapSizeProgress</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-231">getHeapSizeProgress</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getBlockSizeProgress()">
<h3>getBlockSizeProgress</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-235">getBlockSizeProgress</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="setProgress(int,long,long)">
<h3>setProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-239">setProgress</a></span><wbr><span class="parameters">(int&nbsp;batchProgress,
long&nbsp;sizeProgress,
long&nbsp;heapSizeProgress)</span></div>
</section>
</li>
<li>
<section class="detail" id="setSizeProgress(long,long)">
<h3>setSizeProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-244">setSizeProgress</a></span><wbr><span class="parameters">(long&nbsp;dataSizeProgress,
long&nbsp;heapSizeProgress)</span></div>
</section>
</li>
<li>
<section class="detail" id="setBatchProgress(int)">
<h3>setBatchProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-249">setBatchProgress</a></span><wbr><span class="parameters">(int&nbsp;batchProgress)</span></div>
</section>
</li>
<li>
<section class="detail" id="clearProgress()">
<h3>clearProgress</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-259">clearProgress</a></span>()</div>
<div class="block">Clear away any progress that has been made so far. All progress fields are reset to initial
values. Only clears progress that should reset between rows. <a href="#getBlockSizeProgress()"><code>getBlockSizeProgress()</code></a> is
not reset because it increments for all blocks scanned whether the result is included or
filtered.</div>
</section>
</li>
<li>
<section class="detail" id="setScannerState(org.apache.hadoop.hbase.regionserver.ScannerContext.NextState)">
<h3>setScannerState</h3>
<div class="member-signature"><span class="return-type"><a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-270">setScannerState</a></span><wbr><span class="parameters">(<a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a>&nbsp;state)</span></div>
<div class="block">Note that this is not a typical setter. This setter returns the <a href="ScannerContext.NextState.html" title="enum class in org.apache.hadoop.hbase.regionserver"><code>ScannerContext.NextState</code></a> that was
passed in so that methods can be invoked against the new state. Furthermore, this pattern
allows the <a href="NoLimitScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>NoLimitScannerContext</code></a> to cleanly override this setter and simply return the
new state, thus preserving the immutability of <a href="NoLimitScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver"><code>NoLimitScannerContext</code></a></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The state that was passed in.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="mayHaveMoreCellsInRow()">
<h3>mayHaveMoreCellsInRow</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-283">mayHaveMoreCellsInRow</a></span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true when we have more cells for the current row. This usually because we have reached
a limit in the middle of a row</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hasBatchLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>hasBatchLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-290">hasBatchLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<div class="block">Returns true if the batch limit can be enforced in the checker's scope</div>
</section>
</li>
<li>
<section class="detail" id="hasSizeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>hasSizeLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-295">hasSizeLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<div class="block">Returns true if the size limit can be enforced in the checker's scope</div>
</section>
</li>
<li>
<section class="detail" id="hasTimeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>hasTimeLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-301">hasTimeLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<div class="block">Returns true if the time limit can be enforced in the checker's scope</div>
</section>
</li>
<li>
<section class="detail" id="hasAnyLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>hasAnyLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-307">hasAnyLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<div class="block">Returns true if any limit can be enforced within the checker's scope</div>
</section>
</li>
<li>
<section class="detail" id="setSizeLimitScope(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>setSizeLimitScope</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-314">setSizeLimitScope</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;scope)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>scope</code> - The scope in which the size limit will be enforced</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setTimeLimitScope(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>setTimeLimitScope</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-321">setTimeLimitScope</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;scope)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>scope</code> - The scope in which the time limit will be enforced</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBatchLimit()">
<h3>getBatchLimit</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-325">getBatchLimit</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getDataSizeLimit()">
<h3>getDataSizeLimit</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-329">getDataSizeLimit</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getTimeLimit()">
<h3>getTimeLimit</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-333">getTimeLimit</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="checkBatchLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>checkBatchLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-341">checkBatchLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>checkerScope</code> - The scope that the limit is being checked from</dd>
<dt>Returns:</dt>
<dd>true when the limit is enforceable from the checker's scope and it has been reached</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkSizeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>checkSizeLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-349">checkSizeLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>checkerScope</code> - The scope that the limit is being checked from</dd>
<dt>Returns:</dt>
<dd>true when the limit is enforceable from the checker's scope and it has been reached</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkTimeLimit(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>checkTimeLimit</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-361">checkTimeLimit</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>checkerScope</code> - The scope that the limit is being checked from. The time limit is always
checked against <code>EnvironmentEdgeManager.currentTime</code></dd>
<dt>Returns:</dt>
<dd>true when the limit is enforceable from the checker's scope and it has been reached</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkAnyLimitReached(org.apache.hadoop.hbase.regionserver.ScannerContext.LimitScope)">
<h3>checkAnyLimitReached</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-370">checkAnyLimitReached</a></span><wbr><span class="parameters">(<a href="ScannerContext.LimitScope.html" title="enum class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>&nbsp;checkerScope)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>checkerScope</code> - The scope that the limits are being checked from</dd>
<dt>Returns:</dt>
<dd>true when some limit is enforceable from the checker's scope and it has been reached</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLastPeekedCell()">
<h3>getLastPeekedCell</h3>
<div class="member-signature"><span class="return-type"><a href="../Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-375">getLastPeekedCell</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="setLastPeekedCell(org.apache.hadoop.hbase.Cell)">
<h3>setLastPeekedCell</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-379">setLastPeekedCell</a></span><wbr><span class="parameters">(<a href="../Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;lastPeekedCell)</span></div>
</section>
</li>
<li>
<section class="detail" id="returnImmediately()">
<h3>returnImmediately</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-383">returnImmediately</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-387">toString</a></span>()</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newBuilder()">
<h3>newBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ScannerContext.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-408">newBuilder</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="newBuilder(boolean)">
<h3>newBuilder</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="ScannerContext.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.html#line-412">newBuilder</a></span><wbr><span class="parameters">(boolean&nbsp;keepProgress)</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>