blob: 9e71178a6d28a02ae940f4819f34b84692cedbb2 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ChecksumUtil (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase.io.hfile, class: ChecksumUtil">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ChecksumUtil.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.io.hfile</a></div>
<h1 title="Class ChecksumUtil" class="title">Class ChecksumUtil</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.io.hfile.ChecksumUtil</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations">@Private
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-34">ChecksumUtil</a></span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">Utility methods to compute and validate checksums.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#CHECKSUM_BUF_SIZE" class="member-name-link">CHECKSUM_BUF_SIZE</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private static boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#generateExceptions" class="member-name-link">generateExceptions</a></code></div>
<div class="col-last odd-row-color">
<div class="block">This is used by unit tests to make checksum failures throw an exception instead of returning
null.</div>
</div>
<div class="col-first even-row-color"><code>static final org.slf4j.Logger</code></div>
<div class="col-second even-row-color"><code><a href="#LOG" class="member-name-link">LOG</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ChecksumUtil</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>(package private) static void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#generateChecksums(byte%5B%5D,int,int,byte%5B%5D,int,org.apache.hadoop.hbase.util.ChecksumType,int)" class="member-name-link">generateChecksums</a><wbr>(byte[]&nbsp;indata,
int&nbsp;startOffset,
int&nbsp;endOffset,
byte[]&nbsp;outdata,
int&nbsp;outOffset,
<a href="../../util/ChecksumType.html" title="enum class in org.apache.hadoop.hbase.util">ChecksumType</a>&nbsp;checksumType,
int&nbsp;bytesPerChecksum)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Generates a checksum for all the data in indata.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#generateExceptionForChecksumFailureForTest(boolean)" class="member-name-link">generateExceptionForChecksumFailureForTest</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Mechanism to throw an exception in case of hbase checksum failure.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>(package private) static long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#numBytes(long,int)" class="member-name-link">numBytes</a><wbr>(long&nbsp;datasize,
int&nbsp;bytesPerChecksum)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the number of bytes needed to store the checksums for a specified data size</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>(package private) static long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#numChunks(long,int)" class="member-name-link">numChunks</a><wbr>(long&nbsp;datasize,
int&nbsp;bytesPerChecksum)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns the number of checksum chunks needed to store the checksums for a specified data size</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>(package private) static boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#validateChecksum(org.apache.hadoop.hbase.nio.ByteBuff,java.lang.String,long,int)" class="member-name-link">validateChecksum</a><wbr>(<a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;pathName,
long&nbsp;offset,
int&nbsp;hdrSize)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Validates that the data in the specified HFileBlock matches the checksum.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#verifyChunkedSums(org.apache.hadoop.util.DataChecksum,org.apache.hadoop.hbase.nio.ByteBuff,org.apache.hadoop.hbase.nio.ByteBuff,java.lang.String)" class="member-name-link">verifyChunkedSums</a><wbr>(org.apache.hadoop.util.DataChecksum&nbsp;dataChecksum,
<a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;data,
<a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;checksums,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;pathName)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Like the hadoop's <code>DataChecksum.verifyChunkedSums(ByteBuffer, ByteBuffer, String, long)</code>,
this method will also verify checksum of each chunk in data.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="LOG">
<h3>LOG</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-36">LOG</a></span></div>
</section>
</li>
<li>
<section class="detail" id="CHECKSUM_BUF_SIZE">
<h3>CHECKSUM_BUF_SIZE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-38">CHECKSUM_BUF_SIZE</a></span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.ChecksumUtil.CHECKSUM_BUF_SIZE">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="generateExceptions">
<h3>generateExceptions</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-46">generateExceptions</a></span></div>
<div class="block">This is used by unit tests to make checksum failures throw an exception instead of returning
null. Returning a null value from checksum validation will cause the higher layer to retry that
read with hdfs-level checksums. Instead, we would like checksum failures to cause the entire
unit test to fail.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>ChecksumUtil</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-35">ChecksumUtil</a></span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="generateChecksums(byte[],int,int,byte[],int,org.apache.hadoop.hbase.util.ChecksumType,int)">
<h3>generateChecksums</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-61">generateChecksums</a></span><wbr><span class="parameters">(byte[]&nbsp;indata,
int&nbsp;startOffset,
int&nbsp;endOffset,
byte[]&nbsp;outdata,
int&nbsp;outOffset,
<a href="../../util/ChecksumType.html" title="enum class in org.apache.hadoop.hbase.util">ChecksumType</a>&nbsp;checksumType,
int&nbsp;bytesPerChecksum)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Generates a checksum for all the data in indata. The checksum is written to outdata.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>indata</code> - input data stream</dd>
<dd><code>startOffset</code> - starting offset in the indata stream from where to compute checkums
from</dd>
<dd><code>endOffset</code> - ending offset in the indata stream upto which checksums needs to be
computed</dd>
<dd><code>outdata</code> - the output buffer where checksum values are written</dd>
<dd><code>outOffset</code> - the starting offset in the outdata where the checksum values are
written</dd>
<dd><code>checksumType</code> - type of checksum</dd>
<dd><code>bytesPerChecksum</code> - number of bytes per checksum value</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="verifyChunkedSums(org.apache.hadoop.util.DataChecksum,org.apache.hadoop.hbase.nio.ByteBuff,org.apache.hadoop.hbase.nio.ByteBuff,java.lang.String)">
<h3>verifyChunkedSums</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-87">verifyChunkedSums</a></span><wbr><span class="parameters">(org.apache.hadoop.util.DataChecksum&nbsp;dataChecksum,
<a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;data,
<a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;checksums,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;pathName)</span></div>
<div class="block">Like the hadoop's <code>DataChecksum.verifyChunkedSums(ByteBuffer, ByteBuffer, String, long)</code>,
this method will also verify checksum of each chunk in data. the difference is: this method can
accept <a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio"><code>ByteBuff</code></a> as arguments, we can not add it in hadoop-common so defined here.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>dataChecksum</code> - to calculate the checksum.</dd>
<dd><code>data</code> - as the input</dd>
<dd><code>checksums</code> - to compare</dd>
<dd><code>pathName</code> - indicate that the data is read from which file.</dd>
<dt>Returns:</dt>
<dd>a flag indicate the checksum match or mismatch.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><code>DataChecksum.verifyChunkedSums(ByteBuffer, ByteBuffer, String, long)</code></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateChecksum(org.apache.hadoop.hbase.nio.ByteBuff,java.lang.String,long,int)">
<h3>validateChecksum</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-166">validateChecksum</a></span><wbr><span class="parameters">(<a href="../../nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;buf,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;pathName,
long&nbsp;offset,
int&nbsp;hdrSize)</span></div>
<div class="block">Validates that the data in the specified HFileBlock matches the checksum. Generates the
checksums for the data and then validate that it matches those stored in the end of the data.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>buf</code> - Contains the data in following order: HFileBlock header, data, checksums.</dd>
<dd><code>pathName</code> - Path of the HFile to which the <code>data</code> belongs. Only used for logging.</dd>
<dd><code>offset</code> - offset of the data being validated. Only used for logging.</dd>
<dd><code>hdrSize</code> - Size of the block header in <code>data</code>. Only used for logging.</dd>
<dt>Returns:</dt>
<dd>True if checksum matches, else false.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="numBytes(long,int)">
<h3>numBytes</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-195">numBytes</a></span><wbr><span class="parameters">(long&nbsp;datasize,
int&nbsp;bytesPerChecksum)</span></div>
<div class="block">Returns the number of bytes needed to store the checksums for a specified data size</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>datasize</code> - number of bytes of data</dd>
<dd><code>bytesPerChecksum</code> - number of bytes in a checksum chunk</dd>
<dt>Returns:</dt>
<dd>The number of bytes needed to store the checksum values</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="numChunks(long,int)">
<h3>numChunks</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-205">numChunks</a></span><wbr><span class="parameters">(long&nbsp;datasize,
int&nbsp;bytesPerChecksum)</span></div>
<div class="block">Returns the number of checksum chunks needed to store the checksums for a specified data size</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>datasize</code> - number of bytes of data</dd>
<dd><code>bytesPerChecksum</code> - number of bytes in a checksum chunk</dd>
<dt>Returns:</dt>
<dd>The number of checksum chunks</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="generateExceptionForChecksumFailureForTest(boolean)">
<h3>generateExceptionForChecksumFailureForTest</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html#line-219">generateExceptionForChecksumFailureForTest</a></span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Mechanism to throw an exception in case of hbase checksum failure. This is used by unit tests
only.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - Setting this to true will cause hbase checksum verification failures to generate
exceptions.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>