blob: 9d744d704c405c257caa77e3a6dd581a14a99581 [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>HFileBlock (Apache HBase 4.0.0-alpha-1-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="HFileBlock (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":9,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":9,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":9,"i46":10,"i47":9,"i48":10,"i49":10,"i50":10,"i51":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/HFileBlock.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/hfile/HFile.WriterFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockDeserializer.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/HFileBlock.html" target="_top">Frames</a></li>
<li><a href="HFileBlock.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.hfile</div>
<h2 title="Class HFileBlock" class="title">Class HFileBlock</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.hfile.HFileBlock</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>, <a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a>, org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ExclusiveMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">ExclusiveMemHFileBlock</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/SharedMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">SharedMemHFileBlock</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.123">HFileBlock</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="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></pre>
<div class="block">Cacheable Blocks of an <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 2 file. Version 2 was introduced in hbase-0.92.0.
<p>
Version 1 was the original file block. Version 2 was introduced when we changed the hbase file
format to support multi-level block indexes and compound bloom filters (HBASE-3857). Support for
Version 1 was removed in hbase-1.3.0.
<h3>HFileBlock: Version 2</h3> In version 2, a block is structured as follows:
<ul>
<li><b>Header:</b> See Writer#putHeader() for where header is written; header total size is
HFILEBLOCK_HEADER_SIZE
<ul>
<li>0. blockType: Magic record identifying the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><code>BlockType</code></a> (8 bytes): e.g.
<code>DATABLK*</code>
<li>1. onDiskSizeWithoutHeader: Compressed -- a.k.a 'on disk' -- block size, excluding header,
but including tailing checksum bytes (4 bytes)
<li>2. uncompressedSizeWithoutHeader: Uncompressed block size, excluding header, and excluding
checksum bytes (4 bytes)
<li>3. prevBlockOffset: The offset of the previous block of the same type (8 bytes). This is used
to navigate to the previous block without having to go to the block index
<li>4: For minorVersions &gt;=1, the ordinal describing checksum type (1 byte)
<li>5: For minorVersions &gt;=1, the number of data bytes/checksum chunk (4 bytes)
<li>6: onDiskDataSizeWithHeader: For minorVersions &gt;=1, the size of data 'on disk', including
header, excluding checksums (4 bytes)
</ul>
</li>
<li><b>Raw/Compressed/Encrypted/Encoded data:</b> The compression algorithm is the same for all
the blocks in an <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a>. If compression is NONE, this is just raw, serialized Cells.
<li><b>Tail:</b> For minorVersions &gt;=1, a series of 4 byte checksums, one each for the number
of bytes specified by bytesPerChecksum.
</ul>
<h3>Caching</h3> Caches cache whole blocks with trailing checksums if any. We then tag on some
metadata, the content of BLOCK_METADATA_SPACE which will be flag on if we are doing 'hbase'
checksums and then the offset into the file which is needed when we re-make a cache key when we
return the block to the cache as 'done'. See <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#serialize-java.nio.ByteBuffer-boolean-"><code>Cacheable.serialize(ByteBuffer, boolean)</code></a> and
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getDeserializer--"><code>Cacheable.getDeserializer()</code></a>.
<p>
TODO: Should we cache the checksums? Down in Writer#getBlockForCaching(CacheConfig) where we make
a block to cache-on-write, there is an attempt at turning off checksums. This is not the only
place we get blocks to cache. We also will cache the raw return from an hdfs read. In this case,
the checksums may be present. If the cache is backed by something that doesn't do ECC, say an
SSD, we might want to preserve checksums. For now this is open question.
<p>
TODO: Over in BucketCache, we save a block allocation by doing a custom serialization. Be sure to
change it if serialization changes in here. Could we add a method here that takes an IOEngine and
that then serializes to it rather than expose our internals over in BucketCache? IOEngine is in
the bucket subpackage. Pull it up? Then this class knows about bucketcache. Ugh.</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>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockDeserializer.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockDeserializer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockIterator.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockIterator</a></span></code>
<div class="block">Iterator for reading <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFileBlock</code></a>s in load-on-open-section, such as root data index
block, meta index block, file info block etc.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockWritable.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockWritable</a></span></code>
<div class="block">Something that can be written into a block.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a></span></code>
<div class="block">An HFile block reader with iteration ability.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReaderImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReaderImpl</a></span></code>
<div class="block">Reads version 2 HFile blocks from the filesystem.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Header.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.Header</a></span></code>&nbsp;</td>
</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/hfile/HFileBlock.PrefetchedHeader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.PrefetchedHeader</a></span></code>
<div class="block">Data-structure to use caching the header of the NEXT block.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.Writer</a></span></code>
<div class="block">Unified version 2 <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> block writer.</div>
</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 <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#allocator">allocator</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#BLOCK_DESERIALIZER">BLOCK_DESERIALIZER</a></span></code>
<div class="block">Used deserializing blocks from Cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#BLOCK_METADATA_SPACE">BLOCK_METADATA_SPACE</a></span></code>
<div class="block">Space for metadata on a block that gets stored along with the block when we cache it.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#blockType">blockType</a></span></code>
<div class="block">Type of block.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#bufWithoutChecksum">bufWithoutChecksum</a></span></code>
<div class="block">The in-memory representation of the hfile block.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#CHECKSUM_SIZE">CHECKSUM_SIZE</a></span></code>
<div class="block">Each checksum value is an integer that can be stored in 4 bytes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD">CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</a></span></code>
<div class="block">On a checksum failure, do these many succeeding read requests using hdfs checksums before
auto-reenabling hbase checksum verification.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#DESERIALIZER_IDENTIFIER">DESERIALIZER_IDENTIFIER</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#DONT_FILL_HEADER">DONT_FILL_HEADER</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#DUMMY_HEADER_NO_CHECKSUM">DUMMY_HEADER_NO_CHECKSUM</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#fileContext">fileContext</a></span></code>
<div class="block">Meta data that holds meta information on the hfileblock.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#FILL_HEADER">FILL_HEADER</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#FIXED_OVERHEAD">FIXED_OVERHEAD</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/hfile/HFileBlock.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#MULTI_BYTE_BUFFER_HEAP_SIZE">MULTI_BYTE_BUFFER_HEAP_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#nextBlockOnDiskSize">nextBlockOnDiskSize</a></span></code>
<div class="block">The on-disk size of the next block, including the header and checksums if present.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#offset">offset</a></span></code>
<div class="block">The offset of this block in the file.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskDataSizeWithHeader">onDiskDataSizeWithHeader</a></span></code>
<div class="block">Size on disk of header + data.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskSizeWithoutHeader">onDiskSizeWithoutHeader</a></span></code>
<div class="block">Size on disk excluding header, including checksum.</div>
</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/hfile/HFileBlock.html#prevBlockOffset">prevBlockOffset</a></span></code>
<div class="block">The offset of the previous block on disk.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#totalChecksumBytes">totalChecksumBytes</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#uncompressedSizeWithoutHeader">uncompressedSizeWithoutHeader</a></span></code>
<div class="block">Size of pure data.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#UNSET">UNSET</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#HFileBlock-org.apache.hadoop.hbase.io.hfile.BlockType-int-int-long-org.apache.hadoop.hbase.nio.ByteBuff-boolean-long-int-int-org.apache.hadoop.hbase.io.hfile.HFileContext-org.apache.hadoop.hbase.io.ByteBuffAllocator-">HFileBlock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType,
int&nbsp;onDiskSizeWithoutHeader,
int&nbsp;uncompressedSizeWithoutHeader,
long&nbsp;prevBlockOffset,
<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
boolean&nbsp;fillHeader,
long&nbsp;offset,
int&nbsp;nextBlockOnDiskSize,
int&nbsp;onDiskDataSizeWithHeader,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;fileContext,
<a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;allocator)</code>
<div class="block">Creates a new <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> block from the given fields.</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>private <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#addMetaData-java.nio.ByteBuffer-boolean-">addMetaData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;destination,
boolean&nbsp;includeNextBlockMetadata)</code>
<div class="block">Adds metadata at current position (position is moved forward).</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#allocateBufferForUnpacking--">allocateBufferForUnpacking</a></span>()</code>
<div class="block">Always allocates a new buffer of the correct size.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#computeTotalChecksumBytes--">computeTotalChecksumBytes</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockBuilder.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#createBuilder-org.apache.hadoop.hbase.io.hfile.HFileBlock-org.apache.hadoop.hbase.nio.ByteBuff-">createBuilder</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;blk,
<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;newBuff)</code>
<div class="block">Creates a new HFileBlockBuilder from the existing block and a new ByteBuff.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#createFromBuff-org.apache.hadoop.hbase.nio.ByteBuff-boolean-long-int-org.apache.hadoop.hbase.io.hfile.HFileContext-org.apache.hadoop.hbase.io.ByteBuffAllocator-">createFromBuff</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
boolean&nbsp;usesHBaseChecksum,
long&nbsp;offset,
int&nbsp;nextBlockOnDiskSize,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;fileContext,
<a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;allocator)</code>
<div class="block">Creates a block from an existing buffer starting with a header.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#deepCloneOnHeap-org.apache.hadoop.hbase.io.hfile.HFileBlock-">deepCloneOnHeap</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;blk)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#equals-java.lang.Object-">equals</a></span>(<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>&nbsp;comparison)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBlockType--">getBlockType</a></span>()</code>
<div class="block">Returns the block type of this cached HFile block</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferReadOnly--">getBufferReadOnly</a></span>()</code>
<div class="block">Returns a read-only duplicate of the buffer this block stores internally ready to be read.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferWithoutHeader--">getBufferWithoutHeader</a></span>()</code>
<div class="block">Returns a buffer that does not include the header and checksum.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getByteBuffAllocator--">getByteBuffAllocator</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBytesPerChecksum--">getBytesPerChecksum</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getByteStream--">getByteStream</a></span>()</code>
<div class="block">Returns a byte stream reading the data(excluding header and checksum) of this block</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>(package private) byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getChecksumType--">getChecksumType</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDataBlockEncoding--">getDataBlockEncoding</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>(package private) short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDataBlockEncodingId--">getDataBlockEncodingId</a></span>()</code>
<div class="block">Returns get data block encoding id that was used to encode this block</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDeserializer--">getDeserializer</a></span>()</code>
<div class="block">Returns CacheableDeserializer instance which reconstructs original object from ByteBuffer.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>(package private) byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDummyHeaderForVersion--">getDummyHeaderForVersion</a></span>()</code>
<div class="block">Return the appropriate DUMMY_HEADER for the minor version</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getDummyHeaderForVersion-boolean-">getDummyHeaderForVersion</a></span>(boolean&nbsp;usesHBaseChecksum)</code>
<div class="block">Return the appropriate DUMMY_HEADER for the minor version</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getHFileContext--">getHFileContext</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getMetaData-java.nio.ByteBuffer-">getMetaData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;bb)</code>
<div class="block">For use by bucketcache.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getNextBlockOnDiskSize--">getNextBlockOnDiskSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOffset--">getOffset</a></span>()</code>
<div class="block">Cannot be <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#UNSET"><code>UNSET</code></a>.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskDataSizeWithHeader--">getOnDiskDataSizeWithHeader</a></span>()</code>
<div class="block">Returns the size of data on disk + header.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskSizeWithHeader--">getOnDiskSizeWithHeader</a></span>()</code>
<div class="block">Returns the on-disk size of header + data part + checksum.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskSizeWithHeader-org.apache.hadoop.hbase.nio.ByteBuff-boolean-">getOnDiskSizeWithHeader</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;headerBuf,
boolean&nbsp;checksumSupport)</code>
<div class="block">Parse total on disk size including header and checksum.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getOnDiskSizeWithoutHeader--">getOnDiskSizeWithoutHeader</a></span>()</code>
<div class="block">Returns the on-disk size of the data part + checksum (header excluded).</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getPrevBlockOffset--">getPrevBlockOffset</a></span>()</code>
<div class="block">Returns the offset of the previous block of the same type in the file, or -1 if unknown</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getSerializedLength--">getSerializedLength</a></span>()</code>
<div class="block">Returns the length of the ByteBuffer required to serialized the object.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getUncompressedSizeWithoutHeader--">getUncompressedSizeWithoutHeader</a></span>()</code>
<div class="block">Returns the uncompressed size of data part (header and checksum excluded).</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#headerSize--">headerSize</a></span>()</code>
<div class="block">Returns the size of this block header.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#headerSize-boolean-">headerSize</a></span>(boolean&nbsp;usesHBaseChecksum)</code>
<div class="block">Maps a minor version to the size of the header.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#heapSize--">heapSize</a></span>()</code>
<div class="block">Return the approximate 'exclusive deep size' of implementing object.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#isSharedMem--">isSharedMem</a></span>()</code>
<div class="block">Will be override by <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/SharedMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>SharedMemHFileBlock</code></a> or <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ExclusiveMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>ExclusiveMemHFileBlock</code></a>.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#isUnpacked--">isUnpacked</a></span>()</code>
<div class="block">Return true when this block's buffer has been unpacked, false otherwise.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#overwriteHeader--">overwriteHeader</a></span>()</code>
<div class="block">Rewinds <code>buf</code> and writes first 4 header fields.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#refCnt--">refCnt</a></span>()</code>
<div class="block">Reference count of this Cacheable.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#release--">release</a></span>()</code>
<div class="block">Call <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#release--"><code>ByteBuff.release()</code></a> to decrease the reference count, if no other reference, it will
return back the <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> to <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io"><code>ByteBuffAllocator</code></a></div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#retain--">retain</a></span>()</code>
<div class="block">Increase its reference count, and only when no reference we can free the object's memory.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheck--">sanityCheck</a></span>()</code>
<div class="block">Checks if the block is internally consistent, i.e.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheckAssertion-org.apache.hadoop.hbase.io.hfile.BlockType-org.apache.hadoop.hbase.io.hfile.BlockType-">sanityCheckAssertion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;valueFromBuf,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;valueFromField)</code>&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheckAssertion-long-long-java.lang.String-">sanityCheckAssertion</a></span>(long&nbsp;valueFromBuf,
long&nbsp;valueFromField,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</code>&nbsp;</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#sanityCheckUncompressed--">sanityCheckUncompressed</a></span>()</code>
<div class="block">An additional sanity-check in case no compression or encryption is being used.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#serialize-java.nio.ByteBuffer-boolean-">serialize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;destination,
boolean&nbsp;includeNextBlockMetadata)</code>
<div class="block">Serializes its data into destination.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#shallowClone-org.apache.hadoop.hbase.io.hfile.HFileBlock-org.apache.hadoop.hbase.nio.ByteBuff-">shallowClone</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;blk,
<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;newBuf)</code>&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#toStringHeader-org.apache.hadoop.hbase.nio.ByteBuff-">toStringHeader</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)</code>
<div class="block">Convert the contents of the block header into a human readable string.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#totalChecksumBytes--">totalChecksumBytes</a></span>()</code>
<div class="block">Return the number of bytes required to store all the checksums for this block.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#touch--">touch</a></span>()</code>
<div class="block">Calling this method in strategic locations where HFileBlocks are referenced may help diagnose
potential buffer leaks.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#touch-java.lang.Object-">touch</a></span>(<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>&nbsp;hint)</code>&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#unpack-org.apache.hadoop.hbase.io.hfile.HFileContext-org.apache.hadoop.hbase.io.hfile.HFileBlock.FSReader-">unpack</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;fileContext,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a>&nbsp;reader)</code>
<div class="block">Retrieves the decompressed/decrypted view of this block.</div>
</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#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#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#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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.nio.HBaseReferenceCounted">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.nio.<a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html#release-int-">release</a>, <a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html#retain-int-">retain</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/hfile/HFileBlock.html#line.124">LOG</a></pre>
</li>
</ul>
<a name="FIXED_OVERHEAD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FIXED_OVERHEAD</h4>
<pre>public static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.125">FIXED_OVERHEAD</a></pre>
</li>
</ul>
<a name="blockType">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>blockType</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.150">blockType</a></pre>
<div class="block">Type of block. Header field 0.</div>
</li>
</ul>
<a name="onDiskSizeWithoutHeader">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDiskSizeWithoutHeader</h4>
<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.156">onDiskSizeWithoutHeader</a></pre>
<div class="block">Size on disk excluding header, including checksum. Header field 1.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader-byte:A-int-int-int-int-"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="uncompressedSizeWithoutHeader">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uncompressedSizeWithoutHeader</h4>
<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.162">uncompressedSizeWithoutHeader</a></pre>
<div class="block">Size of pure data. Does not include header or checksums. Header field 2.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader-byte:A-int-int-int-int-"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="prevBlockOffset">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prevBlockOffset</h4>
<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.168">prevBlockOffset</a></pre>
<div class="block">The offset of the previous block on disk. Header field 3.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader-byte:A-int-int-int-int-"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="onDiskDataSizeWithHeader">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDiskDataSizeWithHeader</h4>
<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.175">onDiskDataSizeWithHeader</a></pre>
<div class="block">Size on disk of header + data. Excludes checksum. Header field 6, OR calculated from
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskSizeWithoutHeader"><code>onDiskSizeWithoutHeader</code></a> when using HDFS checksum.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html#putHeader-byte:A-int-int-int-int-"><code>HFileBlock.Writer.putHeader(byte[], int, int, int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="bufWithoutChecksum">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bufWithoutChecksum</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.194">bufWithoutChecksum</a></pre>
<div class="block">The in-memory representation of the hfile block. Can be on or offheap. Can be backed by a
single ByteBuffer or by many. Make no assumptions.
<p>
Be careful reading from this <code>buf</code>. Duplicate and work on the duplicate or if not,
be sure to reset position and limit else trouble down the road.
<p>
TODO: Make this read-only once made.
<p>
We are using the ByteBuff type. ByteBuffer is not extensible yet we need to be able to have a
ByteBuffer-like API across multiple ByteBuffers reading from a cache such as BucketCache. So,
we have this ByteBuff type. Unfortunately, it is spread all about HFileBlock. Would be good if
could be confined to cache-use only but hard-to-do.
<p>
NOTE: this byteBuff including HFileBlock header and data, but excluding checksum.</div>
</li>
</ul>
<a name="fileContext">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fileContext</h4>
<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.199">fileContext</a></pre>
<div class="block">Meta data that holds meta information on the hfileblock.</div>
</li>
</ul>
<a name="offset">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>offset</h4>
<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.205">offset</a></pre>
<div class="block">The offset of this block in the file. Populated by the reader for convenience of access. This
offset is not part of the block header.</div>
</li>
</ul>
<a name="nextBlockOnDiskSize">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextBlockOnDiskSize</h4>
<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.215">nextBlockOnDiskSize</a></pre>
<div class="block">The on-disk size of the next block, including the header and checksums if present. UNSET if
unknown. Blocks try to carry the size of the next block to read in this data member. Usually we
get block sizes from the hfile index but sometimes the index is not available: e.g. when we
read the indexes themselves (indexes are stored in blocks, we do not have an index for the
indexes). Saves seeks especially around file open when there is a flurry of reading in hfile
metadata.</div>
</li>
</ul>
<a name="allocator">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocator</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.217">allocator</a></pre>
</li>
</ul>
<a name="CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</h4>
<pre>static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.223">CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD</a></pre>
<div class="block">On a checksum failure, do these many succeeding read requests using hdfs checksums before
auto-reenabling hbase checksum verification.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="UNSET">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UNSET</h4>
<pre>private static&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.225">UNSET</a></pre>
</li>
</ul>
<a name="FILL_HEADER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FILL_HEADER</h4>
<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.226">FILL_HEADER</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.FILL_HEADER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DONT_FILL_HEADER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DONT_FILL_HEADER</h4>
<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.227">DONT_FILL_HEADER</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.DONT_FILL_HEADER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MULTI_BYTE_BUFFER_HEAP_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MULTI_BYTE_BUFFER_HEAP_SIZE</h4>
<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.230">MULTI_BYTE_BUFFER_HEAP_SIZE</a></pre>
</li>
</ul>
<a name="BLOCK_METADATA_SPACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BLOCK_METADATA_SPACE</h4>
<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.244">BLOCK_METADATA_SPACE</a></pre>
<div class="block">Space for metadata on a block that gets stored along with the block when we cache it. There are
a few bytes stuck on the end of the HFileBlock that we pull in from HDFS. 8 bytes are for the
offset of this block (long) in the file. Offset is important because is is used when we remake
the CacheKey when we return block to the cache when done. There is also a flag on whether
checksumming is being done by hbase or not. See class comment for note on uncertain state of
checksumming of blocks that come out of cache (should we or should we not?). Finally there are
4 bytes to hold the length of the next block which can save a seek on occasion if available.
(This EXTRA info came in with original commit of the bucketcache, HBASE-7404. It was formerly
known as EXTRA_SERIALIZATION_SPACE).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.BLOCK_METADATA_SPACE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHECKSUM_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKSUM_SIZE</h4>
<pre>static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.250">CHECKSUM_SIZE</a></pre>
<div class="block">Each checksum value is an integer that can be stored in 4 bytes.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.HFileBlock.CHECKSUM_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DUMMY_HEADER_NO_CHECKSUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DUMMY_HEADER_NO_CHECKSUM</h4>
<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.252">DUMMY_HEADER_NO_CHECKSUM</a></pre>
</li>
</ul>
<a name="BLOCK_DESERIALIZER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BLOCK_DESERIALIZER</h4>
<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.267">BLOCK_DESERIALIZER</a></pre>
<div class="block">Used deserializing blocks from Cache. <code>
++++++++++++++
+ HFileBlock +
++++++++++++++
+ Checksums + <= Optional
++++++++++++++
+ Metadata! + <= See note on BLOCK_METADATA_SPACE above.
++++++++++++++
</code></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#serialize-java.nio.ByteBuffer-boolean-"><code>serialize(ByteBuffer, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="DESERIALIZER_IDENTIFIER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DESERIALIZER_IDENTIFIER</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.295">DESERIALIZER_IDENTIFIER</a></pre>
</li>
</ul>
<a name="totalChecksumBytes">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>totalChecksumBytes</h4>
<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.301">totalChecksumBytes</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="HFileBlock-org.apache.hadoop.hbase.io.hfile.BlockType-int-int-long-org.apache.hadoop.hbase.nio.ByteBuff-boolean-long-int-int-org.apache.hadoop.hbase.io.hfile.HFileContext-org.apache.hadoop.hbase.io.ByteBuffAllocator-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HFileBlock</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.326">HFileBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType,
int&nbsp;onDiskSizeWithoutHeader,
int&nbsp;uncompressedSizeWithoutHeader,
long&nbsp;prevBlockOffset,
<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
boolean&nbsp;fillHeader,
long&nbsp;offset,
int&nbsp;nextBlockOnDiskSize,
int&nbsp;onDiskDataSizeWithHeader,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;fileContext,
<a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;allocator)</pre>
<div class="block">Creates a new <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> block from the given fields. This constructor is used only while
writing blocks and caching, and is sitting in a byte buffer and we want to stuff the block into
cache.
<p>
TODO: The caller presumes no checksumming
<p>
TODO: HFile block writer can also off-heap ?
</p>
required of this block instance since going into cache; checksum already verified on underlying
block data pulled in from filesystem. Is that correct? What if cache is SSD?</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockType</code> - the type of this block, see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><code>BlockType</code></a></dd>
<dd><code>onDiskSizeWithoutHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskSizeWithoutHeader"><code>onDiskSizeWithoutHeader</code></a></dd>
<dd><code>uncompressedSizeWithoutHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#uncompressedSizeWithoutHeader"><code>uncompressedSizeWithoutHeader</code></a></dd>
<dd><code>prevBlockOffset</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#prevBlockOffset"><code>prevBlockOffset</code></a></dd>
<dd><code>buf</code> - block buffer with header
(<a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#HFILEBLOCK_HEADER_SIZE"><code>HConstants.HFILEBLOCK_HEADER_SIZE</code></a> bytes)</dd>
<dd><code>fillHeader</code> - when true, write the first 4 header fields into passed
buffer.</dd>
<dd><code>offset</code> - the file offset the block was read from</dd>
<dd><code>onDiskDataSizeWithHeader</code> - see <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#onDiskDataSizeWithHeader"><code>onDiskDataSizeWithHeader</code></a></dd>
<dd><code>fileContext</code> - HFile meta data</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="createFromBuff-org.apache.hadoop.hbase.nio.ByteBuff-boolean-long-int-org.apache.hadoop.hbase.io.hfile.HFileContext-org.apache.hadoop.hbase.io.ByteBuffAllocator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFromBuff</h4>
<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.353">createFromBuff</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
boolean&nbsp;usesHBaseChecksum,
long&nbsp;offset,
int&nbsp;nextBlockOnDiskSize,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;fileContext,
<a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;allocator)
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">Creates a block from an existing buffer starting with a header. Rewinds and takes ownership of
the buffer. By definition of rewind, ignores the buffer position, but if you slice the buffer
beforehand, it will rewind to that point.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buf</code> - Has header, content, and trailing checksums if present.</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="getOnDiskSizeWithHeader-org.apache.hadoop.hbase.nio.ByteBuff-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOnDiskSizeWithHeader</h4>
<pre>private static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.399">getOnDiskSizeWithHeader</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;headerBuf,
boolean&nbsp;checksumSupport)</pre>
<div class="block">Parse total on disk size including header and checksum.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>headerBuf</code> - Header ByteBuffer. Presumed exact size of header.</dd>
<dd><code>checksumSupport</code> - true if checksum verification is in use.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Size of the block with header included.</dd>
</dl>
</li>
</ul>
<a name="getNextBlockOnDiskSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextBlockOnDiskSize</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.408">getNextBlockOnDiskSize</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the on-disk size of the next block (including the header size and any checksums if
present) read by peeking into the next block's header; use as a hint when doing a read
of the next block when scanning or running over a file.</dd>
</dl>
</li>
</ul>
<a name="getBlockType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlockType</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.413">getBlockType</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getBlockType--">Cacheable</a></code></span></div>
<div class="block">Returns the block type of this cached HFile block</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getBlockType--">getBlockType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
</dl>
</li>
</ul>
<a name="refCnt--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refCnt</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.418">refCnt</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#refCnt--">Cacheable</a></code></span></div>
<div class="block">Reference count of this Cacheable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#refCnt--">refCnt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>refCnt</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
</dl>
</li>
</ul>
<a name="retain--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>retain</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.423">retain</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#retain--">Cacheable</a></code></span></div>
<div class="block">Increase its reference count, and only when no reference we can free the object's memory.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#retain--">retain</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>retain</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
</dl>
</li>
</ul>
<a name="release--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.433">release</a>()</pre>
<div class="block">Call <a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html#release--"><code>ByteBuff.release()</code></a> to decrease the reference count, if no other reference, it will
return back the <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> to <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io"><code>ByteBuffAllocator</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#release--">release</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>release</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
</dl>
</li>
</ul>
<a name="touch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>touch</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.443">touch</a>()</pre>
<div class="block">Calling this method in strategic locations where HFileBlocks are referenced may help diagnose
potential buffer leaks. We pass the block itself as a default hint, but one can use
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#touch-java.lang.Object-"><code>touch(Object)</code></a> to pass their own hint as well.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html#touch--">touch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>touch</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
</dl>
</li>
</ul>
<a name="touch-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>touch</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.448">touch</a>(<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>&nbsp;hint)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html#touch-java.lang.Object-">touch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/nio/HBaseReferenceCounted.html" title="interface in org.apache.hadoop.hbase.nio">HBaseReferenceCounted</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>touch</code>&nbsp;in interface&nbsp;<code>org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted</code></dd>
</dl>
</li>
</ul>
<a name="getDataBlockEncodingId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataBlockEncodingId</h4>
<pre>short&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.454">getDataBlockEncodingId</a>()</pre>
<div class="block">Returns get data block encoding id that was used to encode this block</div>
</li>
</ul>
<a name="getOnDiskSizeWithHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOnDiskSizeWithHeader</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.463">getOnDiskSizeWithHeader</a>()</pre>
<div class="block">Returns the on-disk size of header + data part + checksum.</div>
</li>
</ul>
<a name="getOnDiskSizeWithoutHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOnDiskSizeWithoutHeader</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.468">getOnDiskSizeWithoutHeader</a>()</pre>
<div class="block">Returns the on-disk size of the data part + checksum (header excluded).</div>
</li>
</ul>
<a name="getUncompressedSizeWithoutHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUncompressedSizeWithoutHeader</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.473">getUncompressedSizeWithoutHeader</a>()</pre>
<div class="block">Returns the uncompressed size of data part (header and checksum excluded).</div>
</li>
</ul>
<a name="getPrevBlockOffset--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrevBlockOffset</h4>
<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.478">getPrevBlockOffset</a>()</pre>
<div class="block">Returns the offset of the previous block of the same type in the file, or -1 if unknown</div>
</li>
</ul>
<a name="overwriteHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>overwriteHeader</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.486">overwriteHeader</a>()</pre>
<div class="block">Rewinds <code>buf</code> and writes first 4 header fields. <code>buf</code> position is modified as
side-effect.</div>
</li>
</ul>
<a name="getBufferWithoutHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBufferWithoutHeader</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.503">getBufferWithoutHeader</a>()</pre>
<div class="block">Returns a buffer that does not include the header and checksum.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the buffer with header skipped and checksum omitted.</dd>
</dl>
</li>
</ul>
<a name="getBufferReadOnly--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBufferReadOnly</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.518">getBufferReadOnly</a>()</pre>
<div class="block">Returns a read-only duplicate of the buffer this block stores internally ready to be read.
Clients must not modify the buffer object though they may set position and limit on the
returned buffer since we pass back a duplicate. This method has to be public because it is used
in <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilter.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>CompoundBloomFilter</code></a> to avoid object creation on every Bloom filter lookup, but has
to be used with caution. Buffer holds header, block content, and any follow-on checksums if
present.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the buffer of this block for read-only operations,the buffer includes header,but not
checksum.</dd>
</dl>
</li>
</ul>
<a name="getByteBuffAllocator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getByteBuffAllocator</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/ByteBuffAllocator.html" title="class in org.apache.hadoop.hbase.io">ByteBuffAllocator</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.525">getByteBuffAllocator</a>()</pre>
</li>
</ul>
<a name="sanityCheckAssertion-long-long-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sanityCheckAssertion</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.529">sanityCheckAssertion</a>(long&nbsp;valueFromBuf,
long&nbsp;valueFromField,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)
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="sanityCheckAssertion-org.apache.hadoop.hbase.io.hfile.BlockType-org.apache.hadoop.hbase.io.hfile.BlockType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sanityCheckAssertion</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.537">sanityCheckAssertion</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;valueFromBuf,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;valueFromField)
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="sanityCheck--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sanityCheck</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.552">sanityCheck</a>()
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">Checks if the block is internally consistent, i.e. the first
<a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#HFILEBLOCK_HEADER_SIZE"><code>HConstants.HFILEBLOCK_HEADER_SIZE</code></a> bytes of the buffer contain a valid header consistent
with the fields. Assumes a packed block structure. This function is primary for testing and
debugging, and is not thread-safe, because it alters the internal buffer pointer. Used by tests
only.</div>
<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="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.589">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></dd>
</dl>
</li>
</ul>
<a name="unpack-org.apache.hadoop.hbase.io.hfile.HFileContext-org.apache.hadoop.hbase.io.hfile.HFileBlock.FSReader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unpack</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.629">unpack</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;fileContext,
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a>&nbsp;reader)
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">Retrieves the decompressed/decrypted view of this block. An encoded block remains in its
encoded structure. Internal structures are shared between instances where applicable.</div>
<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="allocateBufferForUnpacking--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocateBufferForUnpacking</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.668">allocateBufferForUnpacking</a>()</pre>
<div class="block">Always allocates a new buffer of the correct size. Copies header bytes from the existing
buffer. Does not change header fields. Reserve room to keep checksum bytes too.</div>
</li>
</ul>
<a name="isUnpacked--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUnpacked</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.688">isUnpacked</a>()</pre>
<div class="block">Return true when this block's buffer has been unpacked, false otherwise. Note this is a
calculated heuristic, not tracked attribute of the block.</div>
</li>
</ul>
<a name="getOffset--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOffset</h4>
<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.700">getOffset</a>()</pre>
<div class="block">Cannot be <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#UNSET"><code>UNSET</code></a>. Must be a legitimate value. Used re-making the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>BlockCacheKey</code></a>
when block is returned to the cache.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the offset of this block in the file it was read from</dd>
</dl>
</li>
</ul>
<a name="getByteStream--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getByteStream</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInputStream.html?is-external=true" title="class or interface in java.io">DataInputStream</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.708">getByteStream</a>()</pre>
<div class="block">Returns a byte stream reading the data(excluding header and checksum) of this block</div>
</li>
</ul>
<a name="heapSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>heapSize</h4>
<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.715">heapSize</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">HeapSize</a></code></span></div>
<div class="block">Return the approximate 'exclusive deep size' of implementing object. Includes count of payload
and hosting object sizings.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">heapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd>
</dl>
</li>
</ul>
<a name="isSharedMem--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSharedMem</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.729">isSharedMem</a>()</pre>
<div class="block">Will be override by <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/SharedMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>SharedMemHFileBlock</code></a> or <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ExclusiveMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>ExclusiveMemHFileBlock</code></a>. Return true
by default.</div>
</li>
</ul>
<a name="sanityCheckUncompressed--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sanityCheckUncompressed</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1925">sanityCheckUncompressed</a>()
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">An additional sanity-check in case no compression or encryption is being used.</div>
<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="getSerializedLength--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSerializedLength</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1935">getSerializedLength</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getSerializedLength--">Cacheable</a></code></span></div>
<div class="block">Returns the length of the ByteBuffer required to serialized the object. If the object cannot be
serialized, it should return 0.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getSerializedLength--">getSerializedLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>int length in bytes of the serialized form or 0 if the object cannot be cached.</dd>
</dl>
</li>
</ul>
<a name="serialize-java.nio.ByteBuffer-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serialize</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1945">serialize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;destination,
boolean&nbsp;includeNextBlockMetadata)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#serialize-java.nio.ByteBuffer-boolean-">Cacheable</a></code></span></div>
<div class="block">Serializes its data into destination.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#serialize-java.nio.ByteBuffer-boolean-">serialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>destination</code> - Where to serialize to</dd>
<dd><code>includeNextBlockMetadata</code> - Whether to include nextBlockMetadata in the Cache block.</dd>
</dl>
</li>
</ul>
<a name="getMetaData-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetaData</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1958">getMetaData</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;bb)</pre>
<div class="block">For use by bucketcache. This exposes internals.</div>
</li>
</ul>
<a name="addMetaData-java.nio.ByteBuffer-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMetaData</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1968">addMetaData</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;destination,
boolean&nbsp;includeNextBlockMetadata)</pre>
<div class="block">Adds metadata at current position (position is moved forward). Does not flip or reset.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The passed <code>destination</code> with metadata added.</dd>
</dl>
</li>
</ul>
<a name="getDeserializer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeserializer</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1979">getDeserializer</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getDeserializer--">Cacheable</a></code></span></div>
<div class="block">Returns CacheableDeserializer instance which reconstructs original object from ByteBuffer.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html#getDeserializer--">getDeserializer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CacheableDeserialzer instance.</dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1984">hashCode</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.1997">equals</a>(<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>&nbsp;comparison)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></dd>
</dl>
</li>
</ul>
<a name="getDataBlockEncoding--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataBlockEncoding</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2038">getDataBlockEncoding</a>()</pre>
</li>
</ul>
<a name="getChecksumType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChecksumType</h4>
<pre>byte&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2045">getChecksumType</a>()</pre>
</li>
</ul>
<a name="getBytesPerChecksum--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBytesPerChecksum</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2049">getBytesPerChecksum</a>()</pre>
</li>
</ul>
<a name="getOnDiskDataSizeWithHeader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOnDiskDataSizeWithHeader</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2054">getOnDiskDataSizeWithHeader</a>()</pre>
<div class="block">Returns the size of data on disk + header. Excludes checksum.</div>
</li>
</ul>
<a name="totalChecksumBytes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>totalChecksumBytes</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2065">totalChecksumBytes</a>()</pre>
<div class="block">Return the number of bytes required to store all the checksums for this block. Each checksum
value is a 4 byte integer. <br/>
NOTE: ByteBuff returned by <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferWithoutHeader--"><code>getBufferWithoutHeader()</code></a> and
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getBufferReadOnly--"><code>getBufferReadOnly()</code></a> or DataInputStream returned by
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html#getByteStream--"><code>getByteStream()</code></a> does not include checksum.</div>
</li>
</ul>
<a name="computeTotalChecksumBytes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeTotalChecksumBytes</h4>
<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2069">computeTotalChecksumBytes</a>()</pre>
</li>
</ul>
<a name="headerSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>headerSize</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2084">headerSize</a>()</pre>
<div class="block">Returns the size of this block header.</div>
</li>
</ul>
<a name="headerSize-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>headerSize</h4>
<pre>public static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2091">headerSize</a>(boolean&nbsp;usesHBaseChecksum)</pre>
<div class="block">Maps a minor version to the size of the header.</div>
</li>
</ul>
<a name="getDummyHeaderForVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDummyHeaderForVersion</h4>
<pre>byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2101">getDummyHeaderForVersion</a>()</pre>
<div class="block">Return the appropriate DUMMY_HEADER for the minor version</div>
</li>
</ul>
<a name="getDummyHeaderForVersion-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDummyHeaderForVersion</h4>
<pre>private static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2108">getDummyHeaderForVersion</a>(boolean&nbsp;usesHBaseChecksum)</pre>
<div class="block">Return the appropriate DUMMY_HEADER for the minor version</div>
</li>
</ul>
<a name="getHFileContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHFileContext</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2116">getHFileContext</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This HFileBlocks fileContext which will a derivative of the fileContext for the file
from which this block's data was originally read.</dd>
</dl>
</li>
</ul>
<a name="toStringHeader-org.apache.hadoop.hbase.nio.ByteBuff-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toStringHeader</h4>
<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2124">toStringHeader</a>(<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf)
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">Convert the contents of the block header into a human readable string. This is mostly helpful
for debugging. This assumes that the block has minor version > 0.</div>
<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="createBuilder-org.apache.hadoop.hbase.io.hfile.HFileBlock-org.apache.hadoop.hbase.nio.ByteBuff-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBuilder</h4>
<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockBuilder.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockBuilder</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2151">createBuilder</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;blk,
<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;newBuff)</pre>
<div class="block">Creates a new HFileBlockBuilder from the existing block and a new ByteBuff. The builder will be
loaded with all of the original fields from blk, except now using the newBuff and setting
isSharedMem based on the source of the passed in newBuff. An existing HFileBlock may have been
an <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ExclusiveMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>ExclusiveMemHFileBlock</code></a>, but the new buffer might call for a
<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/SharedMemHFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>SharedMemHFileBlock</code></a>. Or vice versa.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blk</code> - the block to clone from</dd>
<dd><code>newBuff</code> - the new buffer to use</dd>
</dl>
</li>
</ul>
<a name="shallowClone-org.apache.hadoop.hbase.io.hfile.HFileBlock-org.apache.hadoop.hbase.nio.ByteBuff-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shallowClone</h4>
<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2161">shallowClone</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;blk,
<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;newBuf)</pre>
</li>
</ul>
<a name="deepCloneOnHeap-org.apache.hadoop.hbase.io.hfile.HFileBlock-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>deepCloneOnHeap</h4>
<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlock.html#line.2165">deepCloneOnHeap</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;blk)</pre>
</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/HFileBlock.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/hfile/HFile.WriterFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockDeserializer.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/HFileBlock.html" target="_top">Frames</a></li>
<li><a href="HFileBlock.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;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>