blob: dd7ab331b5f679d594c0eb20e186ecdd24ff192e [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ProtonNettyByteBufferAllocator (Qpid ProtonJ2 Parent 1.0.0-M9 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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="ProtonNettyByteBufferAllocator (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ProtonNettyByteBufferAllocator.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="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.buffer</a></div>
<h2 title="Class ProtonNettyByteBufferAllocator" class="title">Class ProtonNettyByteBufferAllocator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.qpid.protonj2.buffer.ProtonNettyByteBufferAllocator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ProtonNettyByteBufferAllocator</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></pre>
<div class="block">A default <a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBufferAllocator</code></a> that creates wrapped Netty <code>ByteBuf</code> buffers.
Output buffers are created using a Netty ByteBuf backed <a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> while the other
methods may choose to use simple <a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer"><code>ProtonByteBuffer</code></a> objects to reduce the number of
intermediate allocations from wrapping one buffer type with another.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="ProtonNettyByteBufferAllocator.html" title="class in org.apache.qpid.protonj2.buffer">ProtonNettyByteBufferAllocator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT">DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">A default instance of the <a href="ProtonNettyByteBufferAllocator.html" title="class in org.apache.qpid.protonj2.buffer"><code>ProtonNettyByteBufferAllocator</code></a> that uses default configurations.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ProtonNettyByteBufferAllocator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allocate()">allocate</a></span>()</code></th>
<td class="colLast">
<div class="block">Create a new ProtonBuffer instance with default initial capacity.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allocate(int)">allocate</a></span>&#8203;(int&nbsp;initialCapacity)</code></th>
<td class="colLast">
<div class="block">Create a new ProtonBuffer instance with the given initial capacity and the
maximum capacity should be that of the underlying buffer implementations
limit.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allocate(int,int)">allocate</a></span>&#8203;(int&nbsp;initialCapacity,
int&nbsp;maximumCapacity)</code></th>
<td class="colLast">
<div class="block">Create a new ProtonBuffer instance with the given initial capacity and the
maximum capacity should that of the value specified by the caller.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#outputBuffer(int)">outputBuffer</a></span>&#8203;(int&nbsp;initialCapacity)</code></th>
<td class="colLast">
<div class="block">Create a new output ProtonBuffer instance with the given initial capacity and the
maximum capacity should be that of the underlying buffer implementations limit.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#outputBuffer(int,int)">outputBuffer</a></span>&#8203;(int&nbsp;initialCapacity,
int&nbsp;maximumCapacity)</code></th>
<td class="colLast">
<div class="block">Create a new output ProtonBuffer instance with the given initial capacity and the
maximum capacity should that of the value specified by the caller.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wrap(byte%5B%5D)">wrap</a></span>&#8203;(byte[]&nbsp;array)</code></th>
<td class="colLast">
<div class="block">Create a new ProtonBuffer that wraps the given byte array.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wrap(byte%5B%5D,int,int)">wrap</a></span>&#8203;(byte[]&nbsp;array,
int&nbsp;offset,
int&nbsp;length)</code></th>
<td class="colLast">
<div class="block">Create a new ProtonBuffer that wraps the given byte array using the provided
offset and length values to confine the view of that array.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wrap(java.nio.ByteBuffer)">wrap</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio" class="externalLink">ByteBuffer</a>&nbsp;buffer)</code></th>
<td class="colLast">
<div class="block">Create a new ProtonBuffer that wraps the given ByteBuffer.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="DEFAULT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT</h4>
<pre>public static final&nbsp;<a href="ProtonNettyByteBufferAllocator.html" title="class in org.apache.qpid.protonj2.buffer">ProtonNettyByteBufferAllocator</a> DEFAULT</pre>
<div class="block">A default instance of the <a href="ProtonNettyByteBufferAllocator.html" title="class in org.apache.qpid.protonj2.buffer"><code>ProtonNettyByteBufferAllocator</code></a> that uses default configurations.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ProtonNettyByteBufferAllocator</h4>
<pre>public&nbsp;ProtonNettyByteBufferAllocator()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="outputBuffer(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>outputBuffer</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;outputBuffer&#8203;(int&nbsp;initialCapacity)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#outputBuffer(int)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new output ProtonBuffer instance with the given initial capacity and the
maximum capacity should be that of the underlying buffer implementations limit. The
buffer implementation should support growing the buffer on an as needed basis to allow
writes without the user needing to code extra capacity and buffer reallocation checks.
<p>
The returned buffer will be used for frame output from the Proton engine and
can be a pooled buffer which the IO handler will then need to release once
the buffer has been written.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#outputBuffer(int)">outputBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initialCapacity</code> - The initial capacity to use when creating the new ProtonBuffer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer instance with the given initial capacity.</dd>
</dl>
</li>
</ul>
<a id="outputBuffer(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>outputBuffer</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;outputBuffer&#8203;(int&nbsp;initialCapacity,
int&nbsp;maximumCapacity)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#outputBuffer(int,int)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new output ProtonBuffer instance with the given initial capacity and the
maximum capacity should that of the value specified by the caller.
<p>
The returned buffer will be used for frame output from the Proton engine and
can be a pooled buffer which the IO handler will then need to release once
the buffer has been written.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#outputBuffer(int,int)">outputBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initialCapacity</code> - The initial capacity to use when creating the new ProtonBuffer.</dd>
<dd><code>maximumCapacity</code> - The largest amount of bytes the new ProtonBuffer is allowed to grow to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer instance with the given initial capacity.</dd>
</dl>
</li>
</ul>
<a id="allocate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocate</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBuffer</a>&nbsp;allocate()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#allocate()">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new ProtonBuffer instance with default initial capacity. The buffer
implementation should support growing the buffer on an as needed basis to allow
writes without the user needing to code extra capacity and buffer reallocation
checks.
It is not recommended that these buffers be backed by a pooled resource as there
is no defined release point within the buffer API and if used by an AMQP engine
they could be lost as buffers are copied or aggregated together.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#allocate()">allocate</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer instance with default initial capacity.</dd>
</dl>
</li>
</ul>
<a id="allocate(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocate</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBuffer</a>&nbsp;allocate&#8203;(int&nbsp;initialCapacity)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#allocate(int)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new ProtonBuffer instance with the given initial capacity and the
maximum capacity should be that of the underlying buffer implementations
limit.
It is not recommended that these buffers be backed by a pooled resource as there
is no defined release point within the buffer API and if used by an AMQP engine
they could be lost as buffers are copied or aggregated together.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#allocate(int)">allocate</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initialCapacity</code> - The initial capacity to use when creating the new ProtonBuffer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer instance with the given initial capacity.</dd>
</dl>
</li>
</ul>
<a id="allocate(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocate</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonByteBuffer.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBuffer</a>&nbsp;allocate&#8203;(int&nbsp;initialCapacity,
int&nbsp;maximumCapacity)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#allocate(int,int)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new ProtonBuffer instance with the given initial capacity and the
maximum capacity should that of the value specified by the caller.
It is not recommended that these buffers be backed by a pooled resource as there
is no defined release point within the buffer API and if used by an AMQP engine
they could be lost as buffers are copied or aggregated together.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#allocate(int,int)">allocate</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initialCapacity</code> - The initial capacity to use when creating the new ProtonBuffer.</dd>
<dd><code>maximumCapacity</code> - The largest amount of bytes the new ProtonBuffer is allowed to grow to.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer instance with the given initial capacity.</dd>
</dl>
</li>
</ul>
<a id="wrap(byte[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;wrap&#8203;(byte[]&nbsp;array)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#wrap(byte%5B%5D)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new ProtonBuffer that wraps the given byte array.
<p>
The capacity and maximum capacity for the resulting ProtonBuffer should equal
to the length of the wrapped array and the returned array offset is zero.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#wrap(byte%5B%5D)">wrap</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>array</code> - the byte array to wrap.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer that wraps the given array.</dd>
</dl>
</li>
</ul>
<a id="wrap(byte[],int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;wrap&#8203;(byte[]&nbsp;array,
int&nbsp;offset,
int&nbsp;length)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#wrap(byte%5B%5D,int,int)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new ProtonBuffer that wraps the given byte array using the provided
offset and length values to confine the view of that array. The maximum capacity
of the buffer should be that of the length of the wrapped array.
<p>
The capacity and maximum capacity for the resulting ProtonBuffer should equal
to the length parameter provided and the returned buffer offset will be zero.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#wrap(byte%5B%5D,int,int)">wrap</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>array</code> - the byte array to wrap.</dd>
<dd><code>offset</code> - the offset into the array where the view begins.</dd>
<dd><code>length</code> - the number of bytes in the array to expose</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer that wraps the given array.</dd>
</dl>
</li>
</ul>
<a id="wrap(java.nio.ByteBuffer)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>wrap</h4>
<pre class="methodSignature">public&nbsp;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;wrap&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio" class="externalLink">ByteBuffer</a>&nbsp;buffer)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ProtonBufferAllocator.html#wrap(java.nio.ByteBuffer)">ProtonBufferAllocator</a></code></span></div>
<div class="block">Create a new ProtonBuffer that wraps the given ByteBuffer. The maximum capacity
of the returned buffer should be same as the remaining bytes within the wrapped
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio" class="externalLink"><code>ByteBuffer</code></a>.
<p>
The capacity and maximum capacity of the returned ProtonBuffer will be the
same as that of the underlying ByteBuffer. The ProtonBuffer will return true
from the <a href="ProtonBuffer.html#hasArray()"><code>ProtonBuffer.hasArray()</code></a> method only when the wrapped ByteBuffer
reports that it is backed by an array.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ProtonBufferAllocator.html#wrap(java.nio.ByteBuffer)">wrap</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio" class="externalLink"><code>ByteBuffer</code></a> to wrap.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ProtonBuffer that wraps the given ByteBuffer.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ProtonNettyByteBufferAllocator.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="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>