blob: eb743f5c835f05ec9a8b550c10f549a5c54a9ac5 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ProtonBufferAllocator (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="ProtonBufferAllocator (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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/ProtonBufferAllocator.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.buffer</a></div>
<h2 title="Interface ProtonBufferAllocator" class="title">Interface ProtonBufferAllocator</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="ProtonByteBufferAllocator.html" title="class in org.apache.qpid.protonj2.buffer">ProtonByteBufferAllocator</a></code>, <code><a href="ProtonNettyByteBufferAllocator.html" title="class in org.apache.qpid.protonj2.buffer">ProtonNettyByteBufferAllocator</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">ProtonBufferAllocator</span></pre>
<div class="block">Interface for a ProtonBuffer allocator object that can be used by Proton
objects to create memory buffers using the preferred type of the application
or library that embeds the Proton engine.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="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="#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="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="#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="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="#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>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ 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"><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;outputBuffer&#8203;(int&nbsp;initialCapacity)</pre>
<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="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"><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">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="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"><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;allocate()</pre>
<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="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"><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;allocate&#8203;(int&nbsp;initialCapacity)</pre>
<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="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"><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;allocate&#8203;(int&nbsp;initialCapacity,
int&nbsp;maximumCapacity)</pre>
<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="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"><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;wrap&#8203;(byte[]&nbsp;array)</pre>
<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="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"><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">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="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"><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">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="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/ProtonBufferAllocator.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>