blob: 390c0c5cdbe07c04313091888c0c9c1a11ebdf4b [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>EnginePipeline (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: EnginePipeline">
<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/EnginePipeline.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 EnginePipeline" class="title">Interface EnginePipeline</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="impl/ProtonEnginePipeline.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonEnginePipeline</a></code>, <code><a href="impl/ProtonEnginePipelineProxy.html" title="class in org.apache.qpid.protonj2.engine.impl">ProtonEnginePipelineProxy</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">EnginePipeline</span></div>
<div class="block">Pipeline of handlers for Engine work.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addFirst(java.lang.String,org.apache.qpid.protonj2.engine.EngineHandler)" class="member-name-link">addFirst</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a>&nbsp;handler)</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 handler to the front of the pipeline with the given name stored for
later lookup or remove operations.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#addLast(java.lang.String,org.apache.qpid.protonj2.engine.EngineHandler)" class="member-name-link">addLast</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a>&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">Adds the given handler to the end of the pipeline with the given name stored for
later lookup or remove operations.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Engine.html" title="interface in org.apache.qpid.protonj2.engine">Engine</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#engine()" class="member-name-link">engine</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="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#find(java.lang.String)" class="member-name-link">find</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Finds and returns first handler that is found in the pipeline that matches the given name.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireEngineStarting()" class="member-name-link">fireEngineStarting</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fires an engine starting event to each handler in the pipeline.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireEngineStateChanged()" class="member-name-link">fireEngineStateChanged</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fires an engine state changed event to each handler in the pipeline.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireFailed(org.apache.qpid.protonj2.engine.exceptions.EngineFailedException)" class="member-name-link">fireFailed</a><wbr>(<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-tab3">
<div class="block">Fires an engine failed event into each <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline indicating
that the engine is now failed and should not accept or produce new work.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireRead(org.apache.qpid.protonj2.buffer.ProtonBuffer)" class="member-name-link">fireRead</a><wbr>(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;input)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fires a read event consisting of the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireRead(org.apache.qpid.protonj2.engine.HeaderEnvelope)" class="member-name-link">fireRead</a><wbr>(<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;header)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fires a read event consisting of the given <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireRead(org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope)" class="member-name-link">fireRead</a><wbr>(<a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">IncomingAMQPEnvelope</a>&nbsp;envelope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fires a read event consisting of the given <a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>IncomingAMQPEnvelope</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireRead(org.apache.qpid.protonj2.engine.SASLEnvelope)" class="member-name-link">fireRead</a><wbr>(<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-tab3">
<div class="block">Fires a read event consisting of the given <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)" class="member-name-link">fireWrite</a><wbr>(<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-tab3">
<div class="block">Fires a write event consisting of the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireWrite(org.apache.qpid.protonj2.engine.HeaderEnvelope)" class="member-name-link">fireWrite</a><wbr>(<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-tab3">
<div class="block">Fires a write event consisting of the given <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireWrite(org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope)" class="member-name-link">fireWrite</a><wbr>(<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-tab3">
<div class="block">Fires a write event consisting of the given <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#fireWrite(org.apache.qpid.protonj2.engine.SASLEnvelope)" class="member-name-link">fireWrite</a><wbr>(<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-tab3">
<div class="block">Fires a write event consisting of the given <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#first()" class="member-name-link">first</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="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#firstContext()" class="member-name-link">firstContext</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="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#last()" class="member-name-link">last</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="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#lastContext()" class="member-name-link">lastContext</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="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#remove(java.lang.String)" class="member-name-link">remove</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes the first handler that is found in the pipeline that matches the given name.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#remove(org.apache.qpid.protonj2.engine.EngineHandler)" class="member-name-link">remove</a><wbr>(<a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a>&nbsp;handler)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes the given <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> from the pipeline if present.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#removeFirst()" class="member-name-link">removeFirst</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#removeLast()" class="member-name-link">removeLast</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline.</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="engine()">
<h3>engine</h3>
<div class="member-signature"><span class="return-type"><a href="Engine.html" title="interface in org.apache.qpid.protonj2.engine">Engine</a></span>&nbsp;<span class="element-name">engine</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the <a href="Engine.html" title="interface in org.apache.qpid.protonj2.engine"><code>Engine</code></a> that this pipeline is linked to.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addFirst(java.lang.String,org.apache.qpid.protonj2.engine.EngineHandler)">
<h3>addFirst</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">addFirst</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a>&nbsp;handler)</span></div>
<div class="block">Adds the given handler to the front of the pipeline with the given name stored for
later lookup or remove operations. It is not mandatory that each handler have unique
names although if handlers do share a name the <a href="#remove(java.lang.String)"><code>remove(String)</code></a>
method will only remove them one at a time starting from the first in the pipeline.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name to assign to the handler</dd>
<dd><code>handler</code> - The <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> to add into the pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</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 name is null or empty or the handler is null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addLast(java.lang.String,org.apache.qpid.protonj2.engine.EngineHandler)">
<h3>addLast</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">addLast</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name,
<a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a>&nbsp;handler)</span></div>
<div class="block">Adds the given handler to the end of the pipeline with the given name stored for
later lookup or remove operations. It is not mandatory that each handler have unique
names although if handlers do share a name the <a href="#remove(java.lang.String)"><code>remove(String)</code></a>
method will only remove them one at a time starting from the first in the pipeline.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name to assign to the handler</dd>
<dd><code>handler</code> - The <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> to add into the pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</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 name is null or empty or the handler is null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeFirst()">
<h3>removeFirst</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">removeFirst</span>()</div>
<div class="block">Removes the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeLast()">
<h3>removeLast</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">removeLast</span>()</div>
<div class="block">Removes the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="remove(java.lang.String)">
<h3>remove</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">remove</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Removes the first handler that is found in the pipeline that matches the given name.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name to search for in the pipeline moving from first to last.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="remove(org.apache.qpid.protonj2.engine.EngineHandler)">
<h3>remove</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">remove</span><wbr><span class="parameters">(<a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a>&nbsp;handler)</span></div>
<div class="block">Removes the given <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> from the pipeline if present.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - The handler instance to remove if contained in the pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="find(java.lang.String)">
<h3>find</h3>
<div class="member-signature"><span class="return-type"><a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a></span>&nbsp;<span class="element-name">find</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
<div class="block">Finds and returns first handler that is found in the pipeline that matches the given name.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name to search for in the pipeline moving from first to last.</dd>
<dt>Returns:</dt>
<dd>the <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> that matches the given name or null if none in the pipeline.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="first()">
<h3>first</h3>
<div class="member-signature"><span class="return-type"><a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a></span>&nbsp;<span class="element-name">first</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline or null if empty.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="last()">
<h3>last</h3>
<div class="member-signature"><span class="return-type"><a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandler</a></span>&nbsp;<span class="element-name">last</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline or null if empty.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="firstContext()">
<h3>firstContext</h3>
<div class="member-signature"><span class="return-type"><a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a></span>&nbsp;<span class="element-name">firstContext</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the first <a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandlerContext</code></a> in the pipeline or null if empty.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lastContext()">
<h3>lastContext</h3>
<div class="member-signature"><span class="return-type"><a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine">EngineHandlerContext</a></span>&nbsp;<span class="element-name">lastContext</span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the last <a href="EngineHandlerContext.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandlerContext</code></a> in the pipeline or null if empty.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireEngineStarting()">
<h3>fireEngineStarting</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireEngineStarting</span>()</div>
<div class="block">Fires an engine starting event to each handler in the pipeline. Should be used
by the engine implementation to signal its handlers that they should initialize.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireEngineStateChanged()">
<h3>fireEngineStateChanged</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireEngineStateChanged</span>()</div>
<div class="block">Fires an engine state changed event to each handler in the pipeline. Should be used
by the engine implementation to signal its handlers that they should respond to the new
engine state, e.g. the engine failed or was shutdown.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireRead(org.apache.qpid.protonj2.buffer.ProtonBuffer)">
<h3>fireRead</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireRead</span><wbr><span class="parameters">(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;input)</span></div>
<div class="block">Fires a read event consisting of the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed. If the read events reaches the head of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>input</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireRead(org.apache.qpid.protonj2.engine.HeaderEnvelope)">
<h3>fireRead</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireRead</span><wbr><span class="parameters">(<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;header)</span></div>
<div class="block">Fires a read event consisting of the given <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed. If the read events reaches the head of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>header</code> - The <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireRead(org.apache.qpid.protonj2.engine.SASLEnvelope)">
<h3>fireRead</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireRead</span><wbr><span class="parameters">(<a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine">SASLEnvelope</a>&nbsp;envelope)</span></div>
<div class="block">Fires a read event consisting of the given <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed. If the read events reaches the head of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>envelope</code> - The <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireRead(org.apache.qpid.protonj2.engine.IncomingAMQPEnvelope)">
<h3>fireRead</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireRead</span><wbr><span class="parameters">(<a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">IncomingAMQPEnvelope</a>&nbsp;envelope)</span></div>
<div class="block">Fires a read event consisting of the given <a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>IncomingAMQPEnvelope</code></a> into the pipeline starting
from the last <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the incoming
work is fully processed. If the read events reaches the head of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>envelope</code> - The <a href="IncomingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>IncomingAMQPEnvelope</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireWrite(org.apache.qpid.protonj2.engine.HeaderEnvelope)">
<h3>fireWrite</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireWrite</span><wbr><span class="parameters">(<a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine">HeaderEnvelope</a>&nbsp;envelope)</span></div>
<div class="block">Fires a write event consisting of the given <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed. If the write events reaches the tail of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.
It is expected that after the fire write method returns the given <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> will have been
written or if held for later the object must be copied.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>envelope</code> - The <a href="HeaderEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>HeaderEnvelope</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireWrite(org.apache.qpid.protonj2.engine.OutgoingAMQPEnvelope)">
<h3>fireWrite</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireWrite</span><wbr><span class="parameters">(<a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine">OutgoingAMQPEnvelope</a>&nbsp;envelope)</span></div>
<div class="block">Fires a write event consisting of the given <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed. If the write events reaches the tail of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.
It is expected that after the fire write method returns the given <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> will have
been written or if held for later the object must be copied.
When the payload given exceeds the maximum allowed frame size when encoded into an outbound frame the
encoding handler should either throw an error in the case that the performative being written cannot truncate
its payload or should invoke the payload to large handler of the envelope before re-encoding the outbound
performative and truncating the payload.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>envelope</code> - The <a href="OutgoingAMQPEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>OutgoingAMQPEnvelope</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireWrite(org.apache.qpid.protonj2.engine.SASLEnvelope)">
<h3>fireWrite</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireWrite</span><wbr><span class="parameters">(<a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine">SASLEnvelope</a>&nbsp;envelope)</span></div>
<div class="block">Fires a write event consisting of the given <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed. If the write events reaches the tail of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.
It is expected that after the fire write method returns the given <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> will have been
written or if held for later the object must be copied.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>envelope</code> - The <a href="SASLEnvelope.html" title="class in org.apache.qpid.protonj2.engine"><code>SASLEnvelope</code></a> to inject into the engine pipeline.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireWrite(org.apache.qpid.protonj2.buffer.ProtonBuffer,java.lang.Runnable)">
<h3>fireWrite</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireWrite</span><wbr><span class="parameters">(<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">Fires a write event consisting of the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> into the pipeline starting
from the first <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline and moving through each until the outgoing
work is fully processed. If the write events reaches the tail of the pipeline and is not handled
by any handler an error is thrown and the engine should enter the failed state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> to inject into the engine pipeline.</dd>
<dd><code>ioComplete</code> - An optional callback that should be signaled when the underlying transport complete the I/O write</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fireFailed(org.apache.qpid.protonj2.engine.exceptions.EngineFailedException)">
<h3>fireFailed</h3>
<div class="member-signature"><span class="return-type"><a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine">EnginePipeline</a></span>&nbsp;<span class="element-name">fireFailed</span><wbr><span class="parameters">(<a href="exceptions/EngineFailedException.html" title="class in org.apache.qpid.protonj2.engine.exceptions">EngineFailedException</a>&nbsp;failure)</span></div>
<div class="block">Fires an engine failed event into each <a href="EngineHandler.html" title="interface in org.apache.qpid.protonj2.engine"><code>EngineHandler</code></a> in the pipeline indicating
that the engine is now failed and should not accept or produce new work.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>failure</code> - The cause of the engine failure.</dd>
<dt>Returns:</dt>
<dd>this <a href="EnginePipeline.html" title="interface in org.apache.qpid.protonj2.engine"><code>EnginePipeline</code></a>.</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>