<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Sender (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, interface: Sender">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/Sender.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.client</a></div>
<h1 title="Interface Sender" class="title">Interface Sender</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="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="Sender.html" title="interface in org.apache.qpid.protonj2.client">Sender</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ClientSender.html" title="class in org.apache.qpid.protonj2.client.impl">ClientSender</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Sender</span><span class="extends-implements">
extends <a href="Link.html" title="interface in org.apache.qpid.protonj2.client">Link</a>&lt;<a href="Sender.html" title="interface in org.apache.qpid.protonj2.client">Sender</a>&gt;</span></div>
<div class="block">AMQP Sender that provides an API for sending complete Message payload data.</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="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#send(org.apache.qpid.protonj2.client.Message)" class="member-name-link">send</a><wbr>(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Send the given message immediately if there is credit available or blocks if the link
 has not yet been granted credit.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#send(org.apache.qpid.protonj2.client.Message,java.util.Map)" class="member-name-link">send</a><wbr>(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message,
 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><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>&gt;&nbsp;deliveryAnnotations)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Send the given message immediately if there is credit available or blocks if the link
 has not yet been granted credit.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#trySend(org.apache.qpid.protonj2.client.Message)" class="member-name-link">trySend</a><wbr>(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Send the given message if credit is available or returns null if no credit has been
 granted to the link at the time of the send attempt.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#trySend(org.apache.qpid.protonj2.client.Message,java.util.Map)" class="member-name-link">trySend</a><wbr>(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message,
 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><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>&gt;&nbsp;deliveryAnnotations)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Send the given message if credit is available or returns null if no credit has been
 granted to the link at the time of the send attempt.</div>
</div>
</div>
</div>
</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="send(org.apache.qpid.protonj2.client.Message)">
<h3>send</h3>
<div class="member-signature"><span class="return-type"><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></span>&nbsp;<span class="element-name">send</span><wbr><span class="parameters">(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message)</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">Send the given message immediately if there is credit available or blocks if the link
 has not yet been granted credit.
 <p>
 Upon successfully sending the message the methods returns a <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> that can
 be used to await settlement of the message from the remote.  If the sender has been
 configured to send the message pre-settled then the resulting Tracker will immediately
 report the message as remotely settlement and accepted.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>message</code> - the <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a> to send.</dd>
<dt>Returns:</dt>
<dd>the <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> for the message delivery</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 initiating the send operation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="send(org.apache.qpid.protonj2.client.Message,java.util.Map)">
<h3>send</h3>
<div class="member-signature"><span class="return-type"><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></span>&nbsp;<span class="element-name">send</span><wbr><span class="parameters">(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message,
 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><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>&gt;&nbsp;deliveryAnnotations)</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">Send the given message immediately if there is credit available or blocks if the link
 has not yet been granted credit. The provided delivery annotations are encoded along
 with the message, the annotations can be passed repeatedly to send calls if sending
 the same delivery annotations with each message.
 <p>
 Upon successfully sending the message the methods returns a <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> that can
 be used to await settlement of the message from the remote.  If the sender has been
 configured to send the message pre-settled then the resulting Tracker will immediately
 report the message as remotely settlement and accepted.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>message</code> - the <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a> to send.</dd>
<dd><code>deliveryAnnotations</code> - the delivery annotations that should be included in the sent <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a>.</dd>
<dt>Returns:</dt>
<dd>the <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> for the message delivery</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 initiating the send operation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="trySend(org.apache.qpid.protonj2.client.Message)">
<h3>trySend</h3>
<div class="member-signature"><span class="return-type"><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></span>&nbsp;<span class="element-name">trySend</span><wbr><span class="parameters">(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message)</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">Send the given message if credit is available or returns null if no credit has been
 granted to the link at the time of the send attempt.
 <p>
 Upon successfully sending the message the methods returns a <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> that can
 be used to await settlement of the message from the remote.  If the sender has been
 configured to send the message pre-settled then the resulting Tracker will immediately
 report the message as remotely settlement and accepted.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>message</code> - the <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a> to send if credit is available.</dd>
<dt>Returns:</dt>
<dd>the <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> for the message delivery or null if no credit for sending.</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 initiating the send operation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="trySend(org.apache.qpid.protonj2.client.Message,java.util.Map)">
<h3>trySend</h3>
<div class="member-signature"><span class="return-type"><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></span>&nbsp;<span class="element-name">trySend</span><wbr><span class="parameters">(<a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;?&gt;&nbsp;message,
 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><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>&gt;&nbsp;deliveryAnnotations)</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">Send the given message if credit is available or returns null if no credit has been
 granted to the link at the time of the send attempt. The provided delivery annotations
 are encoded along with the message, the annotations can be passed repeatedly to send
 calls if sending the same delivery annotations with each message.
 <p>
 Upon successfully sending the message the methods returns a <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> that can
 be used to await settlement of the message from the remote.  If the sender has been
 configured to send the message pre-settled then the resulting Tracker will immediately
 report the message as remotely settlement and accepted.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>message</code> - the <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a> to send if credit is available.</dd>
<dd><code>deliveryAnnotations</code> - the delivery annotations that should be included in the sent <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a>.</dd>
<dt>Returns:</dt>
<dd>the <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> for the message delivery or null if no credit for sending.</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 initiating the send operation.</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>
