blob: f9081324f97b81fe82cf3acd95ce75ea1ed5e5c9 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>StreamReceiver (Qpid ProtonJ2 Parent 1.0.0-M9 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="StreamReceiver (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/StreamReceiver.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.client</a></div>
<h2 title="Interface StreamReceiver" class="title">Interface StreamReceiver</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code>, <code><a href="Link.html" title="interface in org.apache.qpid.protonj2.client">Link</a>&lt;<a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a>&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ClientStreamReceiver.html" title="class in org.apache.qpid.protonj2.client.impl">ClientStreamReceiver</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">StreamReceiver</span>
extends <a href="Link.html" title="interface in org.apache.qpid.protonj2.client">Link</a>&lt;<a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a>&gt;</pre>
<div class="block">A receiver of large message content that is delivered in multiple <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frames from
the remote.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addCredit(int)">addCredit</a></span>&#8203;(int&nbsp;credits)</code></th>
<td class="colLast">
<div class="block">Adds credit to the <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> link for use when the receiver has not been configured
with a credit window.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#drain()">drain</a></span>()</code></th>
<td class="colLast">
<div class="block">Requests the remote to drain previously granted credit for this <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> link.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queuedDeliveries()">queuedDeliveries</a></span>()</code></th>
<td class="colLast">
<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>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#receive()">receive</a></span>()</code></th>
<td class="colLast">
<div class="block">Blocking receive method that waits forever for the remote to provide a <a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> for consumption.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#receive(long,java.util.concurrent.TimeUnit)">receive</a></span>&#8203;(long&nbsp;timeout,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
<td class="colLast">
<div class="block">Blocking receive method that waits the given time interval for the remote to provide a
<a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> for consumption.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tryReceive()">tryReceive</a></span>()</code></th>
<td class="colLast">
<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>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.qpid.protonj2.client.Link">
<!-- -->
</a>
<h3>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></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="addCredit(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addCredit</h4>
<pre class="methodSignature"><a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a>&nbsp;addCredit&#8203;(int&nbsp;credits)
throws <a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></pre>
<div class="block">Adds credit to the <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> link for use when the 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>
<dt><span class="paramLabel">Parameters:</span></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><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> instance.</dd>
<dt><span class="throwsLabel">Throws:</span></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="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> link credit.</dd>
</dl>
</li>
</ul>
<a id="drain()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>drain</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a>&gt;&nbsp;drain()
throws <a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></pre>
<div class="block">Requests the remote to drain previously granted credit for this <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> link.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>Future</code></a> that will be completed when the remote drains this <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> link.</dd>
<dt><span class="throwsLabel">Throws:</span></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>
</li>
</ul>
<a id="receive()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receive</h4>
<pre class="methodSignature"><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a>&nbsp;receive()
throws <a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></pre>
<div class="block">Blocking receive method that waits forever for the remote to provide a <a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> for consumption.
<p>
Receive calls will only grant credit on their own if a credit window is configured in the
<a href="StreamReceiverOptions.html" title="class in org.apache.qpid.protonj2.client"><code>StreamReceiverOptions</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>
<dt><span class="returnLabel">Returns:</span></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><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if the <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> or its parent is closed when the call to receive is made.</dd>
</dl>
</li>
</ul>
<a id="receive(long,java.util.concurrent.TimeUnit)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receive</h4>
<pre class="methodSignature"><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a>&nbsp;receive&#8203;(long&nbsp;timeout,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)
throws <a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></pre>
<div class="block">Blocking receive method that waits the given time interval for the remote to provide a
<a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> for consumption. The amount of time this method blocks is based on the
timeout value. If timeout is equal to <code>-1</code> then it blocks until a Delivery is
received. If timeout is equal to zero then it will not block and simply return a
<a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> if one is available locally. If 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="StreamReceiverOptions.html" title="class in org.apache.qpid.protonj2.client"><code>StreamReceiverOptions</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="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></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>unit</code> - The unit of time that the given timeout represents.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> received from the remote.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if the <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> or its parent is closed when the call to receive is made.</dd>
</dl>
</li>
</ul>
<a id="tryReceive()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tryReceive</h4>
<pre class="methodSignature"><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a>&nbsp;tryReceive()
throws <a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></pre>
<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>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiverMessage</code></a> received from the remote or null if no pending deliveries are available.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></code> - if the <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> or its parent is closed when the call to try to receive is made.</dd>
</dl>
</li>
</ul>
<a id="queuedDeliveries()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>queuedDeliveries</h4>
<pre class="methodSignature">long&nbsp;queuedDeliveries()
throws <a href="exceptions/ClientException.html" title="class in org.apache.qpid.protonj2.client.exceptions">ClientException</a></pre>
<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>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of deliveries that are currently buffered locally.</dd>
<dt><span class="throwsLabel">Throws:</span></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 fetch the queue count.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/StreamReceiver.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>