blob: 92009613f0d79fc8044b524a189efc3835595f44 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>TransactionManager (Qpid ProtonJ2 Parent 1.0.0-M18 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.qpid.protonj2.engine, interface: TransactionManager">
<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/TransactionManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.engine</a></div>
<h1 title="Interface TransactionManager" class="title">Interface TransactionManager</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonTransactionManager.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonTransactionManager</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">TransactionManager</span><span class="extends-implements">
extends <a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;</span></div>
<div class="block">Transaction Manager endpoint that implements the mechanics of handling the declaration
of and the requested discharge of AMQP transactions. Typically an AMQP server instance
will host the transaction management services that are used by client resources to declare
and discharge transaction and handle the associated of deliveries that are enlisted in
active transactions.</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><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default 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="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addCredit(int)" class="member-name-link">addCredit</a><wbr>(int&nbsp;additionalCredit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds the given amount of credit for the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> which allows
the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> to send <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> and <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a>
requests to this manager.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#declared(org.apache.qpid.protonj2.engine.Transaction,byte%5B%5D)" class="member-name-link">declared</a><wbr>(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
byte[]&nbsp;txnId)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#declared(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.Binary)" class="member-name-link">declared</a><wbr>(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types">Binary</a>&nbsp;txnId)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#declareFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)" class="member-name-link">declareFailed</a><wbr>(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction declaration has failed and is not active.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#declareHandler(org.apache.qpid.protonj2.engine.EventHandler)" class="member-name-link">declareHandler</a><wbr>(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;declaredEventHandler)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a new transaction be
declared using the information provided in the given <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> instance.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#discharged(org.apache.qpid.protonj2.engine.Transaction)" class="member-name-link">discharged</a><wbr>(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge completed on the transaction identified by given transaction Id
has now been retired.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#dischargeFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)" class="member-name-link">dischargeFailed</a><wbr>(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge resulted in an error and the transaction must be considered rolled
back.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#dischargeHandler(org.apache.qpid.protonj2.engine.EventHandler)" class="member-name-link">dischargeHandler</a><wbr>(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;dischargeEventHandler)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a current transaction be
discharged using the information provided in the given <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> instance.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getCoordinator()" class="member-name-link">getCoordinator</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the currently set Coordinator target for this <a href="Link.html" title="interface in org.apache.qpid.protonj2.engine"><code>Link</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getCredit()" class="member-name-link">getCredit</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get the credit that is currently available or assigned to this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getRemoteCoordinator()" class="member-name-link">getRemoteCoordinator</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the remote target <a href="../types/messaging/Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><code>Terminus</code></a> for this transaction manager which must be of type
<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> or null if remote did not set a terminus.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getRemoteSource()" class="member-name-link">getRemoteSource</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSource()" class="member-name-link">getSource</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#parentEndpointClosedHandler(org.apache.qpid.protonj2.engine.EventHandler)" class="member-name-link">parentEndpointClosedHandler</a><wbr>(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;handler)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets a <a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EventHandler</code></a> for when the parent <a href="Session.html" title="interface in org.apache.qpid.protonj2.engine"><code>Session</code></a> or <a href="Connection.html" title="interface in org.apache.qpid.protonj2.engine"><code>Connection</code></a> of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>
is locally closed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setCoordinator(org.apache.qpid.protonj2.types.transactions.Coordinator)" class="member-name-link">setCoordinator</a><wbr>(<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a>&nbsp;coordinator)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> target to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setSource(org.apache.qpid.protonj2.types.messaging.Source)" class="member-name-link">setSource</a><wbr>(<a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a>&nbsp;source)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.qpid.protonj2.engine.Endpoint">Methods inherited from interface&nbsp;org.apache.qpid.protonj2.engine.<a href="Endpoint.html" title="interface in org.apache.qpid.protonj2.engine">Endpoint</a></h3>
<code><a href="Endpoint.html#close()">close</a>, <a href="Endpoint.html#closeHandler(org.apache.qpid.protonj2.engine.EventHandler)">closeHandler</a>, <a href="Endpoint.html#engineShutdownHandler(org.apache.qpid.protonj2.engine.EventHandler)">engineShutdownHandler</a>, <a href="Endpoint.html#getAttachments()">getAttachments</a>, <a href="Endpoint.html#getCondition()">getCondition</a>, <a href="Endpoint.html#getDesiredCapabilities()">getDesiredCapabilities</a>, <a href="Endpoint.html#getEngine()">getEngine</a>, <a href="Endpoint.html#getLinkedResource()">getLinkedResource</a>, <a href="Endpoint.html#getLinkedResource(java.lang.Class)">getLinkedResource</a>, <a href="Endpoint.html#getOfferedCapabilities()">getOfferedCapabilities</a>, <a href="Endpoint.html#getParent()">getParent</a>, <a href="Endpoint.html#getProperties()">getProperties</a>, <a href="Endpoint.html#getRemoteCondition()">getRemoteCondition</a>, <a href="Endpoint.html#getRemoteDesiredCapabilities()">getRemoteDesiredCapabilities</a>, <a href="Endpoint.html#getRemoteOfferedCapabilities()">getRemoteOfferedCapabilities</a>, <a href="Endpoint.html#getRemoteProperties()">getRemoteProperties</a>, <a href="Endpoint.html#isLocallyClosed()">isLocallyClosed</a>, <a href="Endpoint.html#isLocallyOpen()">isLocallyOpen</a>, <a href="Endpoint.html#isRemotelyClosed()">isRemotelyClosed</a>, <a href="Endpoint.html#isRemotelyOpen()">isRemotelyOpen</a>, <a href="Endpoint.html#localCloseHandler(org.apache.qpid.protonj2.engine.EventHandler)">localCloseHandler</a>, <a href="Endpoint.html#localOpenHandler(org.apache.qpid.protonj2.engine.EventHandler)">localOpenHandler</a>, <a href="Endpoint.html#open()">open</a>, <a href="Endpoint.html#openHandler(org.apache.qpid.protonj2.engine.EventHandler)">openHandler</a>, <a href="Endpoint.html#setCondition(org.apache.qpid.protonj2.types.transport.ErrorCondition)">setCondition</a>, <a href="Endpoint.html#setDesiredCapabilities(org.apache.qpid.protonj2.types.Symbol...)">setDesiredCapabilities</a>, <a href="Endpoint.html#setLinkedResource(java.lang.Object)">setLinkedResource</a>, <a href="Endpoint.html#setOfferedCapabilities(org.apache.qpid.protonj2.types.Symbol...)">setOfferedCapabilities</a>, <a href="Endpoint.html#setProperties(java.util.Map)">setProperties</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="addCredit(int)">
<h3>addCredit</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">addCredit</span><wbr><span class="parameters">(int&nbsp;additionalCredit)</span></div>
<div class="block">Adds the given amount of credit for the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> which allows
the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> to send <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> and <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a>
requests to this manager. The <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> cannot send any requests
to start or complete a transaction without having credit to do so which implies that
the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> owner must grant credit as part of its normal processing.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>additionalCredit</code> - the new amount of credits to add.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if the credit amount is negative.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCredit()">
<h3>getCredit</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getCredit</span>()</div>
<div class="block">Get the credit that is currently available or assigned to this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the current unused credit.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSource(org.apache.qpid.protonj2.types.messaging.Source)">
<h3>setSource</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">setSource</span><wbr><span class="parameters">(<a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a>&nbsp;source)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></span></div>
<div class="block">Sets the <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.
Must be called during setup, i.e. before calling the <a href="Endpoint.html#open()"><code>Endpoint.open()</code></a> method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>source</code> - The <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> that will be set on the local end of this transaction controller.</dd>
<dt>Returns:</dt>
<dd>this transaction controller instance.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> has already been opened.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSource()">
<h3>getSource</h3>
<div class="member-signature"><span class="return-type"><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a></span>&nbsp;<span class="element-name">getSource</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> for the local end of this <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setCoordinator(org.apache.qpid.protonj2.types.transactions.Coordinator)">
<h3>setCoordinator</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">setCoordinator</span><wbr><span class="parameters">(<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a>&nbsp;coordinator)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></span></div>
<div class="block">Sets the <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> target to assign to the local end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.
Must be called during setup, i.e. before calling the <a href="Endpoint.html#open()"><code>Endpoint.open()</code></a> method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>coordinator</code> - The <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> target that will be set on the local end of this transaction controller.</dd>
<dt>Returns:</dt>
<dd>this transaction controller instance.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="external-link">IllegalStateException</a></code> - if the <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a> has already been opened.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCoordinator()">
<h3>getCoordinator</h3>
<div class="member-signature"><span class="return-type"><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a></span>&nbsp;<span class="element-name">getCoordinator</span>()</div>
<div class="block">Returns the currently set Coordinator target for this <a href="Link.html" title="interface in org.apache.qpid.protonj2.engine"><code>Link</code></a>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the link target <a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> for the local end of this link.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getRemoteSource()">
<h3>getRemoteSource</h3>
<div class="member-signature"><span class="return-type"><a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging">Source</a></span>&nbsp;<span class="element-name">getRemoteSource</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the source <a href="../types/messaging/Source.html" title="class in org.apache.qpid.protonj2.types.messaging"><code>Source</code></a> for the remote end of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getRemoteCoordinator()">
<h3>getRemoteCoordinator</h3>
<div class="member-signature"><span class="return-type"><a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions">Coordinator</a></span>&nbsp;<span class="element-name">getRemoteCoordinator</span>()</div>
<div class="block">Returns the remote target <a href="../types/messaging/Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><code>Terminus</code></a> for this transaction manager which must be of type
<a href="../types/transactions/Coordinator.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Coordinator</code></a> or null if remote did not set a terminus.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the remote coordinator <a href="../types/messaging/Terminus.html" title="interface in org.apache.qpid.protonj2.types.messaging"><code>Terminus</code></a> for the remote end of this link.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="declared(org.apache.qpid.protonj2.engine.Transaction,byte[])">
<h3>declared</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">declared</span><wbr><span class="parameters">(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
byte[]&nbsp;txnId)</span></div>
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>transaction</code> - The transaction instance that is associated with the declared transaction.</dd>
<dd><code>txnId</code> - The binary transaction Id to assign the now declared transaction instance.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="declared(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.Binary)">
<h3>declared</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">declared</span><wbr><span class="parameters">(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types">Binary</a>&nbsp;txnId)</span></div>
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction has been successfully declared and that deliveries
can now be enlisted in that transaction.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>transaction</code> - The transaction instance that is associated with the declared transaction.</dd>
<dd><code>txnId</code> - The binary transaction Id to assign the now declared transaction instance.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="declareFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)">
<h3>declareFailed</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">declareFailed</span><wbr><span class="parameters">(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</span></div>
<div class="block">Respond to a previous <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the requested transaction declaration has failed and is not active.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>transaction</code> - The transaction instance that is associated with the declared transaction.</dd>
<dd><code>condition</code> - The <a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport"><code>ErrorCondition</code></a> that described the reason for the transaction failure.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="discharged(org.apache.qpid.protonj2.engine.Transaction)">
<h3>discharged</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">discharged</span><wbr><span class="parameters">(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction)</span></div>
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge completed on the transaction identified by given transaction Id
has now been retired.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>transaction</code> - The <a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine"><code>Transaction</code></a> instance that has been discharged and is now retired.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="dischargeFailed(org.apache.qpid.protonj2.engine.Transaction,org.apache.qpid.protonj2.types.transport.ErrorCondition)">
<h3>dischargeFailed</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">dischargeFailed</span><wbr><span class="parameters">(<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;transaction,
<a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport">ErrorCondition</a>&nbsp;condition)</span></div>
<div class="block">Respond to a previous <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> request from the remote <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a>
indicating that the discharge resulted in an error and the transaction must be considered rolled
back.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>transaction</code> - The <a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine"><code>Transaction</code></a> instance that has been discharged and is now retired.</dd>
<dd><code>condition</code> - The <a href="../types/transport/ErrorCondition.html" title="class in org.apache.qpid.protonj2.types.transport"><code>ErrorCondition</code></a> that described the reason for the transaction failure.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="declareHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<h3>declareHandler</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">declareHandler</span><wbr><span class="parameters">(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;declaredEventHandler)</span></div>
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a new transaction be
declared using the information provided in the given <a href="../types/transactions/Declare.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Declare</code></a> instance.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>declaredEventHandler</code> - handler that will act on the transaction declaration request.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="dischargeHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<h3>dischargeHandler</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">dischargeHandler</span><wbr><span class="parameters">(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="Transaction.html" title="interface in org.apache.qpid.protonj2.engine">Transaction</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&gt;&nbsp;dischargeEventHandler)</span></div>
<div class="block">Called when the <a href="TransactionController.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionController</code></a> end of the link has requested a current transaction be
discharged using the information provided in the given <a href="../types/transactions/Discharge.html" title="class in org.apache.qpid.protonj2.types.transactions"><code>Discharge</code></a> instance.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>dischargeEventHandler</code> - handler that will act on the transaction declaration request.</dd>
<dt>Returns:</dt>
<dd>this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="parentEndpointClosedHandler(org.apache.qpid.protonj2.engine.EventHandler)">
<h3>parentEndpointClosedHandler</h3>
<div class="member-signature"><span class="return-type"><a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a></span>&nbsp;<span class="element-name">parentEndpointClosedHandler</span><wbr><span class="parameters">(<a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine">EventHandler</a>&lt;<a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine">TransactionManager</a>&gt;&nbsp;handler)</span></div>
<div class="block">Sets a <a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EventHandler</code></a> for when the parent <a href="Session.html" title="interface in org.apache.qpid.protonj2.engine"><code>Session</code></a> or <a href="Connection.html" title="interface in org.apache.qpid.protonj2.engine"><code>Connection</code></a> of this <a href="TransactionManager.html" title="interface in org.apache.qpid.protonj2.engine"><code>TransactionManager</code></a>
is locally closed.
Typically used by clients for logging or other state update event processing. Clients should not perform any
blocking calls within this context. It is an error for the handler to throw an exception and the outcome of
doing so is undefined.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - The <a href="EventHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EventHandler</code></a> to notify when this transaction manger's parent endpoint is locally closed.</dd>
<dt>Returns:</dt>
<dd>the link for chaining.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>