blob: 2de74d9dd12f4d208ce12e132024a80ab854eaa0 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FSDataInputStreamWrapper (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="FSDataInputStreamWrapper (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":9,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FSDataInputStreamWrapper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/io/FileLink.FileLinkInputStream.html" title="class in org.apache.hadoop.hbase.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.ReadStatistics.html" title="class in org.apache.hadoop.hbase.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html" target="_top">Frames</a></li>
<li><a href="FSDataInputStreamWrapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><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="subNavList">
<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>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.io</div>
<h2 title="Class FSDataInputStreamWrapper" class="title">Class FSDataInputStreamWrapper</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.io.FSDataInputStreamWrapper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.42">FSDataInputStreamWrapper</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
<div class="block">Wrapper for input stream(s) that takes care of the interaction of FS and HBase checksums,
as well as closing streams. Initialization is not thread-safe, but normal operation is;
see method comments.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.ReadStatistics.html" title="class in org.apache.hadoop.hbase.io">FSDataInputStreamWrapper.ReadStatistics</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#doCloseStreams">doCloseStreams</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#dropBehind">dropBehind</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#hbaseChecksumOffCount">hbaseChecksumOffCount</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#hfs">hfs</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#instanceOfCanUnbuffer">instanceOfCanUnbuffer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#isLogTraceEnabled">isLogTraceEnabled</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#link">link</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#path">path</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#readahead">readahead</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.ReadStatistics.html" title="class in org.apache.hadoop.hbase.io">FSDataInputStreamWrapper.ReadStatistics</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#readStatistics">readStatistics</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private org.apache.hadoop.fs.FSDataInputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#stream">stream</a></span></code>
<div class="block">Two stream handles, one with and one without FS-level checksum.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.fs.FSDataInputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#streamNoFsChecksum">streamNoFsChecksum</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#streamNoFsChecksumFirstCreateLock">streamNoFsChecksumFirstCreateLock</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.fs.CanUnbuffer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#unbuffer">unbuffer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#useHBaseChecksum">useHBaseChecksum</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#useHBaseChecksumConfigured">useHBaseChecksumConfigured</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.io.FileLink-boolean-long-">FSDataInputStreamWrapper</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a>&nbsp;link,
boolean&nbsp;dropBehind,
long&nbsp;readahead)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.io.FileLink-org.apache.hadoop.fs.Path-boolean-long-">FSDataInputStreamWrapper</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a>&nbsp;link,
org.apache.hadoop.fs.Path&nbsp;path,
boolean&nbsp;dropBehind,
long&nbsp;readahead)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">FSDataInputStreamWrapper</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;path)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-">FSDataInputStreamWrapper</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;path,
boolean&nbsp;dropBehind,
long&nbsp;readahead)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#FSDataInputStreamWrapper-org.apache.hadoop.fs.FSDataInputStream-">FSDataInputStreamWrapper</a></span>(org.apache.hadoop.fs.FSDataInputStream&nbsp;fsdis)</code>
<div class="block">For use in tests.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#FSDataInputStreamWrapper-org.apache.hadoop.fs.FSDataInputStream-org.apache.hadoop.fs.FSDataInputStream-">FSDataInputStreamWrapper</a></span>(org.apache.hadoop.fs.FSDataInputStream&nbsp;fsdis,
org.apache.hadoop.fs.FSDataInputStream&nbsp;noChecksum)</code>
<div class="block">For use in tests.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#checksumOk--">checksumOk</a></span>()</code>
<div class="block">Report that checksum was ok, so we may ponder going back to HBase checksum.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#close--">close</a></span>()</code>
<div class="block">CloseClose stream(s) if necessary.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.fs.FSDataInputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#fallbackToFsChecksum-int-">fallbackToFsChecksum</a></span>(int&nbsp;offCount)</code>
<div class="block">Read from non-checksum stream failed, fall back to FS checksum.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getHfs--">getHfs</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getLocalBytesRead--">getLocalBytesRead</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getShortCircuitBytesRead--">getShortCircuitBytesRead</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.fs.FSDataInputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getStream-boolean-">getStream</a></span>(boolean&nbsp;useHBaseChecksum)</code>
<div class="block">Get the stream to use.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getTotalBytesRead--">getTotalBytesRead</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getZeroCopyBytesRead--">getZeroCopyBytesRead</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#prepareForBlockReader-boolean-">prepareForBlockReader</a></span>(boolean&nbsp;forceNoHBaseChecksum)</code>
<div class="block">Prepares the streams for block reader.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#setStreamOptions-org.apache.hadoop.fs.FSDataInputStream-">setStreamOptions</a></span>(org.apache.hadoop.fs.FSDataInputStream&nbsp;in)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#shouldUseHBaseChecksum--">shouldUseHBaseChecksum</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#unbuffer--">unbuffer</a></span>()</code>
<div class="block">This will free sockets and file descriptors held by the stream only when the stream implements
org.apache.hadoop.fs.CanUnbuffer.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#updateInputStreamStatistics-org.apache.hadoop.fs.FSDataInputStream-">updateInputStreamStatistics</a></span>(org.apache.hadoop.fs.FSDataInputStream&nbsp;stream)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.43">LOG</a></pre>
</li>
</ul>
<a name="isLogTraceEnabled">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLogTraceEnabled</h4>
<pre>private static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.44">isLogTraceEnabled</a></pre>
</li>
</ul>
<a name="hfs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hfs</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.46">hfs</a></pre>
</li>
</ul>
<a name="path">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>path</h4>
<pre>private final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.47">path</a></pre>
</li>
</ul>
<a name="link">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>link</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.48">link</a></pre>
</li>
</ul>
<a name="doCloseStreams">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doCloseStreams</h4>
<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.49">doCloseStreams</a></pre>
</li>
</ul>
<a name="dropBehind">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropBehind</h4>
<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.50">dropBehind</a></pre>
</li>
</ul>
<a name="readahead">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readahead</h4>
<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.51">readahead</a></pre>
</li>
</ul>
<a name="stream">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stream</h4>
<pre>private volatile&nbsp;org.apache.hadoop.fs.FSDataInputStream <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.73">stream</a></pre>
<div class="block">Two stream handles, one with and one without FS-level checksum.
HDFS checksum setting is on FS level, not single read level, so you have to keep two
FS objects and two handles open to interleave different reads freely, which is very sad.
This is what we do:
1) First, we need to read the trailer of HFile to determine checksum parameters.
We always use FS checksum to do that, so ctor opens <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#stream"><code>stream</code></a>.
2.1) After that, if HBase checksum is not used, we'd just always use <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#stream"><code>stream</code></a>;
2.2) If HBase checksum can be used, we'll open <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#streamNoFsChecksum"><code>streamNoFsChecksum</code></a>,
and close <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#stream"><code>stream</code></a>. User MUST call prepareForBlockReader for that to happen;
if they don't, (2.1) will be the default.
3) The users can call <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#shouldUseHBaseChecksum--"><code>shouldUseHBaseChecksum()</code></a>, and pass its result to
<a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#getStream-boolean-"><code>getStream(boolean)</code></a> to get stream (if Java had out/pointer params we could
return both in one call). This stream is guaranteed to be set.
4) The first time HBase checksum fails, one would call <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#fallbackToFsChecksum-int-"><code>fallbackToFsChecksum(int)</code></a>.
That will take lock, and open <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#stream"><code>stream</code></a>. While this is going on, others will
continue to use the old stream; if they also want to fall back, they'll also call
<a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#fallbackToFsChecksum-int-"><code>fallbackToFsChecksum(int)</code></a>, and block until <a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#stream"><code>stream</code></a> is set.
5) After some number of checksumOk() calls, we will go back to using HBase checksum.
We will have 2 handles; however we presume checksums fail so rarely that we don't care.</div>
</li>
</ul>
<a name="streamNoFsChecksum">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>streamNoFsChecksum</h4>
<pre>private volatile&nbsp;org.apache.hadoop.fs.FSDataInputStream <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.74">streamNoFsChecksum</a></pre>
</li>
</ul>
<a name="streamNoFsChecksumFirstCreateLock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>streamNoFsChecksumFirstCreateLock</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.75">streamNoFsChecksumFirstCreateLock</a></pre>
</li>
</ul>
<a name="useHBaseChecksumConfigured">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useHBaseChecksumConfigured</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.78">useHBaseChecksumConfigured</a></pre>
</li>
</ul>
<a name="useHBaseChecksum">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useHBaseChecksum</h4>
<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.84">useHBaseChecksum</a></pre>
</li>
</ul>
<a name="hbaseChecksumOffCount">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hbaseChecksumOffCount</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.88">hbaseChecksumOffCount</a></pre>
</li>
</ul>
<a name="readStatistics">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readStatistics</h4>
<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.ReadStatistics.html" title="class in org.apache.hadoop.hbase.io">FSDataInputStreamWrapper.ReadStatistics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.90">readStatistics</a></pre>
</li>
</ul>
<a name="instanceOfCanUnbuffer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>instanceOfCanUnbuffer</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.99">instanceOfCanUnbuffer</a></pre>
</li>
</ul>
<a name="unbuffer">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>unbuffer</h4>
<pre>private&nbsp;org.apache.hadoop.fs.CanUnbuffer <a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.100">unbuffer</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSDataInputStreamWrapper</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.102">FSDataInputStreamWrapper</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;path)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSDataInputStreamWrapper</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.106">FSDataInputStreamWrapper</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;path,
boolean&nbsp;dropBehind,
long&nbsp;readahead)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.io.FileLink-boolean-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSDataInputStreamWrapper</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.110">FSDataInputStreamWrapper</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a>&nbsp;link,
boolean&nbsp;dropBehind,
long&nbsp;readahead)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="FSDataInputStreamWrapper-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.io.FileLink-org.apache.hadoop.fs.Path-boolean-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSDataInputStreamWrapper</h4>
<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.115">FSDataInputStreamWrapper</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a>&nbsp;link,
org.apache.hadoop.fs.Path&nbsp;path,
boolean&nbsp;dropBehind,
long&nbsp;readahead)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="FSDataInputStreamWrapper-org.apache.hadoop.fs.FSDataInputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSDataInputStreamWrapper</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.173">FSDataInputStreamWrapper</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;fsdis)</pre>
<div class="block">For use in tests.</div>
</li>
</ul>
<a name="FSDataInputStreamWrapper-org.apache.hadoop.fs.FSDataInputStream-org.apache.hadoop.fs.FSDataInputStream-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FSDataInputStreamWrapper</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.178">FSDataInputStreamWrapper</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;fsdis,
org.apache.hadoop.fs.FSDataInputStream&nbsp;noChecksum)</pre>
<div class="block">For use in tests.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setStreamOptions-org.apache.hadoop.fs.FSDataInputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStreamOptions</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.134">setStreamOptions</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;in)</pre>
</li>
</ul>
<a name="prepareForBlockReader-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepareForBlockReader</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.155">prepareForBlockReader</a>(boolean&nbsp;forceNoHBaseChecksum)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Prepares the streams for block reader. NOT THREAD SAFE. Must be called once, after any
reads finish and before any other reads start (what happens in reality is we read the
tail, then call this based on what's in the tail, then read blocks).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>forceNoHBaseChecksum</code> - Force not using HBase checksum.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="shouldUseHBaseChecksum--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldUseHBaseChecksum</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.193">shouldUseHBaseChecksum</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether we are presently using HBase checksum.</dd>
</dl>
</li>
</ul>
<a name="getStream-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStream</h4>
<pre>public&nbsp;org.apache.hadoop.fs.FSDataInputStream&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.202">getStream</a>(boolean&nbsp;useHBaseChecksum)</pre>
<div class="block">Get the stream to use. Thread-safe.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>useHBaseChecksum</code> - must be the value that shouldUseHBaseChecksum has returned
at some point in the past, otherwise the result is undefined.</dd>
</dl>
</li>
</ul>
<a name="fallbackToFsChecksum-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fallbackToFsChecksum</h4>
<pre>public&nbsp;org.apache.hadoop.fs.FSDataInputStream&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.210">fallbackToFsChecksum</a>(int&nbsp;offCount)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Read from non-checksum stream failed, fall back to FS checksum. Thread-safe.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offCount</code> - For how many checksumOk calls to turn off the HBase checksum.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="checksumOk--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checksumOk</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.229">checksumOk</a>()</pre>
<div class="block">Report that checksum was ok, so we may ponder going back to HBase checksum.</div>
</li>
</ul>
<a name="updateInputStreamStatistics-org.apache.hadoop.fs.FSDataInputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateInputStreamStatistics</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.238">updateInputStreamStatistics</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;stream)</pre>
</li>
</ul>
<a name="getTotalBytesRead--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalBytesRead</h4>
<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.260">getTotalBytesRead</a>()</pre>
</li>
</ul>
<a name="getLocalBytesRead--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalBytesRead</h4>
<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.266">getLocalBytesRead</a>()</pre>
</li>
</ul>
<a name="getShortCircuitBytesRead--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getShortCircuitBytesRead</h4>
<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.272">getShortCircuitBytesRead</a>()</pre>
</li>
</ul>
<a name="getZeroCopyBytesRead--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getZeroCopyBytesRead</h4>
<pre>public static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.278">getZeroCopyBytesRead</a>()</pre>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.286">close</a>()</pre>
<div class="block">CloseClose stream(s) if necessary.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
</dl>
</li>
</ul>
<a name="getHfs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHfs</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.299">getHfs</a>()</pre>
</li>
</ul>
<a name="unbuffer--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>unbuffer</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html#line.315">unbuffer</a>()</pre>
<div class="block">This will free sockets and file descriptors held by the stream only when the stream implements
org.apache.hadoop.fs.CanUnbuffer. NOT THREAD SAFE. Must be called only when all the clients
using this stream to read the blocks have finished reading. If by chance the stream is
unbuffered and there are clients still holding this stream for read then on next client read
request a new socket will be opened by Datanode without client knowing about it and will serve
its read request. Note: If this socket is idle for some time then the DataNode will close the
socket and the socket will move into CLOSE_WAIT state and on the next client request on this
stream, the current socket will be closed and a new socket will be opened to serve the
requests.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FSDataInputStreamWrapper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/io/FileLink.FileLinkInputStream.html" title="class in org.apache.hadoop.hbase.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.ReadStatistics.html" title="class in org.apache.hadoop.hbase.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html" target="_top">Frames</a></li>
<li><a href="FSDataInputStreamWrapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><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="subNavList">
<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>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>