blob: b8b8ce041bf5e8417f6c402e326f544831e26e9f [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Receiver (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: Receiver">
<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/Receiver.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 Receiver" class="title">Interface Receiver</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a>&gt;</code>, <code><a href="Link.html" title="interface in org.apache.qpid.protonj2.engine">Link</a>&lt;<a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonReceiver.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonReceiver</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Receiver</span><span class="extends-implements">
extends <a href="Link.html" title="interface in org.apache.qpid.protonj2.engine">Link</a>&lt;<a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a>&gt;</span></div>
<div class="block">AMQP Receiver 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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addCredit(int)" class="member-name-link">addCredit</a><wbr>(int&nbsp;additionalCredit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds the given amount of credit for the <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deliveryAbortedHandler(org.apache.qpid.protonj2.engine.EventHandler)" class="member-name-link">deliveryAbortedHandler</a><wbr>(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</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 aborted deliveries that is called for each aborted in-progress delivery.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deliveryReadHandler(org.apache.qpid.protonj2.engine.EventHandler)" class="member-name-link">deliveryReadHandler</a><wbr>(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;&nbsp;handler)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Handler for incoming deliveries that is called for each incoming <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frame that comprises
either one complete delivery or a chunk of a split framed <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</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 to the remote state of incoming deliveries that have previously been received.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</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>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#drain()" class="member-name-link">drain</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Initiate a drain of all remaining credit of this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link.</div>
</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="#drain(int)" class="member-name-link">drain</a><wbr>(int&nbsp;credit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Initiate a drain of the given credit from this this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getDefaultDeliveryState()" class="member-name-link">getDefaultDeliveryState</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="#hasUnsettled()" class="member-name-link">hasUnsettled</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><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setDefaultDeliveryState(org.apache.qpid.protonj2.types.transport.DeliveryState)" class="member-name-link">setDefaultDeliveryState</a><wbr>(<a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>&nbsp;state)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Configures a default DeliveryState to be used if a received delivery is settled/freed
without any disposition state having been previously applied.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></code></div>
<div class="col-second even-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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;&nbsp;filter)</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> apply the given predicate
and if it matches then settle the delivery.</div>
</div>
<div class="col-first odd-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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;</code></div>
<div class="col-second odd-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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieves the list of unsettled deliveries for this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link which have yet to be settled
on this end of the link.</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="addCredit(int)">
<h3>addCredit</h3>
<div class="member-signature"><span class="return-type"><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></span>&nbsp;<span class="element-name">addCredit</span><wbr><span class="parameters">(int&nbsp;additionalCredit)</span></div>
<div class="block">Adds the given amount of credit for the <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>additionalCredit</code> - the new amount of credits to add.</dd>
<dt>Returns:</dt>
<dd>this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a></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 credit amount is negative.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="drain()">
<h3>drain</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">drain</span>()</div>
<div class="block">Initiate a drain of all remaining credit of this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if a drain was started or false if the link already had no credit to drain.</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 an existing drain attempt is incomplete.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="drain(int)">
<h3>drain</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">drain</span><wbr><span class="parameters">(int&nbsp;credit)</span></div>
<div class="block">Initiate a drain of the given credit from this this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link. If the credit
given is greater than the current link credit the current credit is increased, however if
the amount of credit given is less that the current amount of link credit an exception is
thrown.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>credit</code> - The amount of credit that should be requested to be drained from this link.</dd>
<dt>Returns:</dt>
<dd>true if a drain was started or false if the value is zero and the link had no credit.</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 an existing drain attempt is incomplete.</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 credit value given is less than the current value.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDefaultDeliveryState(org.apache.qpid.protonj2.types.transport.DeliveryState)">
<h3>setDefaultDeliveryState</h3>
<div class="member-signature"><span class="return-type"><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></span>&nbsp;<span class="element-name">setDefaultDeliveryState</span><wbr><span class="parameters">(<a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a>&nbsp;state)</span></div>
<div class="block">Configures a default DeliveryState to be used if a received delivery is settled/freed
without any disposition state having been previously applied.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>state</code> - the default delivery state</dd>
<dt>Returns:</dt>
<dd>this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> for chaining.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDefaultDeliveryState()">
<h3>getDefaultDeliveryState</h3>
<div class="member-signature"><span class="return-type"><a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport">DeliveryState</a></span>&nbsp;<span class="element-name">getDefaultDeliveryState</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the default delivery state for this delivery</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> for chaining</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;&nbsp;filter)</span></div>
<div class="block">For each unsettled outgoing delivery that is pending in the <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> for chaining</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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;</span>&nbsp;<span class="element-name">unsettled</span>()</div>
<div class="block">Retrieves the list of unsettled deliveries for this <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link which have yet to be settled
on this end of the link. When the <a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>IncomingDelivery</code></a> is settled by the receiver the value will
be removed from the collection.
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 list 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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> link.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deliveryReadHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<h3>deliveryReadHandler</h3>
<div class="member-signature"><span class="return-type"><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></span>&nbsp;<span class="element-name">deliveryReadHandler</span><wbr><span class="parameters">(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;&nbsp;handler)</span></div>
<div class="block">Handler for incoming deliveries that is called for each incoming <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frame that comprises
either one complete delivery or a chunk of a split framed <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a>. The handler should check
that the delivery being read is partial or not and act accordingly, as partial deliveries expect additional
updates as more frames comprising that <a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>IncomingDelivery</code></a> arrive or the remote aborts the transfer.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - The handler that will be invoked when <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frames arrive on this receiver link.</dd>
<dt>Returns:</dt>
<dd>this receiver</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deliveryAbortedHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<h3>deliveryAbortedHandler</h3>
<div class="member-signature"><span class="return-type"><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a></span>&nbsp;<span class="element-name">deliveryAbortedHandler</span><wbr><span class="parameters">(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;&nbsp;handler)</span></div>
<div class="block">Handler for aborted deliveries that is called for each aborted in-progress delivery.
<p>
This handler is an optional convenience handler that supplements the standard
<a href="#deliveryReadHandler(org.apache.qpid.protonj2.engine.EventHandler)"><code>deliveryReadHandler(EventHandler)</code></a> in cases where the users wishes to break out the
processing of inbound delivery data from abort processing. If this handler is not set the
<a href="Receiver.html" title="interface in org.apache.qpid.protonj2.engine"><code>Receiver</code></a> will call the registered <a href="#deliveryAbortedHandler(org.apache.qpid.protonj2.engine.EventHandler)"><code>deliveryAbortedHandler(EventHandler)</code></a>
if one is set.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - The handler that will be invoked when <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frames arrive on this receiver link.</dd>
<dt>Returns:</dt>
<dd>this receiver</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="Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</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="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&gt;&nbsp;handler)</span></div>
<div class="block">Handler for updates to the remote state of incoming deliveries that have previously been received.
<p>
Remote state updates for an <a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>IncomingDelivery</code></a> can happen when the remote settles a complete
<a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>IncomingDelivery</code></a> or otherwise modifies the delivery outcome and the user needs to act on those
changes such as a spontaneous update to the <a href="../types/transport/DeliveryState.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>DeliveryState</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - The handler that will be invoked when a new remote state update for an <a href="IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine"><code>IncomingDelivery</code></a> arrives on this link.</dd>
<dt>Returns:</dt>
<dd>this receiver</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>