blob: 7a7cda8b2c8dd1ef8ce32c508f5be7939d589880 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ClientReceiver (Qpid ProtonJ2 Parent 1.0.0-M19 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.client.impl, class: ClientReceiver">
<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/ClientReceiver.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><a href="#field-summary">Field</a>&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.client.impl</a></div>
<h1 title="Class ClientReceiver" class="title">Class ClientReceiver</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="ClientLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">org.apache.qpid.protonj2.client.impl.ClientLinkType</a>&lt;ReceiverType,<wbr><a href="../../engine/Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a>&gt;
<div class="inheritance"><a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">org.apache.qpid.protonj2.client.impl.ClientReceiverLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;
<div class="inheritance">org.apache.qpid.protonj2.client.impl.ClientReceiver</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</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="../Link.html" title="interface in org.apache.qpid.protonj2.client">Link</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;</code>, <code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">ClientReceiver</span>
<span class="extends-implements">extends <a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientReceiverLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;
implements <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></span></div>
<div class="block">Client <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> implementation.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.qpid.protonj2.client.impl.ClientReceiverLinkType">Fields inherited from class&nbsp;org.apache.qpid.protonj2.client.impl.<a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientReceiverLinkType</a></h3>
<code><a href="ClientReceiverLinkType.html#drainingFuture">drainingFuture</a>, <a href="ClientReceiverLinkType.html#drainingTimeout">drainingTimeout</a>, <a href="ClientReceiverLinkType.html#protonReceiver">protonReceiver</a></code></div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.qpid.protonj2.client.impl.ClientLinkType">Fields inherited from class&nbsp;org.apache.qpid.protonj2.client.impl.<a href="ClientLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientLinkType</a></h3>
<code><a href="ClientLinkType.html#closed">closed</a>, <a href="ClientLinkType.html#CLOSED_UPDATER">CLOSED_UPDATER</a>, <a href="ClientLinkType.html#closeFuture">closeFuture</a>, <a href="ClientLinkType.html#executor">executor</a>, <a href="ClientLinkType.html#failureCause">failureCause</a>, <a href="ClientLinkType.html#linkId">linkId</a>, <a href="ClientLinkType.html#linkRemotelyClosedHandler">linkRemotelyClosedHandler</a>, <a href="ClientLinkType.html#openFuture">openFuture</a>, <a href="ClientLinkType.html#remoteSource">remoteSource</a>, <a href="ClientLinkType.html#remoteTarget">remoteTarget</a>, <a href="ClientLinkType.html#session">session</a></code></div>
</section>
</li>
<!-- ========== 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-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete 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-tab4"><code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addCredit(int)" class="member-name-link">addCredit</a><wbr>(int&nbsp;credits)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds credit to the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link for use when there receiver has not been configured
with a credit window.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><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-tab4">
<div class="block">Requests the remote to drain previously granted credit for this <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#handleDeliveryRead(org.apache.qpid.protonj2.engine.IncomingDelivery)" class="member-name-link">handleDeliveryRead</a><wbr>(<a href="../../engine/IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&nbsp;delivery)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#linkSpecificLocalCloseHandler()" class="member-name-link">linkSpecificLocalCloseHandler</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#queuedDeliveries()" class="member-name-link">queuedDeliveries</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the number of Deliveries that are currently held in the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> delivery
queue.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#receive()" class="member-name-link">receive</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Blocking receive method that waits forever for the remote to provide a <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> for consumption.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#receive(long,java.util.concurrent.TimeUnit)" class="member-name-link">receive</a><wbr>(long&nbsp;timeout,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/TimeUnit.html" title="class or interface in java.util.concurrent" class="external-link">TimeUnit</a>&nbsp;units)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Blocking receive method that waits the given time interval for the remote to provide a
<a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> for consumption.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#recreateLinkForReconnect()" class="member-name-link">recreateLinkForReconnect</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#replenishCreditIfNeeded()" class="member-name-link">replenishCreditIfNeeded</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#self()" class="member-name-link">self</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#tryReceive()" class="member-name-link">tryReceive</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Non-blocking receive method that either returns a message is one is immediately available or
returns null if none is currently at hand.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.client.impl.ClientReceiverLinkType">Methods inherited from class&nbsp;org.apache.qpid.protonj2.client.impl.<a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientReceiverLinkType</a></h3>
<code><a href="ClientReceiverLinkType.html#handleDeliveryAborted(org.apache.qpid.protonj2.engine.IncomingDelivery)">handleDeliveryAborted</a>, <a href="ClientReceiverLinkType.html#handleDeliveryStateRemotelyUpdated(org.apache.qpid.protonj2.engine.IncomingDelivery)">handleDeliveryStateRemotelyUpdated</a>, <a href="ClientReceiverLinkType.html#handleReceiverCreditUpdated(org.apache.qpid.protonj2.engine.Receiver)">handleReceiverCreditUpdated</a>, <a href="ClientReceiverLinkType.html#linkSpecificCleanupHandler(org.apache.qpid.protonj2.client.exceptions.ClientException)">linkSpecificCleanupHandler</a>, <a href="ClientReceiverLinkType.html#linkSpecificLocalOpenHandler()">linkSpecificLocalOpenHandler</a>, <a href="ClientReceiverLinkType.html#linkSpecificRemoteCloseHandler()">linkSpecificRemoteCloseHandler</a>, <a href="ClientReceiverLinkType.html#linkSpecificRemoteOpenHandler()">linkSpecificRemoteOpenHandler</a>, <a href="ClientReceiverLinkType.html#protonLink()">protonLink</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.client.impl.ClientLinkType">Methods inherited from class&nbsp;org.apache.qpid.protonj2.client.impl.<a href="ClientLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientLinkType</a></h3>
<code><a href="ClientLinkType.html#address()">address</a>, <a href="ClientLinkType.html#checkClosedOrFailed()">checkClosedOrFailed</a>, <a href="ClientLinkType.html#client()">client</a>, <a href="ClientLinkType.html#close()">close</a>, <a href="ClientLinkType.html#close(org.apache.qpid.protonj2.client.ErrorCondition)">close</a>, <a href="ClientLinkType.html#closeAsync()">closeAsync</a>, <a href="ClientLinkType.html#closeAsync(org.apache.qpid.protonj2.client.ErrorCondition)">closeAsync</a>, <a href="ClientLinkType.html#connection()">connection</a>, <a href="ClientLinkType.html#desiredCapabilities()">desiredCapabilities</a>, <a href="ClientLinkType.html#detach()">detach</a>, <a href="ClientLinkType.html#detach(org.apache.qpid.protonj2.client.ErrorCondition)">detach</a>, <a href="ClientLinkType.html#detachAsync()">detachAsync</a>, <a href="ClientLinkType.html#detachAsync(org.apache.qpid.protonj2.client.ErrorCondition)">detachAsync</a>, <a href="ClientLinkType.html#handleEngineShutdown(org.apache.qpid.protonj2.engine.Engine)">handleEngineShutdown</a>, <a href="ClientLinkType.html#handleLocalCloseOrDetach(ProtonType)">handleLocalCloseOrDetach</a>, <a href="ClientLinkType.html#handleLocalOpen(ProtonType)">handleLocalOpen</a>, <a href="ClientLinkType.html#handleParentEndpointClosed(ProtonType)">handleParentEndpointClosed</a>, <a href="ClientLinkType.html#handleRemoteCloseOrDetach(ProtonType)">handleRemoteCloseOrDetach</a>, <a href="ClientLinkType.html#handleRemoteOpen(ProtonType)">handleRemoteOpen</a>, <a href="ClientLinkType.html#immediateLinkShutdown(org.apache.qpid.protonj2.client.exceptions.ClientException)">immediateLinkShutdown</a>, <a href="ClientLinkType.html#notClosedOrFailed(org.apache.qpid.protonj2.client.futures.ClientFuture)">notClosedOrFailed</a>, <a href="ClientLinkType.html#notClosedOrFailed(org.apache.qpid.protonj2.client.futures.ClientFuture,ProtonType)">notClosedOrFailed</a>, <a href="ClientLinkType.html#offeredCapabilities()">offeredCapabilities</a>, <a href="ClientLinkType.html#openFuture()">openFuture</a>, <a href="ClientLinkType.html#properties()">properties</a>, <a href="ClientLinkType.html#session()">session</a>, <a href="ClientLinkType.html#source()">source</a>, <a href="ClientLinkType.html#target()">target</a>, <a href="ClientLinkType.html#waitForOpenToComplete()">waitForOpenToComplete</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.client.Link">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.client.<a href="../Link.html" title="interface in org.apache.qpid.protonj2.client">Link</a></h3>
<code><a href="../Link.html#address()">address</a>, <a href="../Link.html#client()">client</a>, <a href="../Link.html#close()">close</a>, <a href="../Link.html#close(org.apache.qpid.protonj2.client.ErrorCondition)">close</a>, <a href="../Link.html#closeAsync()">closeAsync</a>, <a href="../Link.html#closeAsync(org.apache.qpid.protonj2.client.ErrorCondition)">closeAsync</a>, <a href="../Link.html#connection()">connection</a>, <a href="../Link.html#desiredCapabilities()">desiredCapabilities</a>, <a href="../Link.html#detach()">detach</a>, <a href="../Link.html#detach(org.apache.qpid.protonj2.client.ErrorCondition)">detach</a>, <a href="../Link.html#detachAsync()">detachAsync</a>, <a href="../Link.html#detachAsync(org.apache.qpid.protonj2.client.ErrorCondition)">detachAsync</a>, <a href="../Link.html#offeredCapabilities()">offeredCapabilities</a>, <a href="../Link.html#openFuture()">openFuture</a>, <a href="../Link.html#properties()">properties</a>, <a href="../Link.html#session()">session</a>, <a href="../Link.html#source()">source</a>, <a href="../Link.html#target()">target</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="receive()">
<h3>receive</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></span>&nbsp;<span class="element-name">receive</span>()
throws <span class="exceptions"><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../Receiver.html#receive()">Receiver</a></code></span></div>
<div class="block">Blocking receive method that waits forever for the remote to provide a <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> for consumption.
<p>
Receive calls will only grant credit on their own if a credit window is configured in the
<a href="../ReceiverOptions.html" title="class in org.apache.qpid.protonj2.client"><code>ReceiverOptions</code></a> which is done by default. If the client application has configured
no credit window than this method will not grant any credit when it enters the wait for new
incoming messages.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../Receiver.html#receive()">receive</a></code>&nbsp;in interface&nbsp;<code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
<dt>Returns:</dt>
<dd>a new <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> received from the remote.</dd>
<dt>Throws:</dt>
<dd><code><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> or its parent is closed when the call to receive is made.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="receive(long,java.util.concurrent.TimeUnit)">
<h3>receive</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></span>&nbsp;<span class="element-name">receive</span><wbr><span class="parameters">(long&nbsp;timeout,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/TimeUnit.html" title="class or interface in java.util.concurrent" class="external-link">TimeUnit</a>&nbsp;units)</span>
throws <span class="exceptions"><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../Receiver.html#receive(long,java.util.concurrent.TimeUnit)">Receiver</a></code></span></div>
<div class="block">Blocking receive method that waits the given time interval for the remote to provide a
<a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> for consumption. The amount of time this method blocks is based on the
timeout value. If the timeout is less than zero then it blocks until a Delivery is received.
If the timeout is equal to zero then it will not block and simply return a <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a>
if one is available locally. If the timeout value is greater than zero then it blocks up to
timeout amount of time.
<p>
Receive calls will only grant credit on their own if a credit window is configured in the
<a href="../ReceiverOptions.html" title="class in org.apache.qpid.protonj2.client"><code>ReceiverOptions</code></a> which is done by default. If the client application has not configured
a credit window or granted credit manually this method will not automatically grant any credit
when it enters the wait for a new incoming <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../Receiver.html#receive(long,java.util.concurrent.TimeUnit)">receive</a></code>&nbsp;in interface&nbsp;<code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
<dt>Parameters:</dt>
<dd><code>timeout</code> - The timeout value used to control how long the receive method waits for a new <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a>.</dd>
<dd><code>units</code> - The unit of time that the given timeout represents.</dd>
<dt>Returns:</dt>
<dd>a new <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> received from the remote.</dd>
<dt>Throws:</dt>
<dd><code><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> or its parent is closed when the call to receive is made.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="tryReceive()">
<h3>tryReceive</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></span>&nbsp;<span class="element-name">tryReceive</span>()
throws <span class="exceptions"><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../Receiver.html#tryReceive()">Receiver</a></code></span></div>
<div class="block">Non-blocking receive method that either returns a message is one is immediately available or
returns null if none is currently at hand.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../Receiver.html#tryReceive()">tryReceive</a></code>&nbsp;in interface&nbsp;<code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
<dt>Returns:</dt>
<dd>a new <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> received from the remote or null if no pending deliveries are available.</dd>
<dt>Throws:</dt>
<dd><code><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> or its parent is closed when the call to try to receive is made.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="queuedDeliveries()">
<h3>queuedDeliveries</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">queuedDeliveries</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../Receiver.html#queuedDeliveries()">Receiver</a></code></span></div>
<div class="block">Returns the number of Deliveries that are currently held in the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> delivery
queue. This number is likely to change immediately following the call as more deliveries
arrive but can be used to determine if any pending <a href="../Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> work is ready.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../Receiver.html#queuedDeliveries()">queuedDeliveries</a></code>&nbsp;in interface&nbsp;<code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
<dt>Returns:</dt>
<dd>the number of deliveries that are currently buffered locally.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addCredit(int)">
<h3>addCredit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></span>&nbsp;<span class="element-name">addCredit</span><wbr><span class="parameters">(int&nbsp;credits)</span>
throws <span class="exceptions"><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../Receiver.html#addCredit(int)">Receiver</a></code></span></div>
<div class="block">Adds credit to the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link for use when there receiver has not been configured
with a credit window. When credit window is configured credit replenishment is automatic and
calling this method will result in an exception indicating that the operation is invalid.
<p>
If the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> is draining and this method is called an exception will be thrown
to indicate that credit cannot be replenished until the remote has drained the existing link
credit.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../Receiver.html#addCredit(int)">addCredit</a></code>&nbsp;in interface&nbsp;<code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
<dt>Parameters:</dt>
<dd><code>credits</code> - The number of credits to add to the <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link.</dd>
<dt>Returns:</dt>
<dd>this <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> instance.</dd>
<dt>Throws:</dt>
<dd><code><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if an error occurs while attempting to add new <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link credit.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="drain()">
<h3>drain</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;</span>&nbsp;<span class="element-name">drain</span>()
throws <span class="exceptions"><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="../Receiver.html#drain()">Receiver</a></code></span></div>
<div class="block">Requests the remote to drain previously granted credit for this <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../Receiver.html#drain()">drain</a></code>&nbsp;in interface&nbsp;<code><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></code></dd>
<dt>Returns:</dt>
<dd>a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link"><code>Future</code></a> that will be completed when the remote drains this <a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> link.</dd>
<dt>Throws:</dt>
<dd><code><a href="../exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if an error occurs while attempting to drain the link credit.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="self()">
<h3>self</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></span>&nbsp;<span class="element-name">self</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ClientLinkType.html#self()">self</a></code>&nbsp;in class&nbsp;<code><a href="ClientLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>,<wbr><a href="../../engine/Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="handleDeliveryRead(org.apache.qpid.protonj2.engine.IncomingDelivery)">
<h3>handleDeliveryRead</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleDeliveryRead</span><wbr><span class="parameters">(<a href="../../engine/IncomingDelivery.html" title="interface in org.apache.qpid.protonj2.engine">IncomingDelivery</a>&nbsp;delivery)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ClientReceiverLinkType.html#handleDeliveryRead(org.apache.qpid.protonj2.engine.IncomingDelivery)">handleDeliveryRead</a></code>&nbsp;in class&nbsp;<code><a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientReceiverLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="replenishCreditIfNeeded()">
<h3>replenishCreditIfNeeded</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">replenishCreditIfNeeded</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ClientReceiverLinkType.html#replenishCreditIfNeeded()">replenishCreditIfNeeded</a></code>&nbsp;in class&nbsp;<code><a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientReceiverLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="linkSpecificLocalCloseHandler()">
<h3>linkSpecificLocalCloseHandler</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">linkSpecificLocalCloseHandler</span>()</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="ClientReceiverLinkType.html#linkSpecificLocalCloseHandler()">linkSpecificLocalCloseHandler</a></code>&nbsp;in class&nbsp;<code><a href="ClientReceiverLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientReceiverLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="recreateLinkForReconnect()">
<h3>recreateLinkForReconnect</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">recreateLinkForReconnect</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ClientLinkType.html#recreateLinkForReconnect()">recreateLinkForReconnect</a></code>&nbsp;in class&nbsp;<code><a href="ClientLinkType.html" title="class in org.apache.qpid.protonj2.client.impl">ClientLinkType</a>&lt;<a href="../Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a>,<wbr><a href="../../engine/Receiver.html" title="interface in org.apache.qpid.protonj2.engine">Receiver</a>&gt;</code></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; 2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>