blob: c5a132852fe9a645dd236c10cb6e85002369a0ec [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 (1.8.0_102) on Fri Nov 25 15:51:08 PST 2016 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FastMemory (com.yahoo.datasketches:sketches-misc 0.8.3-SNAPSHOT API)</title>
<meta name="date" content="2016-11-25">
<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="FastMemory (com.yahoo.datasketches:sketches-misc 0.8.3-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":10,"i26":10,"i27":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/FastMemory.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="../../../com/yahoo/memory/AllocFastMemory.html" title="class in com.yahoo.memory"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../com/yahoo/memory/MemoryPerformance.html" title="class in com.yahoo.memory"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/yahoo/memory/FastMemory.html" target="_top">Frames</a></li>
<li><a href="FastMemory.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>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="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">com.yahoo.memory</div>
<h2 title="Class FastMemory" class="title">Class FastMemory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://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>com.yahoo.memory.FastMemory</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../com/yahoo/memory/AllocFastMemory.html" title="class in com.yahoo.memory">AllocFastMemory</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">FastMemory</span>
extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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>protected <a href="http://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="../../../com/yahoo/memory/FastMemory.html#byteBuf_">byteBuf_</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#capacityBytes_">capacityBytes_</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#memArray_">memArray_</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected com.yahoo.memory.MemoryRequest</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#memReq_">memReq_</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#nativeRawStartAddress_">nativeRawStartAddress_</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#objectBaseOffset_">objectBaseOffset_</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#FastMemory-byte:A-">FastMemory</a></span>(byte[]&nbsp;byteArray)</code>
<div class="block">Provides access to the given byteArray using Memory interface</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#FastMemory-java.nio.ByteBuffer-">FastMemory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuf)</code>
<div class="block">Provides access to the backing store of the given ByteBuffer using Memory interface</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#FastMemory-long:A-">FastMemory</a></span>(long[]&nbsp;longArray)</code>
<div class="block">Provides access to the given longArray using Memory interface</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#FastMemory-long-java.lang.Object-java.nio.ByteBuffer-">FastMemory</a></span>(long&nbsp;objectBaseOffset,
<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;memArray,
<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuf)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#FastMemory-com.yahoo.memory.NativeMemory-">FastMemory</a></span>(com.yahoo.memory.NativeMemory&nbsp;mem)</code>
<div class="block">Test for proposed new NativeMemory</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><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#array--">array</a></span>()</code>
<div class="block">Returns the backing on-heap primitive array if there is one, otherwise returns null</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="http://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="../../../com/yahoo/memory/FastMemory.html#byteBuffer--">byteBuffer</a></span>()</code>
<div class="block">Returns the backing ByteBuffer if there is one, otherwise returns null</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#freeMemory--">freeMemory</a></span>()</code>
<div class="block">This frees this Memory only if it is required.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getAddress-long-">getAddress</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Get the effective address</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getCapacity--">getCapacity</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_I-long-">getLong_I</a></span>(long&nbsp;offsetBytes)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_IA-long-">getLong_IA</a></span>(long&nbsp;offsetBytes)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_IAS-java.lang.Object-long-">getLong_IAS</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_IASF-java.lang.Object-long-">getLong_IASF</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_IASFO-long-">getLong_IASFO</a></span>(long&nbsp;rawAddress)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_ISF-com.yahoo.memory.FastMemory-long-">getLong_ISF</a></span>(<a href="../../../com/yahoo/memory/FastMemory.html" title="class in com.yahoo.memory">FastMemory</a>&nbsp;mem,
long&nbsp;offsetBytes)</code>
<div class="block">NEW: No Interface, Static, Final, PASS FastMemory</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getLong_ISF2-java.lang.Object-long-long-long-long-">getLong_ISF2</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;objectBaseOffset,
long&nbsp;nativeRawStartAddress,
long&nbsp;capacityBytes,
long&nbsp;offsetBytes)</code>
<div class="block">NEW: No Interface, Static, Final, PASS All</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>com.yahoo.memory.MemoryRequest</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getMemoryRequest--">getMemoryRequest</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#getParent--">getParent</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#hasArray--">hasArray</a></span>()</code>
<div class="block">Returns true if this Memory is backed by an on-heap primitive array</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#hasByteBuffer--">hasByteBuffer</a></span>()</code>
<div class="block">Returns true if this Memory is backed by a ByteBuffer</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#isAllocated--">isAllocated</a></span>()</code>
<div class="block">Returns true if the underlying memory of this Memory has a capacity greater than zero</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#isDirect--">isDirect</a></span>()</code>
<div class="block">Returns true if this NativeMemory is accessing native (off-heap) memory directly.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_I-long-long-">putLong_I</a></span>(long&nbsp;offsetBytes,
long&nbsp;srcValue)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_IA-long-long-">putLong_IA</a></span>(long&nbsp;offsetBytes,
long&nbsp;srcValue)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_IAS-java.lang.Object-long-long-">putLong_IAS</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress,
long&nbsp;value)</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_IASF-java.lang.Object-long-long-">putLong_IASF</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress,
long&nbsp;value)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_IASFO-long-long-">putLong_IASFO</a></span>(long&nbsp;rawAddress,
long&nbsp;value)</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_ISF-com.yahoo.memory.FastMemory-long-long-">putLong_ISF</a></span>(<a href="../../../com/yahoo/memory/FastMemory.html" title="class in com.yahoo.memory">FastMemory</a>&nbsp;mem,
long&nbsp;offsetBytes,
long&nbsp;srcValue)</code>
<div class="block">NEW: No Interface, Static, Final, PASS FastMemory</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#putLong_ISF2-java.lang.Object-long-long-long-long-long-">putLong_ISF2</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;objectBaseOffset,
long&nbsp;nativeRawStartAddress,
long&nbsp;capacityBytes,
long&nbsp;offsetBytes,
long&nbsp;srcValue)</code>
<div class="block">NEW: No Interface, Static, Final, PASS All</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#requiresFree--">requiresFree</a></span>()</code>
<div class="block">Returns true if the object requires being freed.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/FastMemory.html#setMemoryRequest-com.yahoo.memory.MemoryRequest-">setMemoryRequest</a></span>(com.yahoo.memory.MemoryRequest&nbsp;memReq)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="http://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="../../../com/yahoo/memory/FastMemory.html#toHexString-java.lang.String-long-int-">toHexString</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header,
long&nbsp;offsetBytes,
int&nbsp;lengthBytes)</code>
<div class="block">Get hex string</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="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="objectBaseOffset_">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>objectBaseOffset_</h4>
<pre>protected final&nbsp;long objectBaseOffset_</pre>
</li>
</ul>
<a name="memArray_">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>memArray_</h4>
<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> memArray_</pre>
</li>
</ul>
<a name="byteBuf_">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>byteBuf_</h4>
<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a> byteBuf_</pre>
</li>
</ul>
<a name="nativeRawStartAddress_">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nativeRawStartAddress_</h4>
<pre>protected&nbsp;long nativeRawStartAddress_</pre>
</li>
</ul>
<a name="capacityBytes_">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>capacityBytes_</h4>
<pre>protected&nbsp;long capacityBytes_</pre>
</li>
</ul>
<a name="memReq_">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>memReq_</h4>
<pre>protected&nbsp;com.yahoo.memory.MemoryRequest memReq_</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FastMemory-long-java.lang.Object-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FastMemory</h4>
<pre>protected&nbsp;FastMemory(long&nbsp;objectBaseOffset,
<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;memArray,
<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuf)</pre>
</li>
</ul>
<a name="FastMemory-com.yahoo.memory.NativeMemory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FastMemory</h4>
<pre>public&nbsp;FastMemory(com.yahoo.memory.NativeMemory&nbsp;mem)</pre>
<div class="block">Test for proposed new NativeMemory</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mem</code> - the given NativeMemory</dd>
</dl>
</li>
</ul>
<a name="FastMemory-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FastMemory</h4>
<pre>public&nbsp;FastMemory(byte[]&nbsp;byteArray)</pre>
<div class="block">Provides access to the given byteArray using Memory interface</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteArray</code> - an on-heap byte array</dd>
</dl>
</li>
</ul>
<a name="FastMemory-long:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FastMemory</h4>
<pre>public&nbsp;FastMemory(long[]&nbsp;longArray)</pre>
<div class="block">Provides access to the given longArray using Memory interface</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>longArray</code> - an on-heap long array</dd>
</dl>
</li>
</ul>
<a name="FastMemory-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FastMemory</h4>
<pre>public&nbsp;FastMemory(<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuf)</pre>
<div class="block">Provides access to the backing store of the given ByteBuffer using Memory interface</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteBuf</code> - the given ByteBuffer</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="getLong_I-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_I</h4>
<pre>public&nbsp;long&nbsp;getLong_I(long&nbsp;offsetBytes)</pre>
</li>
</ul>
<a name="putLong_I-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_I</h4>
<pre>public&nbsp;void&nbsp;putLong_I(long&nbsp;offsetBytes,
long&nbsp;srcValue)</pre>
</li>
</ul>
<a name="getLong_IA-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_IA</h4>
<pre>public&nbsp;long&nbsp;getLong_IA(long&nbsp;offsetBytes)</pre>
</li>
</ul>
<a name="putLong_IA-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_IA</h4>
<pre>public&nbsp;void&nbsp;putLong_IA(long&nbsp;offsetBytes,
long&nbsp;srcValue)</pre>
</li>
</ul>
<a name="getLong_IAS-java.lang.Object-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_IAS</h4>
<pre>public static&nbsp;long&nbsp;getLong_IAS(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress)</pre>
</li>
</ul>
<a name="putLong_IAS-java.lang.Object-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_IAS</h4>
<pre>public static&nbsp;void&nbsp;putLong_IAS(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress,
long&nbsp;value)</pre>
</li>
</ul>
<a name="getLong_IASF-java.lang.Object-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_IASF</h4>
<pre>public static final&nbsp;long&nbsp;getLong_IASF(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress)</pre>
</li>
</ul>
<a name="putLong_IASF-java.lang.Object-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_IASF</h4>
<pre>public static final&nbsp;void&nbsp;putLong_IASF(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;rawAddress,
long&nbsp;value)</pre>
</li>
</ul>
<a name="getLong_IASFO-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_IASFO</h4>
<pre>public static final&nbsp;long&nbsp;getLong_IASFO(long&nbsp;rawAddress)</pre>
</li>
</ul>
<a name="putLong_IASFO-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_IASFO</h4>
<pre>public static final&nbsp;void&nbsp;putLong_IASFO(long&nbsp;rawAddress,
long&nbsp;value)</pre>
</li>
</ul>
<a name="getLong_ISF-com.yahoo.memory.FastMemory-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_ISF</h4>
<pre>public static final&nbsp;long&nbsp;getLong_ISF(<a href="../../../com/yahoo/memory/FastMemory.html" title="class in com.yahoo.memory">FastMemory</a>&nbsp;mem,
long&nbsp;offsetBytes)</pre>
<div class="block">NEW: No Interface, Static, Final, PASS FastMemory</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mem</code> - the given FastMemory</dd>
<dd><code>offsetBytes</code> - the offset</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a long</dd>
</dl>
</li>
</ul>
<a name="putLong_ISF-com.yahoo.memory.FastMemory-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_ISF</h4>
<pre>public static final&nbsp;void&nbsp;putLong_ISF(<a href="../../../com/yahoo/memory/FastMemory.html" title="class in com.yahoo.memory">FastMemory</a>&nbsp;mem,
long&nbsp;offsetBytes,
long&nbsp;srcValue)</pre>
<div class="block">NEW: No Interface, Static, Final, PASS FastMemory</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mem</code> - the given FastMemory</dd>
<dd><code>offsetBytes</code> - the offset</dd>
<dd><code>srcValue</code> - the value to put</dd>
</dl>
</li>
</ul>
<a name="getLong_ISF2-java.lang.Object-long-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong_ISF2</h4>
<pre>public static final&nbsp;long&nbsp;getLong_ISF2(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;objectBaseOffset,
long&nbsp;nativeRawStartAddress,
long&nbsp;capacityBytes,
long&nbsp;offsetBytes)</pre>
<div class="block">NEW: No Interface, Static, Final, PASS All</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>array</code> - array object</dd>
<dd><code>objectBaseOffset</code> - Base offset</dd>
<dd><code>nativeRawStartAddress</code> - raw or relative offset</dd>
<dd><code>capacityBytes</code> - memory capacity to check bounds</dd>
<dd><code>offsetBytes</code> - the long offset</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the long</dd>
</dl>
</li>
</ul>
<a name="putLong_ISF2-java.lang.Object-long-long-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putLong_ISF2</h4>
<pre>public static final&nbsp;void&nbsp;putLong_ISF2(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array,
long&nbsp;objectBaseOffset,
long&nbsp;nativeRawStartAddress,
long&nbsp;capacityBytes,
long&nbsp;offsetBytes,
long&nbsp;srcValue)</pre>
<div class="block">NEW: No Interface, Static, Final, PASS All</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>array</code> - object array</dd>
<dd><code>objectBaseOffset</code> - base offset</dd>
<dd><code>nativeRawStartAddress</code> - raw or relative offset</dd>
<dd><code>capacityBytes</code> - memory capacity to check bounds</dd>
<dd><code>offsetBytes</code> - the long offset</dd>
<dd><code>srcValue</code> - the value to put</dd>
</dl>
</li>
</ul>
<a name="getAddress-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAddress</h4>
<pre>public final&nbsp;long&nbsp;getAddress(long&nbsp;offsetBytes)</pre>
<div class="block">Get the effective address</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the current offset</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the address</dd>
</dl>
</li>
</ul>
<a name="getCapacity--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCapacity</h4>
<pre>public&nbsp;long&nbsp;getCapacity()</pre>
</li>
</ul>
<a name="getMemoryRequest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMemoryRequest</h4>
<pre>public&nbsp;com.yahoo.memory.MemoryRequest&nbsp;getMemoryRequest()</pre>
</li>
</ul>
<a name="getParent--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParent</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getParent()</pre>
</li>
</ul>
<a name="setMemoryRequest-com.yahoo.memory.MemoryRequest-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMemoryRequest</h4>
<pre>public&nbsp;void&nbsp;setMemoryRequest(com.yahoo.memory.MemoryRequest&nbsp;memReq)</pre>
</li>
</ul>
<a name="toHexString-java.lang.String-long-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHexString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toHexString(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header,
long&nbsp;offsetBytes,
int&nbsp;lengthBytes)</pre>
<div class="block">Get hex string</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>header</code> - optional header</dd>
<dd><code>offsetBytes</code> - the offset in bytes</dd>
<dd><code>lengthBytes</code> - the length in bytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the hex string</dd>
</dl>
</li>
</ul>
<a name="array--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>array</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;array()</pre>
<div class="block">Returns the backing on-heap primitive array if there is one, otherwise returns null</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the backing on-heap primitive array if there is one, otherwise returns null</dd>
</dl>
</li>
</ul>
<a name="byteBuffer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>byteBuffer</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;byteBuffer()</pre>
<div class="block">Returns the backing ByteBuffer if there is one, otherwise returns null</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the backing ByteBuffer if there is one, otherwise returns null</dd>
</dl>
</li>
</ul>
<a name="isDirect--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDirect</h4>
<pre>public&nbsp;boolean&nbsp;isDirect()</pre>
<div class="block">Returns true if this NativeMemory is accessing native (off-heap) memory directly.
This includes the case of a Direct ByteBuffer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this NativeMemory is accessing native (off-heap) memory directly.</dd>
</dl>
</li>
</ul>
<a name="freeMemory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>freeMemory</h4>
<pre>public&nbsp;void&nbsp;freeMemory()</pre>
<div class="block">This frees this Memory only if it is required. This always sets the capacity to zero
and the reference to MemoryRequest to null, which effectively disables this class.
However,
<p>It is always safe to call this method when you are done with this class.</div>
</li>
</ul>
<a name="hasArray--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasArray</h4>
<pre>public&nbsp;boolean&nbsp;hasArray()</pre>
<div class="block">Returns true if this Memory is backed by an on-heap primitive array</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this Memory is backed by an on-heap primitive array</dd>
</dl>
</li>
</ul>
<a name="hasByteBuffer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasByteBuffer</h4>
<pre>public&nbsp;boolean&nbsp;hasByteBuffer()</pre>
<div class="block">Returns true if this Memory is backed by a ByteBuffer</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this Memory is backed by a ByteBuffer</dd>
</dl>
</li>
</ul>
<a name="isAllocated--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAllocated</h4>
<pre>public&nbsp;boolean&nbsp;isAllocated()</pre>
<div class="block">Returns true if the underlying memory of this Memory has a capacity greater than zero</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the underlying memory of this Memory has a capacity greater than zero</dd>
</dl>
</li>
</ul>
<a name="requiresFree--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>requiresFree</h4>
<pre>protected&nbsp;boolean&nbsp;requiresFree()</pre>
<div class="block">Returns true if the object requires being freed.
This method exists to standardize the check between freeMemory() and finalize()</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the object should be freed when it is no longer needed</dd>
</dl>
</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/FastMemory.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="../../../com/yahoo/memory/AllocFastMemory.html" title="class in com.yahoo.memory"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../com/yahoo/memory/MemoryPerformance.html" title="class in com.yahoo.memory"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/yahoo/memory/FastMemory.html" target="_top">Frames</a></li>
<li><a href="FastMemory.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>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="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; 2016 <a href="http://www.yahoo.com">Yahoo! Inc.</a>. All rights reserved.</small></p>
</body>
</html>