<!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_162) on Tue Dec 04 17:15:14 PST 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Memory (com.yahoo.datasketches:memory 0.12.1 API)</title>
<meta name="date" content="2018-12-04">
<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="Memory (com.yahoo.datasketches:memory 0.12.1 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":10,"i3":6,"i4":6,"i5":10,"i6":10,"i7":6,"i8":6,"i9":6,"i10":6,"i11":10,"i12":10,"i13":10,"i14":6,"i15":6,"i16":6,"i17":6,"i18":10,"i19":10,"i20":9,"i21":9,"i22":9,"i23":9,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":10,"i33":10,"i34":6,"i35":6,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":9,"i45":9,"i46":6,"i47":6,"i48":10,"i49":6,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":6,"i63":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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="../../../com/yahoo/memory/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Memory.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/MapHandle.html" title="class in com.yahoo.memory"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../com/yahoo/memory/MemoryRequestServer.html" title="interface 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/Memory.html" target="_top">Frames</a></li>
<li><a href="Memory.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>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 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 Memory" class="title">Class Memory</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>com.yahoo.memory.Memory</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/WritableMemory.html" title="class in com.yahoo.memory">WritableMemory</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">Memory</span>
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></pre>
<div class="block">Provides read-only primitive and primitive array methods to any of the four resources
 mentioned in the package level documentation.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Roman Leventov, Lee Rhodes</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../com/yahoo/memory/package-summary.html"><code>com.yahoo.memory</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>abstract <a href="../../../com/yahoo/memory/Buffer.html" title="class in com.yahoo.memory">Buffer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#asBuffer--">asBuffer</a></span>()</code>
<div class="block">Returns a new <i>Buffer</i> view of this object.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../com/yahoo/memory/Buffer.html" title="class in com.yahoo.memory">Buffer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#asBuffer-java.nio.ByteOrder-">asBuffer</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</code>
<div class="block">Returns a new <i>Buffer</i> view of this object, with the given
 byte order.</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/Memory.html#checkValidAndBounds-long-long-">checkValidAndBounds</a></span>(long&nbsp;offsetBytes,
                   long&nbsp;lengthBytes)</code>
<div class="block">Checks that the specified range of bytes is within bounds of this object, throws
 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> if it's not: i.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#compareTo-long-long-com.yahoo.memory.Memory-long-long-">compareTo</a></span>(long&nbsp;thisOffsetBytes,
         long&nbsp;thisLengthBytes,
         <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;that,
         long&nbsp;thatOffsetBytes,
         long&nbsp;thatLengthBytes)</code>
<div class="block">Compares the bytes of this Memory to <i>that</i> Memory.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#copyTo-long-com.yahoo.memory.WritableMemory-long-long-">copyTo</a></span>(long&nbsp;srcOffsetBytes,
      <a href="../../../com/yahoo/memory/WritableMemory.html" title="class in com.yahoo.memory">WritableMemory</a>&nbsp;destination,
      long&nbsp;dstOffsetBytes,
      long&nbsp;lengthBytes)</code>
<div class="block">Copies bytes from a source range of this Memory to a destination range of the given Memory
 with the same semantics when copying between overlapping ranges of bytes as method
 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html?is-external=true#arraycopy-java.lang.Object-int-java.lang.Object-int-int-" title="class or interface in java.lang"><code>System.arraycopy(Object, int, Object, int, int)</code></a> has.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.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;that)</code>
<div class="block">Returns true if the given object is an instance of this class and has equal data contents.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#equalTo-long-java.lang.Object-long-long-">equalTo</a></span>(long&nbsp;thisOffsetBytes,
       <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;that,
       long&nbsp;thatOffsetBytes,
       long&nbsp;lengthBytes)</code>
<div class="block">Returns true if the given object is an instance of this class and has equal contents to
 this object in the given range of bytes.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getBoolean-long-">getBoolean</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the boolean value at the given offset</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getBooleanArray-long-boolean:A-int-int-">getBooleanArray</a></span>(long&nbsp;offsetBytes,
               boolean[]&nbsp;dstArray,
               int&nbsp;dstOffsetBooleans,
               int&nbsp;lengthBooleans)</code>
<div class="block">Gets the boolean array at the given offset</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getByte-long-">getByte</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the byte value at the given offset</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getByteArray-long-byte:A-int-int-">getByteArray</a></span>(long&nbsp;offsetBytes,
            byte[]&nbsp;dstArray,
            int&nbsp;dstOffsetBytes,
            int&nbsp;lengthBytes)</code>
<div class="block">Gets the byte array at the given offset</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<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="../../../com/yahoo/memory/Memory.html#getByteBuffer--">getByteBuffer</a></span>()</code>
<div class="block">Gets the backing ByteBuffer if it exists, otherwise returns null.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getByteOrder--">getByteOrder</a></span>()</code>
<div class="block">Gets the current ByteOrder.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCapacity--">getCapacity</a></span>()</code>
<div class="block">Gets the capacity of this object in bytes</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract char</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getChar-long-">getChar</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the char value at the given offset</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCharArray-long-char:A-int-int-">getCharArray</a></span>(long&nbsp;offsetBytes,
            char[]&nbsp;dstArray,
            int&nbsp;dstOffsetChars,
            int&nbsp;lengthChars)</code>
<div class="block">Gets the char array at the given offset</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCharsFromUtf8-long-int-java.lang.Appendable-">getCharsFromUtf8</a></span>(long&nbsp;offsetBytes,
                int&nbsp;utf8LengthBytes,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang">Appendable</a>&nbsp;dst)</code>
<div class="block">Gets UTF-8 encoded bytes from this Memory, starting at offsetBytes to a length of
 utf8LengthBytes, decodes them into characters and appends them to the given Appendable.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCharsFromUtf8-long-int-java.lang.StringBuilder-">getCharsFromUtf8</a></span>(long&nbsp;offsetBytes,
                int&nbsp;utf8LengthBytes,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;dst)</code>
<div class="block">Gets UTF-8 encoded bytes from this Memory, starting at offsetBytes to a length of
 utf8LengthBytes, decodes them into characters and appends them to the given StringBuilder.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCumulativeOffset--">getCumulativeOffset</a></span>()</code>
<div class="block">Gets the cumulative offset in bytes of this object from the backing resource.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCumulativeOffset-long-">getCumulativeOffset</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the cumulative offset in bytes of this object from the backing resource including the given
 offsetBytes.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCurrentDirectMemoryAllocated--">getCurrentDirectMemoryAllocated</a></span>()</code>
<div class="block">Gets the current size of active direct memory allocated.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCurrentDirectMemoryAllocations--">getCurrentDirectMemoryAllocations</a></span>()</code>
<div class="block">Gets the current number of active direct memory allocations.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCurrentDirectMemoryMapAllocated--">getCurrentDirectMemoryMapAllocated</a></span>()</code>
<div class="block">Gets the current size of active direct memory map allocated.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getCurrentDirectMemoryMapAllocations--">getCurrentDirectMemoryMapAllocations</a></span>()</code>
<div class="block">Gets the current number of active direct memory map allocations.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getDouble-long-">getDouble</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the double value at the given offset</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getDoubleArray-long-double:A-int-int-">getDoubleArray</a></span>(long&nbsp;offsetBytes,
              double[]&nbsp;dstArray,
              int&nbsp;dstOffsetDoubles,
              int&nbsp;lengthDoubles)</code>
<div class="block">Gets the double array at the given offset</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>abstract float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getFloat-long-">getFloat</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the float value at the given offset</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getFloatArray-long-float:A-int-int-">getFloatArray</a></span>(long&nbsp;offsetBytes,
             float[]&nbsp;dstArray,
             int&nbsp;dstOffsetFloats,
             int&nbsp;lengthFloats)</code>
<div class="block">Gets the float array at the given offset</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getInt-long-">getInt</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the int value at the given offset</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getIntArray-long-int:A-int-int-">getIntArray</a></span>(long&nbsp;offsetBytes,
           int[]&nbsp;dstArray,
           int&nbsp;dstOffsetInts,
           int&nbsp;lengthInts)</code>
<div class="block">Gets the int array at the given offset</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getLong-long-">getLong</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the long value at the given offset</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getLongArray-long-long:A-int-int-">getLongArray</a></span>(long&nbsp;offsetBytes,
            long[]&nbsp;dstArray,
            int&nbsp;dstOffsetLongs,
            int&nbsp;lengthLongs)</code>
<div class="block">Gets the long array at the given offset</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getRegionOffset--">getRegionOffset</a></span>()</code>
<div class="block">Returns the offset of address zero of this object relative to the address zero of the
 backing resource but not including the size of any Java object 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="../../../com/yahoo/memory/Memory.html#getRegionOffset-long-">getRegionOffset</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Returns the offset of address zero of this object relative to the address zero of the
 backing resource plus the given offsetBytes but not including the size of any Java object
 header.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>abstract short</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getShort-long-">getShort</a></span>(long&nbsp;offsetBytes)</code>
<div class="block">Gets the short value at the given offset</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#getShortArray-long-short:A-int-int-">getShortArray</a></span>(long&nbsp;offsetBytes,
             short[]&nbsp;dstArray,
             int&nbsp;dstOffsetShorts,
             int&nbsp;lengthShorts)</code>
<div class="block">Gets the short array at the given offset</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#hasArray--">hasArray</a></span>()</code>
<div class="block">Returns true if this object is backed by an on-heap primitive array</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#hasByteBuffer--">hasByteBuffer</a></span>()</code>
<div class="block">Returns true if this Memory is backed by a ByteBuffer.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#hashCode--">hashCode</a></span>()</code>
<div class="block">Returns the hashCode of this object.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#isDirect--">isDirect</a></span>()</code>
<div class="block">Returns true if the backing resource is direct (off-heap) memory.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#isNativeOrder--">isNativeOrder</a></span>()</code>
<div class="block">Returns true if the current byte order is native order.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#isReadOnly--">isReadOnly</a></span>()</code>
<div class="block">Returns true if this object or the backing resource is read-only.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#isSameResource-java.lang.Object-">isSameResource</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;that)</code>
<div class="block">Returns true if the backing resource of <i>this</i> is identical with the backing resource
 of <i>that</i>.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#isValid--">isValid</a></span>()</code>
<div class="block">Returns true if this object is valid and has not been closed.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/MapHandle.html" title="class in com.yahoo.memory">MapHandle</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#map-java.io.File-">map</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;file)</code>
<div class="block">Maps the entire given file into native-ordered Memory for read operations
 (including those &gt; 2GB).</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/MapHandle.html" title="class in com.yahoo.memory">MapHandle</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#map-java.io.File-long-long-java.nio.ByteOrder-">map</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;file,
   long&nbsp;fileOffsetBytes,
   long&nbsp;capacityBytes,
   <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</code>
<div class="block">Maps the specified portion of the given file into Memory for read operations
 (including those &gt; 2GB).</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#region-long-long-">region</a></span>(long&nbsp;offsetBytes,
      long&nbsp;capacityBytes)</code>
<div class="block">A region is a read-only view of this object.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#region-long-long-java.nio.ByteOrder-">region</a></span>(long&nbsp;offsetBytes,
      long&nbsp;capacityBytes,
      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</code>
<div class="block">A region is a read-only view of this object.</div>
</td>
</tr>
<tr id="i48" 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="../../../com/yahoo/memory/Memory.html#toHexString-java.lang.String-long-int-">toHexString</a></span>(<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;header,
           long&nbsp;offsetBytes,
           int&nbsp;lengthBytes)</code>
<div class="block">Returns a formatted hex string of a range of this object.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>abstract <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="../../../com/yahoo/memory/Memory.html#unsafeByteBufferView-long-int-">unsafeByteBufferView</a></span>(long&nbsp;offsetBytes,
                    int&nbsp;capacityBytes)</code>
<div class="block">Returns the specified region of this Memory object as a new read-only <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>
 object.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-boolean:A-">wrap</a></span>(boolean[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-byte:A-">wrap</a></span>(byte[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-byte:A-java.nio.ByteOrder-">wrap</a></span>(byte[]&nbsp;arr,
    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</code>
<div class="block">Wraps the given primitive array for read operations with the given byte order.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-byte:A-int-int-java.nio.ByteOrder-">wrap</a></span>(byte[]&nbsp;arr,
    int&nbsp;offsetBytes,
    int&nbsp;lengthBytes,
    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</code>
<div class="block">Wraps the given primitive array for read operations with the given byte order.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-java.nio.ByteBuffer-">wrap</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;byteBuf)</code>
<div class="block">Accesses the given ByteBuffer for read-only operations.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-java.nio.ByteBuffer-java.nio.ByteOrder-">wrap</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;byteBuf,
    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</code>
<div class="block">Accesses the given ByteBuffer for read-only operations.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-char:A-">wrap</a></span>(char[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-double:A-">wrap</a></span>(double[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-float:A-">wrap</a></span>(float[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-int:A-">wrap</a></span>(int[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-long:A-">wrap</a></span>(long[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>static <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#wrap-short:A-">wrap</a></span>(short[]&nbsp;arr)</code>
<div class="block">Wraps the given primitive array for read operations assuming native byte order.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#writeTo-long-long-java.nio.channels.WritableByteChannel-">writeTo</a></span>(long&nbsp;offsetBytes,
       long&nbsp;lengthBytes,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a>&nbsp;out)</code>
<div class="block">Writes bytes from a source range of this Memory to the given <code>WritableByteChannel</code>.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/yahoo/memory/Memory.html#xxHash64-long-long-long-">xxHash64</a></span>(long&nbsp;offsetBytes,
        long&nbsp;lengthBytes,
        long&nbsp;seed)</code>
<div class="block">Returns the 64-bit hash of the sequence of bytes in this object specified by
 <i>offsetBytes</i>, <i>lengthBytes</i> and a <i>seed</i>.</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#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="wrap-java.nio.ByteBuffer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(<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;byteBuf)</pre>
<div class="block">Accesses the given ByteBuffer for read-only operations. The returned <i>Memory</i> object has
 the same byte order, as the given ByteBuffer, unless the capacity of the given ByteBuffer is
 zero, then byte order of the returned <i>Memory</i> object (as well as backing storage) is
 unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteBuf</code> - the given ByteBuffer, must not be null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read-only operations on the given ByteBuffer.</dd>
</dl>
</li>
</ul>
<a name="wrap-java.nio.ByteBuffer-java.nio.ByteOrder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(<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;byteBuf,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</pre>
<div class="block">Accesses the given ByteBuffer for read-only operations. The returned <i>Memory</i> object has the
 given byte order, ignoring the byte order of the given ByteBuffer.  If the capacity of the
 given ByteBuffer is zero the byte order of the returned <i>Memory</i> object (as well as backing
 storage) is unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteBuf</code> - the given ByteBuffer, must not be null</dd>
<dd><code>byteOrder</code> - the byte order to be used, whicn may be independent of the byte order
 state of the given ByteBuffer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read-only operations on the given ByteBuffer.</dd>
</dl>
</li>
</ul>
<a name="map-java.io.File-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>map</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/MapHandle.html" title="class in com.yahoo.memory">MapHandle</a>&nbsp;map(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;file)
                     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">Maps the entire given file into native-ordered Memory for read operations
 (including those &gt; 2GB).
 Calling this method is equivalent to calling <a href="../../../com/yahoo/memory/Memory.html#map-java.io.File-long-long-java.nio.ByteOrder-"><code>map(file, 0, file.length(), ByteOrder.nativeOrder())</code></a>.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.map(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>file</code> - the given file to map</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><i>MapHandle</i> for managing the mapped Memory</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> - if file not found or a RuntimeException.</dd>
</dl>
</li>
</ul>
<a name="map-java.io.File-long-long-java.nio.ByteOrder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>map</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/MapHandle.html" title="class in com.yahoo.memory">MapHandle</a>&nbsp;map(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;file,
                            long&nbsp;fileOffsetBytes,
                            long&nbsp;capacityBytes,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)
                     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">Maps the specified portion of the given file into Memory for read operations
 (including those &gt; 2GB).

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.map(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>file</code> - the given file to map. It may not be null.</dd>
<dd><code>fileOffsetBytes</code> - the position in the given file in bytes. It may not be negative.</dd>
<dd><code>capacityBytes</code> - the size of the mapped Memory. It may not be negative or zero.</dd>
<dd><code>byteOrder</code> - the byte order to be used for the mapped Memory. It may not be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><i>MapHandle</i> for managing the mapped Memory</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> - if file not found or a RuntimeException.</dd>
</dl>
</li>
</ul>
<a name="region-long-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>region</h4>
<pre>public abstract&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;region(long&nbsp;offsetBytes,
                              long&nbsp;capacityBytes)</pre>
<div class="block">A region is a read-only view of this object.
 <ul>
 <li>Returned object's origin = this object's origin + offsetBytes</li>
 <li>Returned object's capacity = capacityBytes</li>
 </ul>
 If the given capacityBytes is zero, the returned object is effectively immutable and
 the backing storage and byte order are unspecified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the starting offset with respect to the origin of this Memory.</dd>
<dd><code>capacityBytes</code> - the capacity of the region in bytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> representing the defined region based on the given
 offsetBytes and capacityBytes.</dd>
</dl>
</li>
</ul>
<a name="region-long-long-java.nio.ByteOrder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>region</h4>
<pre>public abstract&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;region(long&nbsp;offsetBytes,
                              long&nbsp;capacityBytes,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</pre>
<div class="block">A region is a read-only view of this object.
 <ul>
 <li>Returned object's origin = this object's origin + <i>offsetBytes</i></li>
 <li>Returned object's capacity = <i>capacityBytes</i></li>
 <li>Returned object's byte order = <i>byteOrder</i></li>
 </ul>
 If the given capacityBytes is zero, the returned object is effectively immutable and
 the backing storage and byte order are unspecified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the starting offset with respect to the origin of this Memory.</dd>
<dd><code>capacityBytes</code> - the capacity of the region in bytes</dd>
<dd><code>byteOrder</code> - the given byte order</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> representing the defined region based on the given
 offsetBytes, capacityBytes and byteOrder.</dd>
</dl>
</li>
</ul>
<a name="asBuffer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asBuffer</h4>
<pre>public abstract&nbsp;<a href="../../../com/yahoo/memory/Buffer.html" title="class in com.yahoo.memory">Buffer</a>&nbsp;asBuffer()</pre>
<div class="block">Returns a new <i>Buffer</i> view of this object.
 <ul>
 <li>Returned object's origin = this object's origin</li>
 <li>Returned object's <i>start</i> = 0</li>
 <li>Returned object's <i>position</i> = 0</li>
 <li>Returned object's <i>end</i> = this object's capacity</li>
 <li>Returned object's <i>capacity</i> = this object's capacity</li>
 <li>Returned object's <i>start</i>, <i>position</i> and <i>end</i> are mutable</li>
 </ul>
 If this object's capacity is zero, the returned object is effectively immutable and
 the backing storage and byte order are unspecified.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Buffer</i></dd>
</dl>
</li>
</ul>
<a name="asBuffer-java.nio.ByteOrder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asBuffer</h4>
<pre>public abstract&nbsp;<a href="../../../com/yahoo/memory/Buffer.html" title="class in com.yahoo.memory">Buffer</a>&nbsp;asBuffer(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</pre>
<div class="block">Returns a new <i>Buffer</i> view of this object, with the given
 byte order.
 <ul>
 <li>Returned object's origin = this object's origin</li>
 <li>Returned object's <i>start</i> = 0</li>
 <li>Returned object's <i>position</i> = 0</li>
 <li>Returned object's <i>end</i> = this object's capacity</li>
 <li>Returned object's <i>capacity</i> = this object's capacity</li>
 <li>Returned object's <i>start</i>, <i>position</i> and <i>end</i> are mutable</li>
 </ul>
 If this object's capacity is zero, the returned object is effectively immutable and
 the backing storage and byte order are unspecified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteOrder</code> - the given byte order</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Buffer</i> with the given byteOrder.</dd>
</dl>
</li>
</ul>
<a name="unsafeByteBufferView-long-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsafeByteBufferView</h4>
<pre>public abstract&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;unsafeByteBufferView(long&nbsp;offsetBytes,
                                                int&nbsp;capacityBytes)</pre>
<div class="block">Returns the specified region of this Memory object as a new read-only <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>
 object. The <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio"><code>ByteOrder</code></a> of the returned <code>ByteBuffer</code> corresponds to the <a href="../../../com/yahoo/memory/Memory.html#getByteOrder--">byte order of this Memory</a>. The returned ByteBuffer's position is 0 and
 the limit is equal to the capacity.

 <p>If this Memory object is the result of wrapping non-byte Java arrays (<a href="../../../com/yahoo/memory/Memory.html#wrap-int:A-"><code>wrap(int[])</code></a>, <a href="../../../com/yahoo/memory/Memory.html#wrap-long:A-"><code>wrap(long[])</code></a>, etc.) this methods throws an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang"><code>UnsupportedOperationException</code></a>.

 <p>The name of this method starts with "unsafe" because if this is a native managed Memory
 (e. g. obtained via <a href="../../../com/yahoo/memory/Memory.html#map-java.io.File-"><code>map(File)</code></a> or <a href="../../../com/yahoo/memory/WritableMemory.html#allocateDirect-long-"><code>WritableMemory.allocateDirect(long)</code></a>)), and
 the returned <code>ByteBuffer</code> object is used after the Memory is freed, it may cause a JVM
 crash. This is also possible for Memory objects themselves with some methods,
 but Memory's use-after-free is caught as an AssertionError, if assertions are enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the starting offset with respect to the origin of this Memory</dd>
<dd><code>capacityBytes</code> - the capacity of the returned ByteBuffer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new read-only <code>ByteBuffer</code> to access the specified region.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if this method couldn't be viewed as ByteBuffer, because
 when it wraps a non-byte Java array.</dd>
</dl>
</li>
</ul>
<a name="wrap-boolean:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(boolean[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-byte:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(byte[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-byte:A-java.nio.ByteOrder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(byte[]&nbsp;arr,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</pre>
<div class="block">Wraps the given primitive array for read operations with the given byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dd><code>byteOrder</code> - the byte order to be used</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-byte:A-int-int-java.nio.ByteOrder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(byte[]&nbsp;arr,
                          int&nbsp;offsetBytes,
                          int&nbsp;lengthBytes,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;byteOrder)</pre>
<div class="block">Wraps the given primitive array for read operations with the given byte order. If the given
 lengthBytes is zero, backing storage and byte order of the returned <i>Memory</i> object are
 unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dd><code>offsetBytes</code> - the byte offset into the given array</dd>
<dd><code>lengthBytes</code> - the number of bytes to include from the given array</dd>
<dd><code>byteOrder</code> - the byte order to be used</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-char:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(char[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-short:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(short[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-int:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(int[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-long:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(long[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-float:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(float[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="wrap-double:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public static&nbsp;<a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;wrap(double[]&nbsp;arr)</pre>
<div class="block">Wraps the given primitive array for read operations assuming native byte order. If the array
 size is zero, backing storage and byte order of the returned <i>Memory</i> object are unspecified.

 <p><b>Note:</b> Always qualify this method with the class name, e.g.,
 <i>Memory.wrap(...)</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>arr</code> - the given primitive array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <i>Memory</i> for read operations</dd>
</dl>
</li>
</ul>
<a name="getBoolean-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBoolean</h4>
<pre>public abstract&nbsp;boolean&nbsp;getBoolean(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the boolean value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the boolean at the given offset</dd>
</dl>
</li>
</ul>
<a name="getBooleanArray-long-boolean:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBooleanArray</h4>
<pre>public abstract&nbsp;void&nbsp;getBooleanArray(long&nbsp;offsetBytes,
                                     boolean[]&nbsp;dstArray,
                                     int&nbsp;dstOffsetBooleans,
                                     int&nbsp;lengthBooleans)</pre>
<div class="block">Gets the boolean array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetBooleans</code> - offset in array units</dd>
<dd><code>lengthBooleans</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getByte-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getByte</h4>
<pre>public abstract&nbsp;byte&nbsp;getByte(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the byte value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the byte at the given offset</dd>
</dl>
</li>
</ul>
<a name="getByteArray-long-byte:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getByteArray</h4>
<pre>public abstract&nbsp;void&nbsp;getByteArray(long&nbsp;offsetBytes,
                                  byte[]&nbsp;dstArray,
                                  int&nbsp;dstOffsetBytes,
                                  int&nbsp;lengthBytes)</pre>
<div class="block">Gets the byte array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetBytes</code> - offset in array units</dd>
<dd><code>lengthBytes</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getChar-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChar</h4>
<pre>public abstract&nbsp;char&nbsp;getChar(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the char value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the char at the given offset</dd>
</dl>
</li>
</ul>
<a name="getCharArray-long-char:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCharArray</h4>
<pre>public abstract&nbsp;void&nbsp;getCharArray(long&nbsp;offsetBytes,
                                  char[]&nbsp;dstArray,
                                  int&nbsp;dstOffsetChars,
                                  int&nbsp;lengthChars)</pre>
<div class="block">Gets the char array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetChars</code> - offset in array units</dd>
<dd><code>lengthChars</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getCharsFromUtf8-long-int-java.lang.Appendable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCharsFromUtf8</h4>
<pre>public abstract&nbsp;int&nbsp;getCharsFromUtf8(long&nbsp;offsetBytes,
                                     int&nbsp;utf8LengthBytes,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang">Appendable</a>&nbsp;dst)
                              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>,
                                     <a href="../../../com/yahoo/memory/Utf8CodingException.html" title="class in com.yahoo.memory">Utf8CodingException</a></pre>
<div class="block">Gets UTF-8 encoded bytes from this Memory, starting at offsetBytes to a length of
 utf8LengthBytes, decodes them into characters and appends them to the given Appendable.
 This is specifically designed to reduce the production of intermediate objects (garbage),
 thus significantly reducing pressure on the JVM Garbage Collector.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to the Memory start</dd>
<dd><code>utf8LengthBytes</code> - the number of encoded UTF-8 bytes to decode. It is assumed that the
 caller has the correct number of utf8 bytes required to decode the number of characters
 to be appended to dst. Characters outside the ASCII range can require 2, 3 or 4 bytes per
 character to decode.</dd>
<dd><code>dst</code> - the destination Appendable to append the decoded characters to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of characters decoded</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> - if dst.append() throws IOException</dd>
<dd><code><a href="../../../com/yahoo/memory/Utf8CodingException.html" title="class in com.yahoo.memory">Utf8CodingException</a></code> - in case of malformed or illegal UTF-8 input</dd>
</dl>
</li>
</ul>
<a name="getCharsFromUtf8-long-int-java.lang.StringBuilder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCharsFromUtf8</h4>
<pre>public abstract&nbsp;int&nbsp;getCharsFromUtf8(long&nbsp;offsetBytes,
                                     int&nbsp;utf8LengthBytes,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;dst)
                              throws <a href="../../../com/yahoo/memory/Utf8CodingException.html" title="class in com.yahoo.memory">Utf8CodingException</a></pre>
<div class="block">Gets UTF-8 encoded bytes from this Memory, starting at offsetBytes to a length of
 utf8LengthBytes, decodes them into characters and appends them to the given StringBuilder.
 This method does *not* reset the length of the destination StringBuilder before appending
 characters to it.
 This is specifically designed to reduce the production of intermediate objects (garbage),
 thus significantly reducing pressure on the JVM Garbage Collector.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to the Memory start</dd>
<dd><code>utf8LengthBytes</code> - the number of encoded UTF-8 bytes to decode. It is assumed that the
 caller has the correct number of utf8 bytes required to decode the number of characters
 to be appended to dst. Characters outside the ASCII range can require 2, 3 or 4 bytes per
 character to decode.</dd>
<dd><code>dst</code> - the destination StringBuilder to append decoded characters to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of characters decoded.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../com/yahoo/memory/Utf8CodingException.html" title="class in com.yahoo.memory">Utf8CodingException</a></code> - in case of malformed or illegal UTF-8 input</dd>
</dl>
</li>
</ul>
<a name="getDouble-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDouble</h4>
<pre>public abstract&nbsp;double&nbsp;getDouble(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the double value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the double at the given offset</dd>
</dl>
</li>
</ul>
<a name="getDoubleArray-long-double:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDoubleArray</h4>
<pre>public abstract&nbsp;void&nbsp;getDoubleArray(long&nbsp;offsetBytes,
                                    double[]&nbsp;dstArray,
                                    int&nbsp;dstOffsetDoubles,
                                    int&nbsp;lengthDoubles)</pre>
<div class="block">Gets the double array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetDoubles</code> - offset in array units</dd>
<dd><code>lengthDoubles</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getFloat-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFloat</h4>
<pre>public abstract&nbsp;float&nbsp;getFloat(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the float value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the float at the given offset</dd>
</dl>
</li>
</ul>
<a name="getFloatArray-long-float:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFloatArray</h4>
<pre>public abstract&nbsp;void&nbsp;getFloatArray(long&nbsp;offsetBytes,
                                   float[]&nbsp;dstArray,
                                   int&nbsp;dstOffsetFloats,
                                   int&nbsp;lengthFloats)</pre>
<div class="block">Gets the float array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetFloats</code> - offset in array units</dd>
<dd><code>lengthFloats</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getInt-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInt</h4>
<pre>public abstract&nbsp;int&nbsp;getInt(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the int value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the int at the given offset</dd>
</dl>
</li>
</ul>
<a name="getIntArray-long-int:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIntArray</h4>
<pre>public abstract&nbsp;void&nbsp;getIntArray(long&nbsp;offsetBytes,
                                 int[]&nbsp;dstArray,
                                 int&nbsp;dstOffsetInts,
                                 int&nbsp;lengthInts)</pre>
<div class="block">Gets the int array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetInts</code> - offset in array units</dd>
<dd><code>lengthInts</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getLong-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLong</h4>
<pre>public abstract&nbsp;long&nbsp;getLong(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the long value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the long at the given offset</dd>
</dl>
</li>
</ul>
<a name="getLongArray-long-long:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLongArray</h4>
<pre>public abstract&nbsp;void&nbsp;getLongArray(long&nbsp;offsetBytes,
                                  long[]&nbsp;dstArray,
                                  int&nbsp;dstOffsetLongs,
                                  int&nbsp;lengthLongs)</pre>
<div class="block">Gets the long array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetLongs</code> - offset in array units</dd>
<dd><code>lengthLongs</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="getShort-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getShort</h4>
<pre>public abstract&nbsp;short&nbsp;getShort(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the short value at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the short at the given offset</dd>
</dl>
</li>
</ul>
<a name="getShortArray-long-short:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getShortArray</h4>
<pre>public abstract&nbsp;void&nbsp;getShortArray(long&nbsp;offsetBytes,
                                   short[]&nbsp;dstArray,
                                   int&nbsp;dstOffsetShorts,
                                   int&nbsp;lengthShorts)</pre>
<div class="block">Gets the short array at the given offset</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset bytes relative to this Memory start</dd>
<dd><code>dstArray</code> - The preallocated destination array.</dd>
<dd><code>dstOffsetShorts</code> - offset in array units</dd>
<dd><code>lengthShorts</code> - number of array units to transfer</dd>
</dl>
</li>
</ul>
<a name="compareTo-long-long-com.yahoo.memory.Memory-long-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compareTo</h4>
<pre>public abstract&nbsp;int&nbsp;compareTo(long&nbsp;thisOffsetBytes,
                              long&nbsp;thisLengthBytes,
                              <a href="../../../com/yahoo/memory/Memory.html" title="class in com.yahoo.memory">Memory</a>&nbsp;that,
                              long&nbsp;thatOffsetBytes,
                              long&nbsp;thatLengthBytes)</pre>
<div class="block">Compares the bytes of this Memory to <i>that</i> Memory.
 Returns <i>(this &lt; that) ? (some negative value) : (this &gt; that) ? (some positive value)
 : 0;</i>.
 If all bytes are equal up to the shorter of the two lengths, the shorter length is considered
 to be less than the other.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>thisOffsetBytes</code> - the starting offset for <i>this Memory</i></dd>
<dd><code>thisLengthBytes</code> - the length of the region to compare from <i>this Memory</i></dd>
<dd><code>that</code> - the other Memory to compare with</dd>
<dd><code>thatOffsetBytes</code> - the starting offset for <i>that Memory</i></dd>
<dd><code>thatLengthBytes</code> - the length of the region to compare from <i>that Memory</i></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><i>(this &lt; that) ? (some negative value) : (this &gt; that) ? (some positive value)
 : 0;</i></dd>
</dl>
</li>
</ul>
<a name="copyTo-long-com.yahoo.memory.WritableMemory-long-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyTo</h4>
<pre>public abstract&nbsp;void&nbsp;copyTo(long&nbsp;srcOffsetBytes,
                            <a href="../../../com/yahoo/memory/WritableMemory.html" title="class in com.yahoo.memory">WritableMemory</a>&nbsp;destination,
                            long&nbsp;dstOffsetBytes,
                            long&nbsp;lengthBytes)</pre>
<div class="block">Copies bytes from a source range of this Memory to a destination range of the given Memory
 with the same semantics when copying between overlapping ranges of bytes as method
 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html?is-external=true#arraycopy-java.lang.Object-int-java.lang.Object-int-int-" title="class or interface in java.lang"><code>System.arraycopy(Object, int, Object, int, int)</code></a> has. However, if the source
 and the destination ranges are exactly the same, this method throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a>, because it should never be needed in real-world scenarios and
 therefore indicates a bug.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>srcOffsetBytes</code> - the source offset for this Memory</dd>
<dd><code>destination</code> - the destination Memory, which may not be Read-Only.</dd>
<dd><code>dstOffsetBytes</code> - the destination offset</dd>
<dd><code>lengthBytes</code> - the number of bytes to copy</dd>
</dl>
</li>
</ul>
<a name="writeTo-long-long-java.nio.channels.WritableByteChannel-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeTo</h4>
<pre>public abstract&nbsp;void&nbsp;writeTo(long&nbsp;offsetBytes,
                             long&nbsp;lengthBytes,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a>&nbsp;out)
                      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">Writes bytes from a source range of this Memory to the given <code>WritableByteChannel</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the source offset for this Memory</dd>
<dd><code>lengthBytes</code> - the number of bytes to copy</dd>
<dd><code>out</code> - the destination WritableByteChannel</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> - may occur while writing to the WritableByteChannel</dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public final&nbsp;boolean&nbsp;equals(<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;that)</pre>
<div class="block">Returns true if the given object is an instance of this class and has equal data contents.</div>
<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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - the given object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the given Object is an instance of this class and has equal data contents.</dd>
</dl>
</li>
</ul>
<a name="equalTo-long-java.lang.Object-long-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalTo</h4>
<pre>public final&nbsp;boolean&nbsp;equalTo(long&nbsp;thisOffsetBytes,
                             <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;that,
                             long&nbsp;thatOffsetBytes,
                             long&nbsp;lengthBytes)</pre>
<div class="block">Returns true if the given object is an instance of this class and has equal contents to
 this object in the given range of bytes. This will also check two distinct ranges within the
 same object for eauals.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>thisOffsetBytes</code> - the starting offset in bytes for this object.</dd>
<dd><code>that</code> - the given object</dd>
<dd><code>thatOffsetBytes</code> - the starting offset in bytes for the given object</dd>
<dd><code>lengthBytes</code> - the size of the range in bytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the given object has equal contents to this object in the given range of
 bytes.</dd>
</dl>
</li>
</ul>
<a name="getByteBuffer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getByteBuffer</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;getByteBuffer()</pre>
<div class="block">Gets the backing ByteBuffer if it exists, otherwise returns null.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the backing ByteBuffer if it exists, otherwise returns null.</dd>
</dl>
</li>
</ul>
<a name="getByteOrder--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getByteOrder</h4>
<pre>public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteOrder.html?is-external=true" title="class or interface in java.nio">ByteOrder</a>&nbsp;getByteOrder()</pre>
<div class="block">Gets the current ByteOrder.
 This may be different from the ByteOrder of the backing resource.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current ByteOrder.</dd>
</dl>
</li>
</ul>
<a name="getCapacity--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCapacity</h4>
<pre>public final&nbsp;long&nbsp;getCapacity()</pre>
<div class="block">Gets the capacity of this object in bytes</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the capacity of this object in bytes</dd>
</dl>
</li>
</ul>
<a name="getCumulativeOffset--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCumulativeOffset</h4>
<pre>public final&nbsp;long&nbsp;getCumulativeOffset()</pre>
<div class="block">Gets the cumulative offset in bytes of this object from the backing resource.
 This offset may also include other offset components such as the native off-heap
 memory address, DirectByteBuffer split offsets, region offsets, and unsafe arrayBaseOffsets.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cumulative offset in bytes of this object from the backing resource.</dd>
</dl>
</li>
</ul>
<a name="getCumulativeOffset-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCumulativeOffset</h4>
<pre>public final&nbsp;long&nbsp;getCumulativeOffset(long&nbsp;offsetBytes)</pre>
<div class="block">Gets the cumulative offset in bytes of this object from the backing resource including the given
 offsetBytes. This offset may also include other offset components such as the native off-heap
 memory address, DirectByteBuffer split offsets, region offsets, and unsafe arrayBaseOffsets.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - offset to be added to the cumulative offset.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cumulative offset in bytes of this object from the backing resource including the
 given offsetBytes.</dd>
</dl>
</li>
</ul>
<a name="getRegionOffset--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegionOffset</h4>
<pre>public final&nbsp;long&nbsp;getRegionOffset()</pre>
<div class="block">Returns the offset of address zero of this object relative to the address zero of the
 backing resource but not including the size of any Java object header.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the offset of address zero of this object relative to the address zero of the
 backing resource but not including the size of any Java object header.</dd>
</dl>
</li>
</ul>
<a name="getRegionOffset-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegionOffset</h4>
<pre>public final&nbsp;long&nbsp;getRegionOffset(long&nbsp;offsetBytes)</pre>
<div class="block">Returns the offset of address zero of this object relative to the address zero of the
 backing resource plus the given offsetBytes but not including the size of any Java object
 header.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the given offsetBytes</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the offset of address zero of this object relative to the address zero of the
 backing resource plus the given offsetBytes but not including the size of any Java object
 header.</dd>
</dl>
</li>
</ul>
<a name="hasArray--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasArray</h4>
<pre>public final&nbsp;boolean&nbsp;hasArray()</pre>
<div class="block">Returns true if this object is backed by an on-heap primitive array</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this object is backed by an on-heap primitive array</dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public final&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns the hashCode of this object.

 <p>The hash code of this object depends upon all of its contents.
 Because of this, it is inadvisable to use these objects as keys in hash maps
 or similar data structures unless it is known that their contents will not change.</p>

 <p>If it is desirable to use these objects in a hash map depending only on object identity,
 than the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/IdentityHashMap.html?is-external=true" title="class or interface in java.util"><code>IdentityHashMap</code></a> can be used.</p></div>
<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>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the hashCode of this object.</dd>
</dl>
</li>
</ul>
<a name="xxHash64-long-long-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>xxHash64</h4>
<pre>public final&nbsp;long&nbsp;xxHash64(long&nbsp;offsetBytes,
                           long&nbsp;lengthBytes,
                           long&nbsp;seed)</pre>
<div class="block">Returns the 64-bit hash of the sequence of bytes in this object specified by
 <i>offsetBytes</i>, <i>lengthBytes</i> and a <i>seed</i>.  Note that the sequence of bytes is
 always processed in the same order independent of endianness.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the given offset in bytes to the first byte of the byte sequence.</dd>
<dd><code>lengthBytes</code> - the given length in bytes of the byte sequence.</dd>
<dd><code>seed</code> - the given long seed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the 64-bit hash of the sequence of bytes in this object specified by
 <i>offsetBytes</i> and <i>lengthBytes</i>.</dd>
</dl>
</li>
</ul>
<a name="hasByteBuffer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasByteBuffer</h4>
<pre>public final&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="isDirect--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDirect</h4>
<pre>public final&nbsp;boolean&nbsp;isDirect()</pre>
<div class="block">Returns true if the backing resource is direct (off-heap) memory.
 This is the case for allocated direct memory, memory mapped files,</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the backing resource is direct (off-heap) memory.</dd>
</dl>
</li>
</ul>
<a name="isNativeOrder--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNativeOrder</h4>
<pre>public final&nbsp;boolean&nbsp;isNativeOrder()</pre>
<div class="block">Returns true if the current byte order is native order.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the current byte order is native order.</dd>
</dl>
</li>
</ul>
<a name="isReadOnly--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReadOnly</h4>
<pre>public final&nbsp;boolean&nbsp;isReadOnly()</pre>
<div class="block">Returns true if this object or the backing resource is read-only.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this object or the backing resource is read-only.</dd>
</dl>
</li>
</ul>
<a name="isSameResource-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSameResource</h4>
<pre>public final&nbsp;boolean&nbsp;isSameResource(<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;that)</pre>
<div class="block">Returns true if the backing resource of <i>this</i> is identical with the backing resource
 of <i>that</i>. The capacities must be the same.  If <i>this</i> is a region,
 the region offset must also be the same.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - A different non-null object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the backing resource of <i>this</i> is the same as the backing resource
 of <i>that</i>.</dd>
</dl>
</li>
</ul>
<a name="isValid--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre>public&nbsp;boolean&nbsp;isValid()</pre>
<div class="block">Returns true if this object is valid and has not been closed.
 This is relevant only for direct (off-heap) memory and Mapped Files.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this object is valid and has not been closed.</dd>
</dl>
</li>
</ul>
<a name="checkValidAndBounds-long-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkValidAndBounds</h4>
<pre>public final&nbsp;void&nbsp;checkValidAndBounds(long&nbsp;offsetBytes,
                                      long&nbsp;lengthBytes)</pre>
<div class="block">Checks that the specified range of bytes is within bounds of this object, throws
 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> if it's not: i. e. if offsetBytes &lt; 0, or length &lt; 0,
 or offsetBytes + length &gt; <a href="../../../com/yahoo/memory/Memory.html#getCapacity--"><code>getCapacity()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offsetBytes</code> - the given offset in bytes of this object</dd>
<dd><code>lengthBytes</code> - the given length in bytes of this object</dd>
</dl>
</li>
</ul>
<a name="getCurrentDirectMemoryAllocations--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentDirectMemoryAllocations</h4>
<pre>public static final&nbsp;long&nbsp;getCurrentDirectMemoryAllocations()</pre>
<div class="block">Gets the current number of active direct memory allocations.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current number of active direct memory allocations.</dd>
</dl>
</li>
</ul>
<a name="getCurrentDirectMemoryAllocated--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentDirectMemoryAllocated</h4>
<pre>public static final&nbsp;long&nbsp;getCurrentDirectMemoryAllocated()</pre>
<div class="block">Gets the current size of active direct memory allocated.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current size of active direct memory allocated.</dd>
</dl>
</li>
</ul>
<a name="getCurrentDirectMemoryMapAllocations--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentDirectMemoryMapAllocations</h4>
<pre>public static final&nbsp;long&nbsp;getCurrentDirectMemoryMapAllocations()</pre>
<div class="block">Gets the current number of active direct memory map allocations.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current number of active direct memory map allocations.</dd>
</dl>
</li>
</ul>
<a name="getCurrentDirectMemoryMapAllocated--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentDirectMemoryMapAllocated</h4>
<pre>public static final&nbsp;long&nbsp;getCurrentDirectMemoryMapAllocated()</pre>
<div class="block">Gets the current size of active direct memory map allocated.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current size of active direct memory map allocated.</dd>
</dl>
</li>
</ul>
<a name="toHexString-java.lang.String-long-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toHexString</h4>
<pre>public final&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;toHexString(<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;header,
                                long&nbsp;offsetBytes,
                                int&nbsp;lengthBytes)</pre>
<div class="block">Returns a formatted hex string of a range of this object.
 Used primarily for testing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>header</code> - a descriptive header</dd>
<dd><code>offsetBytes</code> - offset bytes relative to this object start</dd>
<dd><code>lengthBytes</code> - number of bytes to convert to a hex string</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a formatted hex string in a human readable array</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="../../../com/yahoo/memory/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Memory.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/MapHandle.html" title="class in com.yahoo.memory"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../com/yahoo/memory/MemoryRequestServer.html" title="interface 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/Memory.html" target="_top">Frames</a></li>
<li><a href="Memory.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>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 name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2015&#x2013;2018 <a href="https://www.yahoo.com">Yahoo! Inc.</a>. All rights reserved.</small></p>
</body>
</html>
