blob: 38bad9368db0c75271756a76dc61544f7caefde4 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>HashProvider (Apache BookKeeper :: Parent 4.18.0-SNAPSHOT API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/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="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HashProvider (Apache BookKeeper :: Parent 4.18.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HashProvider.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" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.scurrilous.circe</a></div>
<h2 title="Interface HashProvider" class="title">Interface HashProvider</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/AbstractHashProvider.html" title="class in com.scurrilous.circe.impl">AbstractHashProvider</a></code>, <code><a href="checksum/Crc32cSse42Provider.html" title="class in com.scurrilous.circe.checksum">Crc32cSse42Provider</a></code>, <code><a href="crc/StandardCrcProvider.html" title="class in com.scurrilous.circe.crc">StandardCrcProvider</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">HashProvider</span></pre>
<div class="block">Interface used to obtain instances of various kinds of hash algorithms.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="StatefulHash.html" title="interface in com.scurrilous.circe">StatefulHash</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createStateful(com.scurrilous.circe.HashParameters)">createStateful</a></span>&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</code></th>
<td class="colLast">
<div class="block">Creates a stateful hash function using the given parameters.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="IncrementalIntHash.html" title="interface in com.scurrilous.circe">IncrementalIntHash</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIncrementalInt(com.scurrilous.circe.HashParameters)">getIncrementalInt</a></span>&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</code></th>
<td class="colLast">
<div class="block">Requests an incremental, stateless, int-width hash function with the
given parameters.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="IncrementalLongHash.html" title="interface in com.scurrilous.circe">IncrementalLongHash</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIncrementalLong(com.scurrilous.circe.HashParameters)">getIncrementalLong</a></span>&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</code></th>
<td class="colLast">
<div class="block">Requests an incremental, stateless, long-width hash function with the
given parameters.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="StatelessIntHash.html" title="interface in com.scurrilous.circe">StatelessIntHash</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatelessInt(com.scurrilous.circe.HashParameters)">getStatelessInt</a></span>&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</code></th>
<td class="colLast">
<div class="block">Requests a stateless, int-width hash function with the given parameters.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="StatelessLongHash.html" title="interface in com.scurrilous.circe">StatelessLongHash</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatelessLong(com.scurrilous.circe.HashParameters)">getStatelessLong</a></span>&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</code></th>
<td class="colLast">
<div class="block">Requests a stateless, long-width hash function with the given parameters.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.EnumSet&lt;<a href="HashSupport.html" title="enum in com.scurrilous.circe">HashSupport</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#querySupport(com.scurrilous.circe.HashParameters)">querySupport</a></span>&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</code></th>
<td class="colLast">
<div class="block">Returns information about the available implementations corresponding to
the given hash algorithm parameters.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="querySupport(com.scurrilous.circe.HashParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>querySupport</h4>
<pre class="methodSignature">java.util.EnumSet&lt;<a href="HashSupport.html" title="enum in com.scurrilous.circe">HashSupport</a>&gt;&nbsp;querySupport&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</pre>
<div class="block">Returns information about the available implementations corresponding to
the given hash algorithm parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the hash algorithm parameters</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a set of flags indicating the level of support</dd>
</dl>
</li>
</ul>
<a id="createStateful(com.scurrilous.circe.HashParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createStateful</h4>
<pre class="methodSignature"><a href="StatefulHash.html" title="interface in com.scurrilous.circe">StatefulHash</a>&nbsp;createStateful&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</pre>
<div class="block">Creates a stateful hash function using the given parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the hash algorithm parameters</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stateful hash function</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if this provider cannot support the
given parameters</dd>
</dl>
</li>
</ul>
<a id="getStatelessInt(com.scurrilous.circe.HashParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatelessInt</h4>
<pre class="methodSignature"><a href="StatelessIntHash.html" title="interface in com.scurrilous.circe">StatelessIntHash</a>&nbsp;getStatelessInt&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</pre>
<div class="block">Requests a stateless, int-width hash function with the given parameters.
Because not all stateless hash functions are incremental, this method may
be able to return implementations not supported by or more optimized than
<a href="#getIncrementalInt(com.scurrilous.circe.HashParameters)"><code>getIncrementalInt(com.scurrilous.circe.HashParameters)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the hash algorithm parameters</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stateless int-width hash function</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if this provider cannot support the
given parameters</dd>
</dl>
</li>
</ul>
<a id="getStatelessLong(com.scurrilous.circe.HashParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatelessLong</h4>
<pre class="methodSignature"><a href="StatelessLongHash.html" title="interface in com.scurrilous.circe">StatelessLongHash</a>&nbsp;getStatelessLong&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</pre>
<div class="block">Requests a stateless, long-width hash function with the given parameters.
Because not all stateless hash functions are incremental, this method may
be able to return implementations not supported by or more optimized than
<a href="#getIncrementalLong(com.scurrilous.circe.HashParameters)"><code>getIncrementalLong(com.scurrilous.circe.HashParameters)</code></a>.
<p>
Note that this method may return a less efficient hash function than
<a href="#getStatelessInt(com.scurrilous.circe.HashParameters)"><code>getStatelessInt(com.scurrilous.circe.HashParameters)</code></a> for hashes of 32 bits or less.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the hash algorithm parameters</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stateless long-width hash function</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if this provider cannot support the
given parameters</dd>
</dl>
</li>
</ul>
<a id="getIncrementalInt(com.scurrilous.circe.HashParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIncrementalInt</h4>
<pre class="methodSignature"><a href="IncrementalIntHash.html" title="interface in com.scurrilous.circe">IncrementalIntHash</a>&nbsp;getIncrementalInt&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</pre>
<div class="block">Requests an incremental, stateless, int-width hash function with the
given parameters. Note that although an algorithm may be available in
incremental form, some potentially more optimized implementations may not
support that form, and therefore cannot be provided be this method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the hash algorithm parameters</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stateful int-width hash function</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if this provider cannot support the
given parameters</dd>
</dl>
</li>
</ul>
<a id="getIncrementalLong(com.scurrilous.circe.HashParameters)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getIncrementalLong</h4>
<pre class="methodSignature"><a href="IncrementalLongHash.html" title="interface in com.scurrilous.circe">IncrementalLongHash</a>&nbsp;getIncrementalLong&#8203;(<a href="HashParameters.html" title="interface in com.scurrilous.circe">HashParameters</a>&nbsp;params)</pre>
<div class="block">Requests an incremental, stateless, long-width hash function with the
given parameters. Note that although an algorithm may be available in
incremental form, some potentially more optimized implementations may not
support that form, and therefore cannot be provided be this method.
<p>
Also note that this method may return a less efficient hash function than
<a href="#getIncrementalInt(com.scurrilous.circe.HashParameters)"><code>getIncrementalInt(com.scurrilous.circe.HashParameters)</code></a> for hashes of 32 bits or less.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the hash algorithm parameters</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stateful long-width hash function</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if this provider cannot support the
given parameters</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HashProvider.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" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2011&#x2013;2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>