blob: cafb71321f9aa78ecd8101a1f4aa90ccba24afe4 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Sender (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.engine, interface: Sender">
<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/Sender.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.engine</a></div>
<h1 title="Interface Sender" class="title">Interface Sender</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a>&lt;<a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a>&gt;</code>, <code><a href="Link.html" title="interface in org.apache.qpid.protonj2.engine">Link</a>&lt;<a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonSender.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonSender</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Sender</span><span class="extends-implements">
extends <a href="Link.html" title="interface in org.apache.qpid.protonj2.engine">Link</a>&lt;<a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a>&gt;</span></div>
<div class="block">AMQP Sender API</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-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></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-tab3"><code><a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#current()" class="member-name-link">current</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the current <a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>OutgoingDelivery</code></a> for this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> if one is available.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deliveryStateUpdatedHandler(org.apache.qpid.protonj2.engine.EventHandler)" class="member-name-link">deliveryStateUpdatedHandler</a><wbr>(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;&nbsp;handler)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Handler for updates for deliveries that have previously been sent.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#disposition(java.util.function.Predicate,org.apache.qpid.protonj2.types.transport.DeliveryState,boolean)" class="member-name-link">disposition</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;&nbsp;filter,
<a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>&nbsp;state,
boolean&nbsp;settle)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">For each unsettled outgoing delivery that is pending in the <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> apply the given predicate
and if it matches then apply the given delivery state and settled value to it.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#drained()" class="member-name-link">drained</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Called when the <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> has requested a drain of credit and the sender
has sent all available messages.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine">DeliveryTagGenerator</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getDeliveryTagGenerator()" class="member-name-link">getDeliveryTagGenerator</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#hasUnsettled()" class="member-name-link">hasUnsettled</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isSendable()" class="member-name-link">isSendable</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks if the sender has credit and the session window allows for any bytes to be written currently.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#next()" class="member-name-link">next</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">When there has been no deliveries so far or the current delivery has reached a complete state this
method updates the current delivery to a new instance and returns that value.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setDeliveryTagGenerator(org.apache.qpid.protonj2.engine.DeliveryTagGenerator)" class="member-name-link">setDeliveryTagGenerator</a><wbr>(<a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine">DeliveryTagGenerator</a>&nbsp;generator)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Configures a <a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine"><code>DeliveryTagGenerator</code></a> that will be used to create and set a <a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types"><code>DeliveryTag</code></a>
value on each new <a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>OutgoingDelivery</code></a> that is created and returned from the <a href="#next()"><code>next()</code></a>
method.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#settle(java.util.function.Predicate)" class="member-name-link">settle</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;&nbsp;filter)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">For each unsettled outgoing delivery that is pending in the <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> apply the given predicate
and if it matches then settle the delivery.</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/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</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="#unsettled()" class="member-name-link">unsettled</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieves the list of unsettled deliveries sent from this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a>.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.engine.Endpoint">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.engine.<a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a></h3>
<code><a href="Endpoint.html#close()">close</a>, <a href="Endpoint.html#closeHandler(org.apache.qpid.protonj2.engine.EventHandler)">closeHandler</a>, <a href="Endpoint.html#engineShutdownHandler(org.apache.qpid.protonj2.engine.EventHandler)">engineShutdownHandler</a>, <a href="Endpoint.html#getAttachments()">getAttachments</a>, <a href="Endpoint.html#getCondition()">getCondition</a>, <a href="Endpoint.html#getDesiredCapabilities()">getDesiredCapabilities</a>, <a href="Endpoint.html#getEngine()">getEngine</a>, <a href="Endpoint.html#getLinkedResource()">getLinkedResource</a>, <a href="Endpoint.html#getLinkedResource(java.lang.Class)">getLinkedResource</a>, <a href="Endpoint.html#getOfferedCapabilities()">getOfferedCapabilities</a>, <a href="Endpoint.html#getProperties()">getProperties</a>, <a href="Endpoint.html#getRemoteCondition()">getRemoteCondition</a>, <a href="Endpoint.html#getRemoteDesiredCapabilities()">getRemoteDesiredCapabilities</a>, <a href="Endpoint.html#getRemoteOfferedCapabilities()">getRemoteOfferedCapabilities</a>, <a href="Endpoint.html#getRemoteProperties()">getRemoteProperties</a>, <a href="Endpoint.html#isLocallyClosed()">isLocallyClosed</a>, <a href="Endpoint.html#isLocallyOpen()">isLocallyOpen</a>, <a href="Endpoint.html#localCloseHandler(org.apache.qpid.protonj2.engine.EventHandler)">localCloseHandler</a>, <a href="Endpoint.html#localOpenHandler(org.apache.qpid.protonj2.engine.EventHandler)">localOpenHandler</a>, <a href="Endpoint.html#open()">open</a>, <a href="Endpoint.html#openHandler(org.apache.qpid.protonj2.engine.EventHandler)">openHandler</a>, <a href="Endpoint.html#setCondition(org.apache.qpid.protonj2.types.transport.ErrorCondition)">setCondition</a>, <a href="Endpoint.html#setDesiredCapabilities(org.apache.qpid.protonj2.types.Symbol...)">setDesiredCapabilities</a>, <a href="Endpoint.html#setLinkedResource(java.lang.Object)">setLinkedResource</a>, <a href="Endpoint.html#setOfferedCapabilities(org.apache.qpid.protonj2.types.Symbol...)">setOfferedCapabilities</a>, <a href="Endpoint.html#setProperties(java.util.Map)">setProperties</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.engine.Link">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.engine.<a href="Link.html" title="interface in org.apache.qpid.protonj2.engine">Link</a></h3>
<code><a href="Link.html#creditStateUpdateHandler(org.apache.qpid.protonj2.engine.EventHandler)">creditStateUpdateHandler</a>, <a href="Link.html#detach()">detach</a>, <a href="Link.html#detachHandler(org.apache.qpid.protonj2.engine.EventHandler)">detachHandler</a>, <a href="Link.html#getConnection()">getConnection</a>, <a href="Link.html#getCredit()">getCredit</a>, <a href="Link.html#getMaxMessageSize()">getMaxMessageSize</a>, <a href="Link.html#getName()">getName</a>, <a href="Link.html#getParent()">getParent</a>, <a href="Link.html#getReceiverSettleMode()">getReceiverSettleMode</a>, <a href="Link.html#getRemoteMaxMessageSize()">getRemoteMaxMessageSize</a>, <a href="Link.html#getRemoteReceiverSettleMode()">getRemoteReceiverSettleMode</a>, <a href="Link.html#getRemoteSenderSettleMode()">getRemoteSenderSettleMode</a>, <a href="Link.html#getRemoteSource()">getRemoteSource</a>, <a href="Link.html#getRemoteState()">getRemoteState</a>, <a href="Link.html#getRemoteTarget()">getRemoteTarget</a>, <a href="Link.html#getRole()">getRole</a>, <a href="Link.html#getSenderSettleMode()">getSenderSettleMode</a>, <a href="Link.html#getSession()">getSession</a>, <a href="Link.html#getSource()">getSource</a>, <a href="Link.html#getState()">getState</a>, <a href="Link.html#getTarget()">getTarget</a>, <a href="Link.html#isDraining()">isDraining</a>, <a href="Link.html#isLocallyClosedOrDetached()">isLocallyClosedOrDetached</a>, <a href="Link.html#isLocallyDetached()">isLocallyDetached</a>, <a href="Link.html#isReceiver()">isReceiver</a>, <a href="Link.html#isRemotelyClosed()">isRemotelyClosed</a>, <a href="Link.html#isRemotelyClosedOrDetached()">isRemotelyClosedOrDetached</a>, <a href="Link.html#isRemotelyDetached()">isRemotelyDetached</a>, <a href="Link.html#isRemotelyOpen()">isRemotelyOpen</a>, <a href="Link.html#isSender()">isSender</a>, <a href="Link.html#localDetachHandler(org.apache.qpid.protonj2.engine.EventHandler)">localDetachHandler</a>, <a href="Link.html#parentEndpointClosedHandler(org.apache.qpid.protonj2.engine.EventHandler)">parentEndpointClosedHandler</a>, <a href="Link.html#setMaxMessageSize(org.apache.qpid.protonj2.types.UnsignedLong)">setMaxMessageSize</a>, <a href="Link.html#setReceiverSettleMode(org.apache.qpid.protonj2.types.transport.ReceiverSettleMode)">setReceiverSettleMode</a>, <a href="Link.html#setSenderSettleMode(org.apache.qpid.protonj2.types.transport.SenderSettleMode)">setSenderSettleMode</a>, <a href="Link.html#setSource(org.apache.qpid.protonj2.types.messaging.Source)">setSource</a>, <a href="Link.html#setTarget(org.apache.qpid.protonj2.types.messaging.Target)">setTarget</a>, <a href="Link.html#setTarget(org.apache.qpid.protonj2.types.transactions.Coordinator)">setTarget</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="drained()">
<h3>drained</h3>
<div class="member-signature"><span class="return-type"><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></span>&nbsp;<span class="element-name">drained</span>()</div>
<div class="block">Called when the <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> has requested a drain of credit and the sender
has sent all available messages.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> instance.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the link is not draining currently.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isSendable()">
<h3>isSendable</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isSendable</span>()</div>
<div class="block">Checks if the sender has credit and the session window allows for any bytes to be written currently.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if the link has credit and the session window allows for any bytes to be written.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="current()">
<h3>current</h3>
<div class="member-signature"><span class="return-type"><a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a></span>&nbsp;<span class="element-name">current</span>()</div>
<div class="block">Gets the current <a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>OutgoingDelivery</code></a> for this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> if one is available.
<p>
The sender only tracks a current delivery in the case that the next method has bee called
and if any bytes are written to the delivery using the streaming based API
<a href="OutgoingDelivery.html#streamBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)"><code>OutgoingDelivery.streamBytes(ProtonBuffer)</code></a> which allows for later writing of additional
bytes to the delivery. Once the method <a href="OutgoingDelivery.html#writeBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)"><code>OutgoingDelivery.writeBytes(ProtonBuffer)</code></a> is
called the final <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> is written indicating that the delivery is complete and the
current delivery value is reset. An outgoing delivery that is being streamed may also
be completed by calling the <a href="OutgoingDelivery.html#abort()"><code>OutgoingDelivery.abort()</code></a> method.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the current active outgoing delivery or null if there is no current delivery.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="next()">
<h3>next</h3>
<div class="member-signature"><span class="return-type"><a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a></span>&nbsp;<span class="element-name">next</span>()</div>
<div class="block">When there has been no deliveries so far or the current delivery has reached a complete state this
method updates the current delivery to a new instance and returns that value. If the current
<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>OutgoingDelivery</code></a> has not been completed by either calling the
<a href="OutgoingDelivery.html#writeBytes(org.apache.qpid.protonj2.buffer.ProtonBuffer)"><code>OutgoingDelivery.writeBytes(ProtonBuffer)</code></a> or the <a href="OutgoingDelivery.html#abort()"><code>OutgoingDelivery.abort()</code></a> method then
this method will throw an exception to indicate the sender state cannot allow a new delivery to be started.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a new delivery instance unless the current delivery is not complete.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the current delivery has not been marked complete.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="disposition(java.util.function.Predicate,org.apache.qpid.protonj2.types.transport.DeliveryState,boolean)">
<h3>disposition</h3>
<div class="member-signature"><span class="return-type"><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></span>&nbsp;<span class="element-name">disposition</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;&nbsp;filter,
<a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>&nbsp;state,
boolean&nbsp;settle)</span></div>
<div class="block">For each unsettled outgoing delivery that is pending in the <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> apply the given predicate
and if it matches then apply the given delivery state and settled value to it.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>filter</code> - The predicate to apply to each unsettled delivery to test for a match.</dd>
<dd><code>state</code> - The new <a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>DeliveryState</code></a> to apply to any matching outgoing deliveries.</dd>
<dd><code>settle</code> - Boolean indicating if the matching unsettled deliveries should be settled.</dd>
<dt>Returns:</dt>
<dd>this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="settle(java.util.function.Predicate)">
<h3>settle</h3>
<div class="member-signature"><span class="return-type"><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></span>&nbsp;<span class="element-name">settle</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;&nbsp;filter)</span></div>
<div class="block">For each unsettled outgoing delivery that is pending in the <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> apply the given predicate
and if it matches then settle the delivery.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>filter</code> - The predicate to apply to each unsettled delivery to test for a match.</dd>
<dt>Returns:</dt>
<dd>this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="unsettled()">
<h3>unsettled</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;</span>&nbsp;<span class="element-name">unsettled</span>()</div>
<div class="block">Retrieves the list of unsettled deliveries sent from this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a>. The deliveries in the <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link"><code>Collection</code></a>
cannot be written to but can have their settled state and disposition updated. Only when this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a>
settles on its end are the <a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>OutgoingDelivery</code></a> instances removed from the unsettled <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link"><code>Collection</code></a>.
The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link"><code>Collection</code></a> returned from this method is a copy of the internally maintained data and is
not modifiable. The caller should use this method judiciously to avoid excess GC overhead.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a collection of unsettled deliveries or an empty collection if no pending deliveries are outstanding.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hasUnsettled()">
<h3>hasUnsettled</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">hasUnsettled</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if there are unsettled deliveries for this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> link.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDeliveryTagGenerator(org.apache.qpid.protonj2.engine.DeliveryTagGenerator)">
<h3>setDeliveryTagGenerator</h3>
<div class="member-signature"><span class="return-type"><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></span>&nbsp;<span class="element-name">setDeliveryTagGenerator</span><wbr><span class="parameters">(<a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine">DeliveryTagGenerator</a>&nbsp;generator)</span></div>
<div class="block">Configures a <a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine"><code>DeliveryTagGenerator</code></a> that will be used to create and set a <a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types"><code>DeliveryTag</code></a>
value on each new <a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>OutgoingDelivery</code></a> that is created and returned from the <a href="#next()"><code>next()</code></a>
method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>generator</code> - The <a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine"><code>DeliveryTagGenerator</code></a> to use to create automatic <a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types"><code>DeliveryTag</code></a> values.</dd>
<dt>Returns:</dt>
<dd>this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDeliveryTagGenerator()">
<h3>getDeliveryTagGenerator</h3>
<div class="member-signature"><span class="return-type"><a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine">DeliveryTagGenerator</a></span>&nbsp;<span class="element-name">getDeliveryTagGenerator</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the currently configured <a href="DeliveryTagGenerator.html" title="interface in org.apache.qpid.protonj2.engine"><code>DeliveryTagGenerator</code></a> for this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deliveryStateUpdatedHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<h3>deliveryStateUpdatedHandler</h3>
<div class="member-signature"><span class="return-type"><a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine">Sender</a></span>&nbsp;<span class="element-name">deliveryStateUpdatedHandler</span><wbr><span class="parameters">(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="OutgoingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">OutgoingDelivery</a>&gt;&nbsp;handler)</span></div>
<div class="block">Handler for updates for deliveries that have previously been sent.
Updates can happen when the remote settles or otherwise modifies the delivery and the
user needs to act on those changes.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - The handler that will be invoked when a new update delivery arrives on this link.</dd>
<dt>Returns:</dt>
<dd>this <a href="Sender.html" title="interface in org.apache.qpid.protonj2.engine"><code>Sender</code></a> instance.</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>