<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.qpid.protonj2.client (Qpid ProtonJ2 Parent 1.0.0-M2 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="org.apache.qpid.protonj2.client (Qpid ProtonJ2 Parent 1.0.0-M2 API)";
        }
    }
    catch(err) {
    }
//-->
</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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.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>
<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>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.qpid.protonj2.client</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AdvancedMessage.html" title="interface in org.apache.qpid.protonj2.client">AdvancedMessage</a>&lt;E&gt;</th>
<td class="colLast">
<div class="block">Advanced AMQP Message object that provides a thin abstraction to raw AMQP types</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Client.html" title="interface in org.apache.qpid.protonj2.client">Client</a></th>
<td class="colLast">
<div class="block">The Container that hosts AMQP Connections</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Connection.html" title="interface in org.apache.qpid.protonj2.client">Connection</a></th>
<td class="colLast">
<div class="block">Top level <a href="Connection.html" title="interface in org.apache.qpid.protonj2.client"><code>Connection</code></a> object that can be used as a stand alone API for sending
 messages and creating <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> instances for message consumption.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Delivery.html" title="interface in org.apache.qpid.protonj2.client">Delivery</a></th>
<td class="colLast">
<div class="block">Incoming Delivery type that provides access to the message and the delivery
 data along with methods for settling the delivery when processing completes.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DeliveryState.html" title="interface in org.apache.qpid.protonj2.client">DeliveryState</a></th>
<td class="colLast">
<div class="block">Conveys the outcome of a Delivery either incoming or outgoing.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ErrorCondition.html" title="interface in org.apache.qpid.protonj2.client">ErrorCondition</a></th>
<td class="colLast">
<div class="block">Conveys the error value used to inform the user of why an endpoint
 was closed or a delivery rejected.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Message.html" title="interface in org.apache.qpid.protonj2.client">Message</a>&lt;E&gt;</th>
<td class="colLast">
<div class="block">Message object that provides a high level abstraction to raw AMQP types</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Receiver.html" title="interface in org.apache.qpid.protonj2.client">Receiver</a></th>
<td class="colLast">
<div class="block">AMQP Receiver that provides an interface to receive complete Deliveries from a remote
 peer.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Sender.html" title="interface in org.apache.qpid.protonj2.client">Sender</a></th>
<td class="colLast">
<div class="block">AMQP Sender that provides an API for sending complete Message payload data.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Session.html" title="interface in org.apache.qpid.protonj2.client">Session</a></th>
<td class="colLast">
<div class="block">Session object used to create <a href="Sender.html" title="interface in org.apache.qpid.protonj2.client"><code>Sender</code></a> and <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> instances.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Source.html" title="interface in org.apache.qpid.protonj2.client">Source</a></th>
<td class="colLast">
<div class="block">The Source for messages.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StreamDelivery.html" title="interface in org.apache.qpid.protonj2.client">StreamDelivery</a></th>
<td class="colLast">
<div class="block">A specialized <a href="Delivery.html" title="interface in org.apache.qpid.protonj2.client"><code>Delivery</code></a> type that is returned from the <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a>
 which can be used to read incoming large messages that are streamed via multiple incoming
 AMQP <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frames.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiver</a></th>
<td class="colLast">
<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>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StreamReceiverMessage.html" title="interface in org.apache.qpid.protonj2.client">StreamReceiverMessage</a></th>
<td class="colLast">
<div class="block">A specialized <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a> type that represents a streamed delivery possibly
 spanning many incoming <a href="../types/transport/Transfer.html" title="class in org.apache.qpid.protonj2.types.transport"><code>Transfer</code></a> frames from the remote peer.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StreamSender.html" title="interface in org.apache.qpid.protonj2.client">StreamSender</a></th>
<td class="colLast">
<div class="block">Sending link implementation that allows sending of large message payload data in
 multiple transfers to reduce memory overhead of large message sends.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StreamSenderMessage.html" title="interface in org.apache.qpid.protonj2.client">StreamSenderMessage</a></th>
<td class="colLast">
<div class="block">Streaming Message Tracker object used to operate on and track the state of a streamed message
 at the remote.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StreamTracker.html" title="interface in org.apache.qpid.protonj2.client">StreamTracker</a></th>
<td class="colLast">
<div class="block">Special StreamSender related <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> that is linked to any <a href="StreamSenderMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamSenderMessage</code></a>
 instance and provides the <a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client"><code>Tracker</code></a> functions for those types of messages.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Target.html" title="interface in org.apache.qpid.protonj2.client">Target</a></th>
<td class="colLast">
<div class="block">The Target of messages.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Tracker.html" title="interface in org.apache.qpid.protonj2.client">Tracker</a></th>
<td class="colLast">
<div class="block">Tracker object used to track the state of a sent <a href="Message.html" title="interface in org.apache.qpid.protonj2.client"><code>Message</code></a> at the remote
 and allows for local settlement and disposition management.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ClientOptions.html" title="class in org.apache.qpid.protonj2.client">ClientOptions</a></th>
<td class="colLast">
<div class="block">Container Options for customizing the behavior of the Container</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ConnectionEvent.html" title="class in org.apache.qpid.protonj2.client">ConnectionEvent</a></th>
<td class="colLast">
<div class="block">An event object that accompanies events fired to handlers configured in the
 <a href="ConnectionOptions.html" title="class in org.apache.qpid.protonj2.client"><code>ConnectionOptions</code></a> which are signaled during specific <a href="Connection.html" title="interface in org.apache.qpid.protonj2.client"><code>Connection</code></a>
 event points.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ConnectionOptions.html" title="class in org.apache.qpid.protonj2.client">ConnectionOptions</a></th>
<td class="colLast">
<div class="block">Options that control the behaviour of the <a href="Connection.html" title="interface in org.apache.qpid.protonj2.client"><code>Connection</code></a> created from them.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DisconnectionEvent.html" title="class in org.apache.qpid.protonj2.client">DisconnectionEvent</a></th>
<td class="colLast">
<div class="block">An event object that accompanies events fired to handlers configured in the
 <a href="ConnectionOptions.html" title="class in org.apache.qpid.protonj2.client"><code>ConnectionOptions</code></a> which are signaled during specific <a href="Connection.html" title="interface in org.apache.qpid.protonj2.client"><code>Connection</code></a>
 life-cycle stages.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="OutputStreamOptions.html" title="class in org.apache.qpid.protonj2.client">OutputStreamOptions</a></th>
<td class="colLast">
<div class="block">Options class that controls various aspects of a <code>OutputStream</code> instance created to write
 the contents of a section of a <a href="StreamSenderMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamSenderMessage</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ReceiverOptions.html" title="class in org.apache.qpid.protonj2.client">ReceiverOptions</a></th>
<td class="colLast">
<div class="block">Options that control the behavior of the <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> created from them.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ReconnectLocation.html" title="class in org.apache.qpid.protonj2.client">ReconnectLocation</a></th>
<td class="colLast">
<div class="block">Represents a reconnection host used to track location and configuration
 for individual remote hosts that can be used to re-establish a connection
 on loss of connectivity.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ReconnectOptions.html" title="class in org.apache.qpid.protonj2.client">ReconnectOptions</a></th>
<td class="colLast">
<div class="block">Options that control the reconnection behavior of a client <a href="Connection.html" title="interface in org.apache.qpid.protonj2.client"><code>Connection</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SaslOptions.html" title="class in org.apache.qpid.protonj2.client">SaslOptions</a></th>
<td class="colLast">
<div class="block">Connection options that are applied to the SASL layer.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SenderOptions.html" title="class in org.apache.qpid.protonj2.client">SenderOptions</a></th>
<td class="colLast">
<div class="block">Options that control the behavior of a <a href="Sender.html" title="interface in org.apache.qpid.protonj2.client"><code>Sender</code></a> created from them.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SessionOptions.html" title="class in org.apache.qpid.protonj2.client">SessionOptions</a></th>
<td class="colLast">
<div class="block">Options that control the behavior of the <a href="Session.html" title="interface in org.apache.qpid.protonj2.client"><code>Session</code></a> created from them.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SourceOptions.html" title="class in org.apache.qpid.protonj2.client">SourceOptions</a></th>
<td class="colLast">
<div class="block">Options type that carries configuration for link Source types.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SslOptions.html" title="class in org.apache.qpid.protonj2.client">SslOptions</a></th>
<td class="colLast">
<div class="block">Options for configuration of the client SSL layer</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StreamReceiverOptions.html" title="class in org.apache.qpid.protonj2.client">StreamReceiverOptions</a></th>
<td class="colLast">
<div class="block">Options class that controls various aspects of a <a href="StreamReceiver.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamReceiver</code></a> instance and how
 a streamed message transfer is written.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StreamSenderOptions.html" title="class in org.apache.qpid.protonj2.client">StreamSenderOptions</a></th>
<td class="colLast">
<div class="block">Options class that controls various aspects of a <a href="StreamSenderMessage.html" title="interface in org.apache.qpid.protonj2.client"><code>StreamSenderMessage</code></a> instance and how
 a streamed message transfer is written.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="TargetOptions.html" title="class in org.apache.qpid.protonj2.client">TargetOptions</a></th>
<td class="colLast">
<div class="block">Options type that carries configuration for link Target types.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="TerminusOptions.html" title="class in org.apache.qpid.protonj2.client">TerminusOptions</a>&lt;E extends <a href="TerminusOptions.html" title="class in org.apache.qpid.protonj2.client">TerminusOptions</a>&lt;E&gt;&gt;</th>
<td class="colLast">
<div class="block">Base options type for configuration of <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> and <a href="../types/messaging/Target.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Target</code></a> types
 used by <a href="Sender.html" title="interface in org.apache.qpid.protonj2.client"><code>Sender</code></a> and <a href="Receiver.html" title="interface in org.apache.qpid.protonj2.client"><code>Receiver</code></a> end points.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="TransportOptions.html" title="class in org.apache.qpid.protonj2.client">TransportOptions</a></th>
<td class="colLast">
<div class="block">Encapsulates all the Transport options in one configuration object.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DeliveryMode.html" title="enum in org.apache.qpid.protonj2.client">DeliveryMode</a></th>
<td class="colLast">
<div class="block">Control the message delivery guarantee for senders and receivers</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DeliveryState.Type.html" title="enum in org.apache.qpid.protonj2.client">DeliveryState.Type</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DistributionMode.html" title="enum in org.apache.qpid.protonj2.client">DistributionMode</a></th>
<td class="colLast">
<div class="block">Control whether messages are browsed or consumed.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DurabilityMode.html" title="enum in org.apache.qpid.protonj2.client">DurabilityMode</a></th>
<td class="colLast">
<div class="block">Control the persistence of source or target state.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ExpiryPolicy.html" title="enum in org.apache.qpid.protonj2.client">ExpiryPolicy</a></th>
<td class="colLast">
<div class="block">Control when the clock for expiration begins.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.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>
<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>
