blob: 5464ca8cbe961f457643ba0c435f54de74d80bc0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>EngineHandler (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="EngineHandler (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":18,"i1":18,"i2":18,"i3":18,"i4":18,"i5":18,"i6":18,"i7":18,"i8":18,"i9":18,"i10":18,"i11":18,"i12":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default 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/EngineHandler.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.engine</a></div>
<h2 title="Interface EngineHandler" class="title">Interface EngineHandler</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonFrameDecodingHandler.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonFrameDecodingHandler</a></code>, <code><a href="impl/ProtonFrameEncodingHandler.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonFrameEncodingHandler</a></code>, <code><a href="impl/ProtonFrameLoggingHandler.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonFrameLoggingHandler</a></code>, <code><a href="impl/ProtonPerformativeHandler.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonPerformativeHandler</a></code>, <code><a href="impl/sasl/ProtonSaslHandler.html" title="class in org.apache.qpid.protonj2.engine.impl.sasl">ProtonSaslHandler</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">EngineHandler</span></pre>
<div class="block">Listen for events generated from the Engine</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="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#engineFailed(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.exceptions.EngineFailedException)">engineFailed</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="exceptions/EngineFailedException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineFailedException</a>&nbsp;failure)</code></th>
<td class="colLast">
<div class="block">Called when the engine has transitioned to a failed state and cannot process any additional
input or output.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#engineStarting(org.apache.qpid.protonj2.engine.EngineHandlerContext)">engineStarting</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Called when the engine is started to allow handlers to prepare for use based on
the configuration state at start of the engine.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleEngineStateChanged(org.apache.qpid.protonj2.engine.EngineHandlerContext)">handleEngineStateChanged</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Called when the engine state has changed and handlers may need to update their internal state
to respond to the change or prompt some new work based on the change, e.g state changes from
not writable to writable.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handlerAdded(org.apache.qpid.protonj2.engine.EngineHandlerContext)">handlerAdded</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Called when the handler is successfully added to the <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a> and
will later be initialized before use.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer)">handleRead</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</code></th>
<td class="colLast">
<div class="block">Handle the read of new incoming bytes from a remote sender.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)">handleRead</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;header)</code></th>
<td class="colLast">
<div class="block">Handle the receipt of an incoming AMQP Header or SASL Header based on the current state
of this handler.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope)">handleRead</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">IncomingAMQPEnvelope</a>&nbsp;envelope)</code></th>
<td class="colLast">
<div class="block">Handle the receipt of an incoming AMQP envelope based on the current state of this handler.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)">handleRead</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine">SASLEnvelope</a>&nbsp;envelope)</code></th>
<td class="colLast">
<div class="block">Handle the receipt of an incoming SASL performative based on the current state of this handler.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handlerRemoved(org.apache.qpid.protonj2.engine.EngineHandlerContext)">handlerRemoved</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Called when the handler is successfully removed to the <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)">handleWrite</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;ioComplete)</code></th>
<td class="colLast">
<div class="block">Writes the given bytes to the output target or if no handler in the pipeline handles this
calls the registered output handler of the parent Engine instance.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)">handleWrite</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;envelope)</code></th>
<td class="colLast">
<div class="block">Handles write of AMQPHeader either by directly writing it to the output target or by
converting it to bytes and firing a write using the <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> based API
in <a href="EngineHandlerContext.html#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)"><code>EngineHandlerContext.fireWrite(ProtonBuffer, Runnable)</code></a></div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope)">handleWrite</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;envelope)</code></th>
<td class="colLast">
<div class="block">Handles write of AMQP performative envelope either by directly writing it to the output target or
by converting it to bytes and firing a write using the <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> based API in
<a href="EngineHandlerContext.html#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)"><code>EngineHandlerContext.fireWrite(ProtonBuffer, Runnable)</code></a></div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)">handleWrite</a></span>&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine">SASLEnvelope</a>&nbsp;envelope)</code></th>
<td class="colLast">
<div class="block">Handles write of SaslPerformative either by directly writing it to the output target or by
converting it to bytes and firing a write using the <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> based API
in <a href="EngineHandlerContext.html#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)"><code>EngineHandlerContext.fireWrite(ProtonBuffer, Runnable)</code></a></div>
</td>
</tr>
</table>
</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="handlerAdded(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlerAdded</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handlerAdded&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</pre>
<div class="block">Called when the handler is successfully added to the <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a> and
will later be initialized before use.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context that is assigned to this handler.</dd>
</dl>
</li>
</ul>
<a id="handlerRemoved(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlerRemoved</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handlerRemoved&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</pre>
<div class="block">Called when the handler is successfully removed to the <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context that is assigned to this handler.</dd>
</dl>
</li>
</ul>
<a id="engineStarting(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>engineStarting</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;engineStarting&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</pre>
<div class="block">Called when the engine is started to allow handlers to prepare for use based on
the configuration state at start of the engine. A handler can fail the engine start
by throwing an exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
</dl>
</li>
</ul>
<a id="handleEngineStateChanged(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleEngineStateChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleEngineStateChanged&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</pre>
<div class="block">Called when the engine state has changed and handlers may need to update their internal state
to respond to the change or prompt some new work based on the change, e.g state changes from
not writable to writable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
</dl>
</li>
</ul>
<a id="engineFailed(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.exceptions.EngineFailedException)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>engineFailed</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;engineFailed&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="exceptions/EngineFailedException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineFailedException</a>&nbsp;failure)</pre>
<div class="block">Called when the engine has transitioned to a failed state and cannot process any additional
input or output. The handler can free and resources used for normal operations at this point
as the engine is now considered shutdown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
<dd><code>failure</code> - The failure that triggered the engine to cease operations.</dd>
</dl>
</li>
</ul>
<a id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleRead</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleRead&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer)</pre>
<div class="block">Handle the read of new incoming bytes from a remote sender. The handler should generally
decode these bytes into an AMQP Performative or SASL Performative based on the current state
of the connection and the handler in question.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
<dd><code>buffer</code> - The buffer containing the bytes that the engine handler should decode.</dd>
</dl>
</li>
</ul>
<a id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleRead</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleRead&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;header)</pre>
<div class="block">Handle the receipt of an incoming AMQP Header or SASL Header based on the current state
of this handler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
<dd><code>header</code> - The AMQP Header envelope that wraps the received header instance.</dd>
</dl>
</li>
</ul>
<a id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleRead</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleRead&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine">SASLEnvelope</a>&nbsp;envelope)</pre>
<div class="block">Handle the receipt of an incoming SASL performative based on the current state of this handler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
<dd><code>envelope</code> - The SASL envelope that wraps the received <a href="../types/security/SaslPerformative.html" title="interface in org.apache.qpid.protonj2.types.security"><code>SaslPerformative</code></a>.</dd>
</dl>
</li>
</ul>
<a id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleRead</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleRead&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">IncomingAMQPEnvelope</a>&nbsp;envelope)</pre>
<div class="block">Handle the receipt of an incoming AMQP envelope based on the current state of this handler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
<dd><code>envelope</code> - The AMQP envelope that wraps the received <a href="../types/transport/Performative.html" title="interface in org.apache.qpid.protonj2.types.transport"><code>Performative</code></a>.</dd>
</dl>
</li>
</ul>
<a id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleWrite</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleWrite&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;envelope)</pre>
<div class="block">Handles write of AMQPHeader either by directly writing it to the output target or by
converting it to bytes and firing a write using the <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> based API
in <a href="EngineHandlerContext.html#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)"><code>EngineHandlerContext.fireWrite(ProtonBuffer, Runnable)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandlerContext</code></a> associated with this <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> instance.</dd>
<dd><code>envelope</code> - The <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> instance to write.</dd>
</dl>
</li>
</ul>
<a id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleWrite</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleWrite&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;envelope)</pre>
<div class="block">Handles write of AMQP performative envelope either by directly writing it to the output target or
by converting it to bytes and firing a write using the <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> based API in
<a href="EngineHandlerContext.html#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)"><code>EngineHandlerContext.fireWrite(ProtonBuffer, Runnable)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandlerContext</code></a> associated with this <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> instance.</dd>
<dd><code>envelope</code> - The <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> instance to write.</dd>
</dl>
</li>
</ul>
<a id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleWrite</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleWrite&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine">SASLEnvelope</a>&nbsp;envelope)</pre>
<div class="block">Handles write of SaslPerformative either by directly writing it to the output target or by
converting it to bytes and firing a write using the <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> based API
in <a href="EngineHandlerContext.html#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)"><code>EngineHandlerContext.fireWrite(ProtonBuffer, Runnable)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandlerContext</code></a> associated with this <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> instance.</dd>
<dd><code>envelope</code> - The <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> instance to write.</dd>
</dl>
</li>
</ul>
<a id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>handleWrite</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;handleWrite&#8203;(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context,
<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;ioComplete)</pre>
<div class="block">Writes the given bytes to the output target or if no handler in the pipeline handles this
calls the registered output handler of the parent Engine instance. If not output handler
is found or not handler in the output chain consumes this write the Engine will be failed
as an output sink is required for all low level engine writes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandlerContext</code></a> associated with this <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> instance.</dd>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> whose payload is to be written to the output target.</dd>
<dd><code>ioComplete</code> - A <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Runnable</code></a> callback that indicates that the I/O operation is complete</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/EngineHandler.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>