blob: f00fd8b72e06bf698e8f0237e25aea150d34cca1 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>EngineHandler (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: EngineHandler">
<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/EngineHandler.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 EngineHandler" class="title">Interface EngineHandler</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<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>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">EngineHandler</span></div>
<div class="block">Listen for events generated from the Engine</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-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-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#engineFailed(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.exceptions.EngineFailedException)" class="member-name-link">engineFailed</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Called when the engine has transitioned to a failed state and cannot process any additional
input or output.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#engineStarting(org.apache.qpid.protonj2.engine.EngineHandlerContext)" class="member-name-link">engineStarting</a><wbr>(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleEngineStateChanged(org.apache.qpid.protonj2.engine.EngineHandlerContext)" class="member-name-link">handleEngineStateChanged</a><wbr>(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handlerAdded(org.apache.qpid.protonj2.engine.EngineHandlerContext)" class="member-name-link">handlerAdded</a><wbr>(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">handleRead</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Handle the read of new incoming bytes from a remote sender.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)" class="member-name-link">handleRead</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Handle the receipt of an incoming AMQP Header or SASL Header based on the current state
of this handler.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope)" class="member-name-link">handleRead</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Handle the receipt of an incoming AMQP envelope based on the current state of this handler.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)" class="member-name-link">handleRead</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Handle the receipt of an incoming SASL performative based on the current state of this handler.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handlerRemoved(org.apache.qpid.protonj2.engine.EngineHandlerContext)" class="member-name-link">handlerRemoved</a><wbr>(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)" class="member-name-link">handleWrite</a><wbr>(<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" title="class or interface in java.lang" class="external-link">Runnable</a>&nbsp;ioComplete)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)" class="member-name-link">handleWrite</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope)" class="member-name-link">handleWrite</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)" class="member-name-link">handleWrite</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
</div>
</div>
</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="handlerAdded(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<h3>handlerAdded</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handlerAdded</span><wbr><span class="parameters">(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</span></div>
<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 class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - The context that is assigned to this handler.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="handlerRemoved(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<h3>handlerRemoved</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handlerRemoved</span><wbr><span class="parameters">(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</span></div>
<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 class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - The context that is assigned to this handler.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="engineStarting(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<h3>engineStarting</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">engineStarting</span><wbr><span class="parameters">(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</span></div>
<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 class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="handleEngineStateChanged(org.apache.qpid.protonj2.engine.EngineHandlerContext)">
<h3>handleEngineStateChanged</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleEngineStateChanged</span><wbr><span class="parameters">(<a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a>&nbsp;context)</span></div>
<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 class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - The context for this handler which can be used to forward the event to the next handler</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="engineFailed(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.exceptions.EngineFailedException)">
<h3>engineFailed</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">engineFailed</span><wbr><span class="parameters">(<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)</span></div>
<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 class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3>handleRead</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleRead</span><wbr><span class="parameters">(<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)</span></div>
<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 class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)">
<h3>handleRead</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleRead</span><wbr><span class="parameters">(<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)</span></div>
<div class="block">Handle the receipt of an incoming AMQP Header or SASL Header based on the current state
of this handler.</div>
<dl class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)">
<h3>handleRead</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleRead</span><wbr><span class="parameters">(<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)</span></div>
<div class="block">Handle the receipt of an incoming SASL performative based on the current state of this handler.</div>
<dl class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleRead(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope)">
<h3>handleRead</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleRead</span><wbr><span class="parameters">(<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)</span></div>
<div class="block">Handle the receipt of an incoming AMQP envelope based on the current state of this handler.</div>
<dl class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.HeaderEnvelope)">
<h3>handleWrite</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleWrite</span><wbr><span class="parameters">(<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)</span></div>
<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 class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope)">
<h3>handleWrite</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleWrite</span><wbr><span class="parameters">(<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)</span></div>
<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 class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.engine.SASLEnvelope)">
<h3>handleWrite</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleWrite</span><wbr><span class="parameters">(<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)</span></div>
<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 class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="handleWrite(org.apache.qpid.protonj2.engine.EngineHandlerContext,org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)">
<h3>handleWrite</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handleWrite</span><wbr><span class="parameters">(<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" title="class or interface in java.lang" class="external-link">Runnable</a>&nbsp;ioComplete)</span></div>
<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 class="notes">
<dt>Parameters:</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" title="class or interface in java.lang" class="external-link"><code>Runnable</code></a> callback that indicates that the I/O operation is complete</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>