blob: fe74d8325a8fc5be8f6371422993924108b5b7d4 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ProtonCompositeBuffer (Qpid ProtonJ2 Parent 1.0.0-M18 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.qpid.protonj2.buffer, interface: ProtonCompositeBuffer">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ProtonCompositeBuffer.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.buffer</a></div>
<h1 title="Interface ProtonCompositeBuffer" class="title">Interface ProtonCompositeBuffer</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&gt;</code>, <code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code>, <code><a href="ProtonBufferAccessors.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAccessors</a></code>, <code><a href="../resource/Resource.html" title="interface in org.apache.qpid.protonj2.resource">Resource</a>&lt;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonCompositeBufferImpl.html" title="class in org.apache.qpid.protonj2.buffer.impl">ProtonCompositeBufferImpl</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">ProtonCompositeBuffer</span><span class="extends-implements">
extends <a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></span></div>
<div class="block">Defines the API for a specialized buffer type that is a composite of
other buffer instances which is presented as a single buffer view.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#advanceReadOffset(int)" class="member-name-link">advanceReadOffset</a><wbr>(int&nbsp;length)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Adjusts the current <a href="ProtonBuffer.html#getReadOffset()"><code>ProtonBuffer.getReadOffset()</code></a> of this buffer by the specified <code>length</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#advanceWriteOffset(int)" class="member-name-link">advanceWriteOffset</a><wbr>(int&nbsp;length)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Adjusts the current <a href="ProtonBuffer.html#getWriteOffset()"><code>ProtonBuffer.getWriteOffset()</code></a> of this buffer by the specified <code>length</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#append(org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">append</a><wbr>(<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Appends the given buffer to this composite buffer if all the constraints on
buffer composites are met, otherwise thrown an exception.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#compact()" class="member-name-link">compact</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Moves the readable portion of the buffer to the beginning of the underlying
buffer storage and possibly makes additional bytes available for writes before
a buffer expansion would occur via an <a href="ProtonBuffer.html#ensureWritable(int)"><code>ProtonBuffer.ensureWritable(int)</code></a> call.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#convertToReadOnly()" class="member-name-link">convertToReadOnly</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Converts this buffer instance to a read-only buffer, any write operation that is
performed on this buffer following this call will fail.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#copy()" class="member-name-link">copy</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Create a deep copy of the readable bytes of this ProtonBuffer, the returned buffer can
be modified without affecting the contents or position markers of this instance.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#copy(boolean)" class="member-name-link">copy</a><wbr>(boolean&nbsp;readOnly)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Returns a copy of this buffer's readable bytes and sets the read-only
state of the returned buffer based on the value of the read-only flag.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#copy(int,int)" class="member-name-link">copy</a><wbr>(int&nbsp;index,
int&nbsp;length)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Returns a copy of this buffer's sub-region.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#copy(int,int,boolean)" class="member-name-link">copy</a><wbr>(int&nbsp;index,
int&nbsp;length,
boolean&nbsp;readOnly)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns a copy of this buffer's sub-region.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1"><code>static <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1"><code><a href="#create(org.apache.qpid.protonj2.buffer.ProtonBufferAllocator)" class="member-name-link">create</a><wbr>(<a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a>&nbsp;allocator)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1">
<div class="block">Create an empty composite buffer that will use the provided allocator to
create new buffer capacity if writes are performed and insufficient space
remains (unless the capacity limit is reached).</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1"><code>static <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1"><code><a href="#create(org.apache.qpid.protonj2.buffer.ProtonBufferAllocator,org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">create</a><wbr>(<a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a>&nbsp;allocator,
<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1">
<div class="block">Create an composite buffer with the given buffer instance as the initial buffer
payload.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1"><code>static <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1"><code><a href="#create(org.apache.qpid.protonj2.buffer.ProtonBufferAllocator,org.apache.qpid.protonj2.buffer.ProtonBuffer%5B%5D)" class="member-name-link">create</a><wbr>(<a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a>&nbsp;allocator,
<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>[]&nbsp;buffers)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1">
<div class="block">Create an composite buffer with the given array of buffers as the initial buffer
payload.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#decomposeBuffer()" class="member-name-link">decomposeBuffer</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Splits the composite buffer up into a collection of buffers that comprise it and
leaves this buffer in what is effectively a closed state.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#ensureWritable(int)" class="member-name-link">ensureWritable</a><wbr>(int&nbsp;amount)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Ensures that the requested number of bytes is available for write operations
in the current buffer, growing the buffer if needed to meet the requested
writable capacity.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#ensureWritable(int,int,boolean)" class="member-name-link">ensureWritable</a><wbr>(int&nbsp;size,
int&nbsp;minimumGrowth,
boolean&nbsp;allowCompaction)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Ensures that the requested number of bytes is available for write operations
in the current buffer, growing the buffer if needed to meet the requested
writable capacity.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fill(byte)" class="member-name-link">fill</a><wbr>(byte&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Assigns the given value to every byte in the buffer without respect for the
buffer read or write offsets.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#implicitGrowthLimit(int)" class="member-name-link">implicitGrowthLimit</a><wbr>(int&nbsp;limit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Configures the limit assigned to this buffer if one was set which controls how
large the capacity of the buffer can grow implicitly via write calls.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1"><code>static boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1"><code><a href="#isComposite(org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">isComposite</a><wbr>(<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1">
<div class="block">Checks if the given buffer is an composite buffer instance or not.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#readBytes(byte%5B%5D,int,int)" class="member-name-link">readBytes</a><wbr>(byte[]&nbsp;destination,
int&nbsp;offset,
int&nbsp;length)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Read from this buffer, into the destination array, the given number of bytes.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#readBytes(java.nio.ByteBuffer)" class="member-name-link">readBytes</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link">ByteBuffer</a>&nbsp;destination)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Read from this buffer, into the destination <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a> This updates the read offset of this
buffer and also the position of the destination <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#readSplit(int)" class="member-name-link">readSplit</a><wbr>(int&nbsp;length)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Splits this buffer at the read offset + the length given.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setReadOffset(int)" class="member-name-link">setReadOffset</a><wbr>(int&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the read offset for this buffer.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setWriteOffset(int)" class="member-name-link">setWriteOffset</a><wbr>(int&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the write offset for this buffer.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#split()" class="member-name-link">split</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Splits this buffer at the write offset.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#split(int)" class="member-name-link">split</a><wbr>(int&nbsp;splitOffset)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Splits this buffer at the given offset.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#splitComponentsCeil(int)" class="member-name-link">splitComponentsCeil</a><wbr>(int&nbsp;splitOffset)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Split this buffer returning a composite that consists of all the buffer components up to and including
the buffer that contains the split offset, no buffer components are split.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#splitComponentsFloor(int)" class="member-name-link">splitComponentsFloor</a><wbr>(int&nbsp;splitOffset)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Split this buffer returning a composite that consists of all the buffer components that come before
the buffer that contains the split offset, no buffer components are split.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#writeBytes(byte%5B%5D)" class="member-name-link">writeBytes</a><wbr>(byte[]&nbsp;source)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Writes into this buffer, all the bytes from the given byte array.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#writeBytes(byte%5B%5D,int,int)" class="member-name-link">writeBytes</a><wbr>(byte[]&nbsp;source,
int&nbsp;offset,
int&nbsp;length)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Writes into this buffer, the given number of bytes from the byte array.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#writeBytes(java.nio.ByteBuffer)" class="member-name-link">writeBytes</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link">ByteBuffer</a>&nbsp;source)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Writes into this buffer from the source <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#writeBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">writeBytes</a><wbr>(<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;source)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Writes into this buffer, all the readable bytes from the given buffer.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#writeSplit(int)" class="member-name-link">writeSplit</a><wbr>(int&nbsp;length)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Splits this buffer at the write offset + the length given.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.buffer.ProtonBuffer">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.buffer.<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></h3>
<code><a href="ProtonBuffer.html#bufferIterator()">bufferIterator</a>, <a href="ProtonBuffer.html#bufferIterator(int,int)">bufferIterator</a>, <a href="ProtonBuffer.html#bufferReverseIterator()">bufferReverseIterator</a>, <a href="ProtonBuffer.html#bufferReverseIterator(int,int)">bufferReverseIterator</a>, <a href="ProtonBuffer.html#capacity()">capacity</a>, <a href="ProtonBuffer.html#clear()">clear</a>, <a href="ProtonBuffer.html#close()">close</a>, <a href="ProtonBuffer.html#compareTo(org.apache.qpid.protonj2.buffer.ProtonBuffer)">compareTo</a>, <a href="ProtonBuffer.html#componentAccessor()">componentAccessor</a>, <a href="ProtonBuffer.html#componentCount()">componentCount</a>, <a href="ProtonBuffer.html#copyInto(int,byte%5B%5D,int,int)">copyInto</a>, <a href="ProtonBuffer.html#copyInto(int,java.nio.ByteBuffer,int,int)">copyInto</a>, <a href="ProtonBuffer.html#copyInto(int,org.apache.qpid.protonj2.buffer.ProtonBuffer,int,int)">copyInto</a>, <a href="ProtonBuffer.html#getReadableBytes()">getReadableBytes</a>, <a href="ProtonBuffer.html#getReadOffset()">getReadOffset</a>, <a href="ProtonBuffer.html#getWritableBytes()">getWritableBytes</a>, <a href="ProtonBuffer.html#getWriteOffset()">getWriteOffset</a>, <a href="ProtonBuffer.html#implicitGrowthLimit()">implicitGrowthLimit</a>, <a href="ProtonBuffer.html#indexOf(byte)">indexOf</a>, <a href="ProtonBuffer.html#indexOf(byte,int,int)">indexOf</a>, <a href="ProtonBuffer.html#isClosed()">isClosed</a>, <a href="ProtonBuffer.html#isComposite()">isComposite</a>, <a href="ProtonBuffer.html#isDirect()">isDirect</a>, <a href="ProtonBuffer.html#isReadable()">isReadable</a>, <a href="ProtonBuffer.html#isReadOnly()">isReadOnly</a>, <a href="ProtonBuffer.html#isWritable()">isWritable</a>, <a href="ProtonBuffer.html#readableComponentCount()">readableComponentCount</a>, <a href="ProtonBuffer.html#readCharSequence(int,java.nio.charset.Charset)">readCharSequence</a>, <a href="ProtonBuffer.html#toString(java.nio.charset.Charset)">toString</a>, <a href="ProtonBuffer.html#transferFrom(java.nio.channels.FileChannel,long,int)">transferFrom</a>, <a href="ProtonBuffer.html#transferFrom(java.nio.channels.ReadableByteChannel,int)">transferFrom</a>, <a href="ProtonBuffer.html#transferTo(java.nio.channels.WritableByteChannel,int)">transferTo</a>, <a href="ProtonBuffer.html#unwrap()">unwrap</a>, <a href="ProtonBuffer.html#writableComponentCount()">writableComponentCount</a>, <a href="ProtonBuffer.html#writeCharSequence(java.lang.CharSequence,java.nio.charset.Charset)">writeCharSequence</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.buffer.ProtonBufferAccessors">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.buffer.<a href="ProtonBufferAccessors.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAccessors</a></h3>
<code><a href="ProtonBufferAccessors.html#getBoolean(int)">getBoolean</a>, <a href="ProtonBufferAccessors.html#getByte(int)">getByte</a>, <a href="ProtonBufferAccessors.html#getChar(int)">getChar</a>, <a href="ProtonBufferAccessors.html#getDouble(int)">getDouble</a>, <a href="ProtonBufferAccessors.html#getFloat(int)">getFloat</a>, <a href="ProtonBufferAccessors.html#getInt(int)">getInt</a>, <a href="ProtonBufferAccessors.html#getLong(int)">getLong</a>, <a href="ProtonBufferAccessors.html#getShort(int)">getShort</a>, <a href="ProtonBufferAccessors.html#getUnsignedByte(int)">getUnsignedByte</a>, <a href="ProtonBufferAccessors.html#getUnsignedInt(int)">getUnsignedInt</a>, <a href="ProtonBufferAccessors.html#getUnsignedShort(int)">getUnsignedShort</a>, <a href="ProtonBufferAccessors.html#readBoolean()">readBoolean</a>, <a href="ProtonBufferAccessors.html#readByte()">readByte</a>, <a href="ProtonBufferAccessors.html#readChar()">readChar</a>, <a href="ProtonBufferAccessors.html#readDouble()">readDouble</a>, <a href="ProtonBufferAccessors.html#readFloat()">readFloat</a>, <a href="ProtonBufferAccessors.html#readInt()">readInt</a>, <a href="ProtonBufferAccessors.html#readLong()">readLong</a>, <a href="ProtonBufferAccessors.html#readShort()">readShort</a>, <a href="ProtonBufferAccessors.html#readUnsignedByte()">readUnsignedByte</a>, <a href="ProtonBufferAccessors.html#readUnsignedInt()">readUnsignedInt</a>, <a href="ProtonBufferAccessors.html#readUnsignedShort()">readUnsignedShort</a>, <a href="ProtonBufferAccessors.html#setBoolean(int,boolean)">setBoolean</a>, <a href="ProtonBufferAccessors.html#setByte(int,byte)">setByte</a>, <a href="ProtonBufferAccessors.html#setChar(int,char)">setChar</a>, <a href="ProtonBufferAccessors.html#setDouble(int,double)">setDouble</a>, <a href="ProtonBufferAccessors.html#setFloat(int,float)">setFloat</a>, <a href="ProtonBufferAccessors.html#setInt(int,int)">setInt</a>, <a href="ProtonBufferAccessors.html#setLong(int,long)">setLong</a>, <a href="ProtonBufferAccessors.html#setShort(int,short)">setShort</a>, <a href="ProtonBufferAccessors.html#setUnsignedByte(int,int)">setUnsignedByte</a>, <a href="ProtonBufferAccessors.html#setUnsignedInt(int,long)">setUnsignedInt</a>, <a href="ProtonBufferAccessors.html#setUnsignedShort(int,int)">setUnsignedShort</a>, <a href="ProtonBufferAccessors.html#writeBoolean(boolean)">writeBoolean</a>, <a href="ProtonBufferAccessors.html#writeByte(byte)">writeByte</a>, <a href="ProtonBufferAccessors.html#writeChar(char)">writeChar</a>, <a href="ProtonBufferAccessors.html#writeDouble(double)">writeDouble</a>, <a href="ProtonBufferAccessors.html#writeFloat(float)">writeFloat</a>, <a href="ProtonBufferAccessors.html#writeInt(int)">writeInt</a>, <a href="ProtonBufferAccessors.html#writeLong(long)">writeLong</a>, <a href="ProtonBufferAccessors.html#writeShort(short)">writeShort</a>, <a href="ProtonBufferAccessors.html#writeUnsignedByte(int)">writeUnsignedByte</a>, <a href="ProtonBufferAccessors.html#writeUnsignedInt(long)">writeUnsignedInt</a>, <a href="ProtonBufferAccessors.html#writeUnsignedShort(int)">writeUnsignedShort</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.resource.Resource">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.resource.<a href="../resource/Resource.html" title="interface in org.apache.qpid.protonj2.resource">Resource</a></h3>
<code><a href="../resource/Resource.html#transfer()">transfer</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="create(org.apache.qpid.protonj2.buffer.ProtonBufferAllocator)">
<h3>create</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(<a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a>&nbsp;allocator)</span></div>
<div class="block">Create an empty composite buffer that will use the provided allocator to
create new buffer capacity if writes are performed and insufficient space
remains (unless the capacity limit is reached).</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>allocator</code> - The allocator to use when adding new buffer capacity automatically.</dd>
<dt>Returns:</dt>
<dd>a new empty composite buffer instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="create(org.apache.qpid.protonj2.buffer.ProtonBufferAllocator,org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3>create</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(<a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a>&nbsp;allocator,
<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</span></div>
<div class="block">Create an composite buffer with the given buffer instance as the initial buffer
payload. The provided buffer allocator will use the provided allocator to create
new buffer capacity if writes are performed and insufficient space remains (unless
the capacity limit is reached).</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>allocator</code> - The allocator to use when adding new buffer capacity automatically.</dd>
<dd><code>buffer</code> - The initial buffer to append as the body of the returned composite buffer.</dd>
<dt>Returns:</dt>
<dd>a new composite buffer instance that wraps the given buffer.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="create(org.apache.qpid.protonj2.buffer.ProtonBufferAllocator,org.apache.qpid.protonj2.buffer.ProtonBuffer[])">
<h3>create</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">create</span><wbr><span class="parameters">(<a href="ProtonBufferAllocator.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBufferAllocator</a>&nbsp;allocator,
<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>[]&nbsp;buffers)</span></div>
<div class="block">Create an composite buffer with the given array of buffers as the initial buffer
payload. The provided buffer allocator will use the provided allocator to create
new buffer capacity if writes are performed and insufficient space remains (unless
the capacity limit is reached).</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>allocator</code> - The allocator to use when adding new buffer capacity automatically.</dd>
<dd><code>buffers</code> - The initial buffers to append as the body of the returned composite buffer.</dd>
<dt>Returns:</dt>
<dd>a new composite buffer instance that wraps the given buffers.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isComposite(org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3>isComposite</h3>
<div class="member-signature"><span class="modifiers">static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isComposite</span><wbr><span class="parameters">(<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</span></div>
<div class="block">Checks if the given buffer is an composite buffer instance or not.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>buffer</code> - the buffer instance to check.</dd>
<dt>Returns:</dt>
<dd>true if the buffer given is a composite buffer or false if not.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="append(org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3>append</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">append</span><wbr><span class="parameters">(<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</span></div>
<div class="block">Appends the given buffer to this composite buffer if all the constraints on
buffer composites are met, otherwise thrown an exception.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>buffer</code> - The buffer to append to this composite collection of buffers.</dd>
<dt>Returns:</dt>
<dd>this composite buffer instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="decomposeBuffer()">
<h3>decomposeBuffer</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&gt;</span>&nbsp;<span class="element-name">decomposeBuffer</span>()</div>
<div class="block">Splits the composite buffer up into a collection of buffers that comprise it and
leaves this buffer in what is effectively a closed state. The returned buffers are
now the property of the caller who must ensure they are closed when no longer in use..</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the collection of buffers that comprised this composite buffer.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="splitComponentsFloor(int)">
<h3>splitComponentsFloor</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">splitComponentsFloor</span><wbr><span class="parameters">(int&nbsp;splitOffset)</span></div>
<div class="block">Split this buffer returning a composite that consists of all the buffer components that come before
the buffer that contains the split offset, no buffer components are split. This allows for operations
such as reclaiming read bytes from a buffer to reduce overall memory use.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>splitOffset</code> - The index into the buffer where the split should be performed.</dd>
<dt>Returns:</dt>
<dd>A <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonCompositeBuffer</code></a> that owns all buffers that come before the buffer that holds given index.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="splitComponentsCeil(int)">
<h3>splitComponentsCeil</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">splitComponentsCeil</span><wbr><span class="parameters">(int&nbsp;splitOffset)</span></div>
<div class="block">Split this buffer returning a composite that consists of all the buffer components up to and including
the buffer that contains the split offset, no buffer components are split.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>splitOffset</code> - The index into the buffer where the split should be performed.</dd>
<dt>Returns:</dt>
<dd>A <a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonCompositeBuffer</code></a> that owns all buffers up to and including the buffer that holds given index.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fill(byte)">
<h3>fill</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">fill</span><wbr><span class="parameters">(byte&nbsp;value)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#fill(byte)">ProtonBuffer</a></code></span></div>
<div class="block">Assigns the given value to every byte in the buffer without respect for the
buffer read or write offsets.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#fill(byte)">fill</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>value</code> - The byte value to assign each byte in this buffer.</dd>
<dt>Returns:</dt>
<dd>this ProtonBuffer for chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setReadOffset(int)">
<h3>setReadOffset</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">setReadOffset</span><wbr><span class="parameters">(int&nbsp;value)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#setReadOffset(int)">ProtonBuffer</a></code></span></div>
<div class="block">Sets the read offset for this buffer.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#setReadOffset(int)">setReadOffset</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>value</code> - The offset into the buffer where the read offset should be positioned.</dd>
<dt>Returns:</dt>
<dd>this buffer for use in chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="advanceReadOffset(int)">
<h3>advanceReadOffset</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">advanceReadOffset</span><wbr><span class="parameters">(int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#advanceReadOffset(int)">ProtonBuffer</a></code></span></div>
<div class="block">Adjusts the current <a href="ProtonBuffer.html#getReadOffset()"><code>ProtonBuffer.getReadOffset()</code></a> of this buffer by the specified <code>length</code>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#advanceReadOffset(int)">advanceReadOffset</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>length</code> - the number of bytes to advance the read offset by.</dd>
<dt>Returns:</dt>
<dd>this ProtonBuffer for chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setWriteOffset(int)">
<h3>setWriteOffset</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">setWriteOffset</span><wbr><span class="parameters">(int&nbsp;value)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#setWriteOffset(int)">ProtonBuffer</a></code></span></div>
<div class="block">Sets the write offset for this buffer.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#setWriteOffset(int)">setWriteOffset</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>value</code> - The offset into the buffer where the write offset should be positioned.</dd>
<dt>Returns:</dt>
<dd>this buffer for use in chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="advanceWriteOffset(int)">
<h3>advanceWriteOffset</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">advanceWriteOffset</span><wbr><span class="parameters">(int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#advanceWriteOffset(int)">ProtonBuffer</a></code></span></div>
<div class="block">Adjusts the current <a href="ProtonBuffer.html#getWriteOffset()"><code>ProtonBuffer.getWriteOffset()</code></a> of this buffer by the specified <code>length</code>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#advanceWriteOffset(int)">advanceWriteOffset</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>length</code> - the number of bytes to advance the write offset by.</dd>
<dt>Returns:</dt>
<dd>this ProtonBuffer for chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="implicitGrowthLimit(int)">
<h3>implicitGrowthLimit</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">implicitGrowthLimit</span><wbr><span class="parameters">(int&nbsp;limit)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#implicitGrowthLimit(int)">ProtonBuffer</a></code></span></div>
<div class="block">Configures the limit assigned to this buffer if one was set which controls how
large the capacity of the buffer can grow implicitly via write calls. Once
the limit is hit any write call that requires more capacity than is currently
available will throw an exception instead of allocating more space.
<p>
When a capacity limit is hit the buffer can still be enlarged but must be
done explicitly via the ensure writable APIs.
<p>
The growth limit set applies only to this buffer instance and is not carried
over to a copied buffer of the split buffer created from any of the buffer
split calls.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#implicitGrowthLimit(int)">implicitGrowthLimit</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>limit</code> - The limit to assign as the maximum capacity this buffer can grow</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="ensureWritable(int)">
<h3>ensureWritable</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">ensureWritable</span><wbr><span class="parameters">(int&nbsp;amount)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link">IndexOutOfBoundsException</a>,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#ensureWritable(int)">ProtonBuffer</a></code></span></div>
<div class="block">Ensures that the requested number of bytes is available for write operations
in the current buffer, growing the buffer if needed to meet the requested
writable capacity. This method will not alter the write offset but may change
the value returned from the capacity method if new buffer space is allocated.
<p>
This method allows buffer compaction as a strategy to reclaim already read
space to make room for additional writes. This implies that a composite buffer
can reuse already read buffers to extend the buffer's writable space by moving
them to the end of the set of composite buffers and reseting their index values
to make them fully writable.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#ensureWritable(int)">ensureWritable</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>amount</code> - The number of bytes beyond the current write index needed.</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link">IndexOutOfBoundsException</a></code> - if the amount given would result in the buffer
exceeding the maximum capacity for this buffer.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the amount given is less than zero.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="ensureWritable(int,int,boolean)">
<h3>ensureWritable</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">ensureWritable</span><wbr><span class="parameters">(int&nbsp;size,
int&nbsp;minimumGrowth,
boolean&nbsp;allowCompaction)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link">IndexOutOfBoundsException</a>,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#ensureWritable(int,int,boolean)">ProtonBuffer</a></code></span></div>
<div class="block">Ensures that the requested number of bytes is available for write operations
in the current buffer, growing the buffer if needed to meet the requested
writable capacity. This method will not alter the write offset but may change
the value returned from the capacity method if new buffer space is allocated.
If the buffer cannot create the required number of byte via compaction then
the buffer will be grown by either the requested number of bytes or by the
minimum allowed value specified.
<p>
This method allows buffer compaction as a strategy to reclaim already read
space to make room for additional writes. This implies that a composite buffer
can reuse already read buffers to extend the buffer's writable space by moving
them to the end of the set of composite buffers and reseting their index values
to make them fully writable.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#ensureWritable(int,int,boolean)">ensureWritable</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>size</code> - The number of bytes beyond the current write index needed.</dd>
<dd><code>minimumGrowth</code> - The minimum number of byte that the buffer can grow by</dd>
<dd><code>allowCompaction</code> - Can the buffer use compaction as a strategy to create more writable space.</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link">IndexOutOfBoundsException</a></code> - if the amount given would result in the buffer
exceeding the maximum capacity for this buffer.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the amount given is less than zero.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convertToReadOnly()">
<h3>convertToReadOnly</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">convertToReadOnly</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#convertToReadOnly()">ProtonBuffer</a></code></span></div>
<div class="block">Converts this buffer instance to a read-only buffer, any write operation that is
performed on this buffer following this call will fail. A buffer cannot be made
writable after this call.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#convertToReadOnly()">convertToReadOnly</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Returns:</dt>
<dd>this buffer for use in chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="copy()">
<h3>copy</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">copy</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#copy()">ProtonBuffer</a></code></span></div>
<div class="block">Create a deep copy of the readable bytes of this ProtonBuffer, the returned buffer can
be modified without affecting the contents or position markers of this instance. The
returned copy will not be read-only regardless of the read-only state of this buffer
instance at the time of copy.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#copy()">copy</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Returns:</dt>
<dd>a deep copy of this ProtonBuffer instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="copy(int,int)">
<h3>copy</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">copy</span><wbr><span class="parameters">(int&nbsp;index,
int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#copy(int,int)">ProtonBuffer</a></code></span></div>
<div class="block">Returns a copy of this buffer's sub-region. Modifying the content of
the returned buffer or this buffer does not affect each other at all.
This method does not modify the value returned from <a href="ProtonBuffer.html#getReadOffset()"><code>ProtonBuffer.getReadOffset()</code></a>
or <a href="ProtonBuffer.html#getWriteOffset()"><code>ProtonBuffer.getWriteOffset()</code></a> of this buffer.
<p>
The returned buffer will not be read-only even if this buffer is and
as such the contents will be a deep copy regardless of this buffer's
read-only state.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#copy(int,int)">copy</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>index</code> - The index in this buffer where the copy should begin</dd>
<dd><code>length</code> - The number of bytes to copy to the new buffer from this one.</dd>
<dt>Returns:</dt>
<dd>a new ProtonBuffer instance containing the copied bytes.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="copy(boolean)">
<h3>copy</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">copy</span><wbr><span class="parameters">(boolean&nbsp;readOnly)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#copy(boolean)">ProtonBuffer</a></code></span></div>
<div class="block">Returns a copy of this buffer's readable bytes and sets the read-only
state of the returned buffer based on the value of the read-only flag.
If this buffer is read-only and the flag indicates a read-only copy
then the copy may be a shallow copy that references the readable
bytes of the source buffer.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#copy(boolean)">copy</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>readOnly</code> - Should the returned buffer be read-only or not.</dd>
<dt>Returns:</dt>
<dd>a new ProtonBuffer instance containing the copied bytes.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="copy(int,int,boolean)">
<h3>copy</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">copy</span><wbr><span class="parameters">(int&nbsp;index,
int&nbsp;length,
boolean&nbsp;readOnly)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#copy(int,int,boolean)">ProtonBuffer</a></code></span></div>
<div class="block">Returns a copy of this buffer's sub-region. Modifying the content of
the returned buffer or this buffer does not affect each other at all.
This method does not modify the value returned from <a href="ProtonBuffer.html#getReadOffset()"><code>ProtonBuffer.getReadOffset()</code></a>
or <a href="ProtonBuffer.html#getWriteOffset()"><code>ProtonBuffer.getWriteOffset()</code></a> of this buffer.
<p>
If this buffer is read-only and the requested copy is also read-only the
copy may be shallow and allow each buffer to share the same memory.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#copy(int,int,boolean)">copy</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>index</code> - The index in this buffer where the copy should begin</dd>
<dd><code>length</code> - The number of bytes to copy to the new buffer from this one.</dd>
<dd><code>readOnly</code> - Should the returned buffer be read-only or not.</dd>
<dt>Returns:</dt>
<dd>a new ProtonBuffer instance containing the copied bytes.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the offset or length given are out of bounds.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="compact()">
<h3>compact</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">compact</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#compact()">ProtonBuffer</a></code></span></div>
<div class="block">Moves the readable portion of the buffer to the beginning of the underlying
buffer storage and possibly makes additional bytes available for writes before
a buffer expansion would occur via an <a href="ProtonBuffer.html#ensureWritable(int)"><code>ProtonBuffer.ensureWritable(int)</code></a> call.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#compact()">compact</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="readSplit(int)">
<h3>readSplit</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">readSplit</span><wbr><span class="parameters">(int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#readSplit(int)">ProtonBuffer</a></code></span></div>
<div class="block">Splits this buffer at the read offset + the length given.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#readSplit(int)">readSplit</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>length</code> - The number of bytes beyond the read offset where the split should occur</dd>
<dt>Returns:</dt>
<dd>A new buffer that owns the memory spanning the range given.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeSplit(int)">
<h3>writeSplit</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">writeSplit</span><wbr><span class="parameters">(int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#writeSplit(int)">ProtonBuffer</a></code></span></div>
<div class="block">Splits this buffer at the write offset + the length given.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#writeSplit(int)">writeSplit</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>length</code> - The number of bytes beyond the write offset where the split should occur</dd>
<dt>Returns:</dt>
<dd>A new buffer that owns the memory spanning the range given.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="split()">
<h3>split</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">split</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#split()">ProtonBuffer</a></code></span></div>
<div class="block">Splits this buffer at the write offset.
<p>
This creates two independent buffers that can manage differing views of the same
memory region or in the case of a composite buffer two buffers that take ownership
of differing sections of the composite buffer range. For a composite buffer a single
buffer might be split if the offset lays within its bounds but all others buffers
are divided amongst the two split buffers.
<p>
If this buffer is a read-only buffer then the resulting split buffer will also be
read-only.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#split()">split</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Returns:</dt>
<dd>A new buffer that owns the memory spanning the range given.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="split(int)">
<h3>split</h3>
<div class="member-signature"><span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">split</span><wbr><span class="parameters">(int&nbsp;splitOffset)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#split(int)">ProtonBuffer</a></code></span></div>
<div class="block">Splits this buffer at the given offset.
<p>
This creates two independent buffers that can manage differing views of the same
memory region or in the case of a composite buffer two buffers that take ownership
of differing sections of the composite buffer range. For a composite buffer a single
buffer might be split if the offset lays within its bounds but all others buffers
are divided amongst the two split buffers.
<p>
If this buffer is a read-only buffer then the resulting split buffer will also be
read-only.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#split(int)">split</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>splitOffset</code> - The offset in this buffer where the split should occur.</dd>
<dt>Returns:</dt>
<dd>A new buffer that owns the memory spanning the range given.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3>writeBytes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">writeBytes</span><wbr><span class="parameters">(<a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;source)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#writeBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)">ProtonBuffer</a></code></span></div>
<div class="block">Writes into this buffer, all the readable bytes from the given buffer. This updates the
<a href="ProtonBuffer.html#getWriteOffset()"><code>ProtonBuffer.getWriteOffset()</code></a> of this buffer, and the <a href="ProtonBuffer.html#getReadOffset()"><code>ProtonBuffer.getReadOffset()</code></a> of the given buffer.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#writeBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)">writeBytes</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>source</code> - The buffer to read from.</dd>
<dt>Returns:</dt>
<dd>This buffer.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeBytes(byte[])">
<h3>writeBytes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">writeBytes</span><wbr><span class="parameters">(byte[]&nbsp;source)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#writeBytes(byte%5B%5D)">ProtonBuffer</a></code></span></div>
<div class="block">Writes into this buffer, all the bytes from the given byte array. This updates the
<a href="ProtonBuffer.html#getWriteOffset()">ProtonBuffer.getWriteOffset()</a> of this buffer by the length of the array.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#writeBytes(byte%5B%5D)">writeBytes</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>source</code> - The byte array to read from.</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeBytes(byte[],int,int)">
<h3>writeBytes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">writeBytes</span><wbr><span class="parameters">(byte[]&nbsp;source,
int&nbsp;offset,
int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#writeBytes(byte%5B%5D,int,int)">ProtonBuffer</a></code></span></div>
<div class="block">Writes into this buffer, the given number of bytes from the byte array. This updates the
<a href="ProtonBuffer.html#getWriteOffset()">ProtonBuffer.getWriteOffset()</a> of this buffer by the length argument. Implementations are
recommended to specialize this method and provide a more efficient version.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#writeBytes(byte%5B%5D,int,int)">writeBytes</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>source</code> - The byte array to read from.</dd>
<dd><code>offset</code> - The position in the <code>source</code> from where bytes should be written to this buffer.</dd>
<dd><code>length</code> - The number of bytes to copy.</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeBytes(java.nio.ByteBuffer)">
<h3>writeBytes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">writeBytes</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link">ByteBuffer</a>&nbsp;source)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#writeBytes(java.nio.ByteBuffer)">ProtonBuffer</a></code></span></div>
<div class="block">Writes into this buffer from the source <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a>. This updates the
<a href="ProtonBuffer.html#getWriteOffset()"><code>ProtonBuffer.getWriteOffset()</code></a> of this buffer and also the position of the source
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a>. Implementations are recommended to specialize this method
and provide a more efficient version.
<p>
Note: the behavior is undefined if the given <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a> is an alias for the memory in this buffer.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#writeBytes(java.nio.ByteBuffer)">writeBytes</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>source</code> - The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a> to read from.</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="readBytes(java.nio.ByteBuffer)">
<h3>readBytes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">readBytes</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link">ByteBuffer</a>&nbsp;destination)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#readBytes(java.nio.ByteBuffer)">ProtonBuffer</a></code></span></div>
<div class="block">Read from this buffer, into the destination <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a> This updates the read offset of this
buffer and also the position of the destination <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a>.
<p>
Note: the behavior is undefined if the given <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a> is an alias for the memory in this buffer.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#readBytes(java.nio.ByteBuffer)">readBytes</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>destination</code> - The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="external-link"><code>ByteBuffer</code></a> to write into.</dd>
<dt>Returns:</dt>
<dd>this buffer for using in call chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="readBytes(byte[],int,int)">
<h3>readBytes</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="ProtonCompositeBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonCompositeBuffer</a></span>&nbsp;<span class="element-name">readBytes</span><wbr><span class="parameters">(byte[]&nbsp;destination,
int&nbsp;offset,
int&nbsp;length)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ProtonBuffer.html#readBytes(byte%5B%5D,int,int)">ProtonBuffer</a></code></span></div>
<div class="block">Read from this buffer, into the destination array, the given number of bytes.
This updates the read offset of this buffer by the length argument.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ProtonBuffer.html#readBytes(byte%5B%5D,int,int)">readBytes</a></code>&nbsp;in interface&nbsp;<code><a href="ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></dd>
<dt>Parameters:</dt>
<dd><code>destination</code> - The byte array to write into.</dd>
<dd><code>offset</code> - Position in the <code>destination</code> to where bytes should be written from this buffer.</dd>
<dd><code>length</code> - The number of bytes to copy.</dd>
<dt>Returns:</dt>
<dd>This buffer.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>