blob: 742df2d13be84b8bfc45108f080e7b25ec846807 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Proton DotNet: Apache.Qpid.Proton.Engine.IEngineHandler Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Proton DotNet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceApache.html">Apache</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid.html">Qpid</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine.html">Engine</a></li><li class="navelem"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html">IEngineHandler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.IEngineHandler Interface Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Handler of engine events that is queued into the events pipeline.
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.IEngineHandler:</div>
<div class="dyncontent">
<div class="center">
<img src="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.png" usemap="#Apache.Qpid.Proton.Engine.IEngineHandler_map" alt=""/>
<map id="Apache.Qpid.Proton.Engine.IEngineHandler_map" name="Apache.Qpid.Proton.Engine.IEngineHandler_map">
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameDecodingHandler.html" title="Frame encoder for outgoing AMQP and SASL performatives and Headers" alt="Apache.Qpid.Proton.Engine.Implementation.ProtonFrameDecodingHandler" shape="rect" coords="0,56,433,80"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameEncodingHandler.html" title="Frame encoder for outgoing AMQP and SASL performatives and Headers" alt="Apache.Qpid.Proton.Engine.Implementation.ProtonFrameEncodingHandler" shape="rect" coords="443,56,876,80"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html" title="Frame logger for outgoing AMQP and SASL performatives and Headers" alt="Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler" shape="rect" coords="886,56,1319,80"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonPerformativeHandler.html" title="Proton Engine handler that routes incoming and outgoing performatives" alt="Apache.Qpid.Proton.Engine.Implementation.ProtonPerformativeHandler" shape="rect" coords="1329,56,1762,80"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html" title="Engine handler that manages the SASL authentication process that occurs either on the client or serve..." alt="Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler" shape="rect" coords="1772,56,2205,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ade600cd80e89ed0c712ba1326e75d5ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#ade600cd80e89ed0c712ba1326e75d5ef">HandlerAdded</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context)</td></tr>
<tr class="memdesc:ade600cd80e89ed0c712ba1326e75d5ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the handler is successfully added to the engine pipeline and will later be initialized before use. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#ade600cd80e89ed0c712ba1326e75d5ef">More...</a><br /></td></tr>
<tr class="separator:ade600cd80e89ed0c712ba1326e75d5ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad76f20cd8933d3d6f1905d9729242b34"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#ad76f20cd8933d3d6f1905d9729242b34">HandlerRemoved</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context)</td></tr>
<tr class="memdesc:ad76f20cd8933d3d6f1905d9729242b34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the handler is successfully removed from the engine pipeline and will not be invoked again or ever. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#ad76f20cd8933d3d6f1905d9729242b34">More...</a><br /></td></tr>
<tr class="separator:ad76f20cd8933d3d6f1905d9729242b34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a203e0109b323aed70424c2470a4ee801"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a203e0109b323aed70424c2470a4ee801">EngineStarting</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context)</td></tr>
<tr class="memdesc:a203e0109b323aed70424c2470a4ee801"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a203e0109b323aed70424c2470a4ee801">More...</a><br /></td></tr>
<tr class="separator:a203e0109b323aed70424c2470a4ee801"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d2a1b1a0d907b8a502cdb375c333ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a75d2a1b1a0d907b8a502cdb375c333ab">HandleEngineStateChanged</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context)</td></tr>
<tr class="memdesc:a75d2a1b1a0d907b8a502cdb375c333ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a75d2a1b1a0d907b8a502cdb375c333ab">More...</a><br /></td></tr>
<tr class="separator:a75d2a1b1a0d907b8a502cdb375c333ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61cbf6a4d855a334594ef29f94fad208"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a61cbf6a4d855a334594ef29f94fad208">EngineFailed</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Exceptions_1_1EngineFailedException.html">EngineFailedException</a> failure)</td></tr>
<tr class="memdesc:a61cbf6a4d855a334594ef29f94fad208"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a61cbf6a4d855a334594ef29f94fad208">More...</a><br /></td></tr>
<tr class="separator:a61cbf6a4d855a334594ef29f94fad208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ae62f6a35d5a171c91722884fbfb953"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a3ae62f6a35d5a171c91722884fbfb953">HandleRead</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> buffer)</td></tr>
<tr class="memdesc:a3ae62f6a35d5a171c91722884fbfb953"><td class="mdescLeft">&#160;</td><td class="mdescRight">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. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a3ae62f6a35d5a171c91722884fbfb953">More...</a><br /></td></tr>
<tr class="separator:a3ae62f6a35d5a171c91722884fbfb953"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af86fff8055462cfce1c4cef89e5606ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#af86fff8055462cfce1c4cef89e5606ce">HandleRead</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1HeaderEnvelope.html">HeaderEnvelope</a> envelope)</td></tr>
<tr class="memdesc:af86fff8055462cfce1c4cef89e5606ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle the receipt of an incoming AMQP Header or SASL Header based on the current state of this handler. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#af86fff8055462cfce1c4cef89e5606ce">More...</a><br /></td></tr>
<tr class="separator:af86fff8055462cfce1c4cef89e5606ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a074c6fcbbfb204391f6295dfa7e96ba7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a074c6fcbbfb204391f6295dfa7e96ba7">HandleRead</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1SaslEnvelope.html">SaslEnvelope</a> envelope)</td></tr>
<tr class="memdesc:a074c6fcbbfb204391f6295dfa7e96ba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle the receipt of an incoming SASL performative envelope based on the current state of this handler. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a074c6fcbbfb204391f6295dfa7e96ba7">More...</a><br /></td></tr>
<tr class="separator:a074c6fcbbfb204391f6295dfa7e96ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8316fc48ff39920fa18551294fff41a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a8316fc48ff39920fa18551294fff41a3">HandleRead</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1IncomingAmqpEnvelope.html">IncomingAmqpEnvelope</a> envelope)</td></tr>
<tr class="memdesc:a8316fc48ff39920fa18551294fff41a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle the receipt of an incoming AMQP performative envelope based on the current state of this handler. <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#a8316fc48ff39920fa18551294fff41a3">More...</a><br /></td></tr>
<tr class="separator:a8316fc48ff39920fa18551294fff41a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfbc24ae39f5c5ac5195ec217c7b3ae5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#acfbc24ae39f5c5ac5195ec217c7b3ae5">HandleWrite</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1HeaderEnvelope.html">HeaderEnvelope</a> envelope)</td></tr>
<tr class="memdesc:acfbc24ae39f5c5ac5195ec217c7b3ae5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles write of AMQP Header either by directly writing it to the output target or by converting it to bytes and firing a write using the buffer based write API <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#acfbc24ae39f5c5ac5195ec217c7b3ae5">More...</a><br /></td></tr>
<tr class="separator:acfbc24ae39f5c5ac5195ec217c7b3ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf35ec25af74e2d90bdb897c18607e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#adaf35ec25af74e2d90bdb897c18607e2">HandleWrite</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1SaslEnvelope.html">SaslEnvelope</a> envelope)</td></tr>
<tr class="memdesc:adaf35ec25af74e2d90bdb897c18607e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles write of SASL performative either by directly writing it to the output target or by converting it to bytes and firing a write using the buffer based write API <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#adaf35ec25af74e2d90bdb897c18607e2">More...</a><br /></td></tr>
<tr class="separator:adaf35ec25af74e2d90bdb897c18607e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0f1a0de574f0518f64a9f97778da502"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#aa0f1a0de574f0518f64a9f97778da502">HandleWrite</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1OutgoingAmqpEnvelope.html">OutgoingAmqpEnvelope</a> envelope)</td></tr>
<tr class="memdesc:aa0f1a0de574f0518f64a9f97778da502"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles write of AMQP performative either by directly writing it to the output target or by converting it to bytes and firing a write using the buffer based write API <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#aa0f1a0de574f0518f64a9f97778da502">More...</a><br /></td></tr>
<tr class="separator:aa0f1a0de574f0518f64a9f97778da502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad324195db6e028daa24eac38abf42e2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandler.html#ad324195db6e028daa24eac38abf42e2f">HandleWrite</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a> context, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> buffer, Action ioComplete)</td></tr>
<tr class="separator:ad324195db6e028daa24eac38abf42e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Handler of engine events that is queued into the events pipeline. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a61cbf6a4d855a334594ef29f94fad208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61cbf6a4d855a334594ef29f94fad208">&#9670;&nbsp;</a></span>EngineFailed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.EngineFailed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Exceptions_1_1EngineFailedException.html">EngineFailedException</a>&#160;</td>
<td class="paramname"><em>failure</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>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. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">failure</td><td>The exception that caused the engine to fail</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonPerformativeHandler.html#a0ef767eedaec69262f4dc67ee7d3f4f8">Apache.Qpid.Proton.Engine.Implementation.ProtonPerformativeHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameDecodingHandler.html#af031fcadeb889f6bb2b6a204d67f4ba4">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameDecodingHandler</a>.</p>
</div>
</div>
<a id="a203e0109b323aed70424c2470a4ee801"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a203e0109b323aed70424c2470a4ee801">&#9670;&nbsp;</a></span>EngineStarting()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.EngineStarting </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>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. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a968293366f79ec50d666eba2f1260d1f">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>.</p>
</div>
</div>
<a id="a75d2a1b1a0d907b8a502cdb375c333ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75d2a1b1a0d907b8a502cdb375c333ab">&#9670;&nbsp;</a></span>HandleEngineStateChanged()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleEngineStateChanged </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>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. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ade600cd80e89ed0c712ba1326e75d5ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade600cd80e89ed0c712ba1326e75d5ef">&#9670;&nbsp;</a></span>HandlerAdded()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandlerAdded </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when the handler is successfully added to the engine pipeline and will later be initialized before use. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a28381bd4e77e98d4079e2f2d14265333">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonPerformativeHandler.html#acc0ef3c938588668a7127a53e52138d5">Apache.Qpid.Proton.Engine.Implementation.ProtonPerformativeHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#a78af699c4566638e29f741b90c675eb9">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameEncodingHandler.html#a7b9a70475756f72ae77c7d884753730b">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameEncodingHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameDecodingHandler.html#aa2317fe515a4bc88fae17cc9700b55d8">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameDecodingHandler</a>.</p>
</div>
</div>
<a id="af86fff8055462cfce1c4cef89e5606ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af86fff8055462cfce1c4cef89e5606ce">&#9670;&nbsp;</a></span>HandleRead() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleRead </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1HeaderEnvelope.html">HeaderEnvelope</a>&#160;</td>
<td class="paramname"><em>envelope</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handle the receipt of an incoming AMQP Header or SASL Header based on the current state of this handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">envelope</td><td>The envelope that was read</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#ae821912e338f1e8001fced7b3ff69800">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonPerformativeHandler.html#a0d75775d05f206bab2552ac35b96d904">Apache.Qpid.Proton.Engine.Implementation.ProtonPerformativeHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#aad735541d9126f0f5eac7d53666a4ab8">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>.</p>
</div>
</div>
<a id="a8316fc48ff39920fa18551294fff41a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8316fc48ff39920fa18551294fff41a3">&#9670;&nbsp;</a></span>HandleRead() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleRead </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1IncomingAmqpEnvelope.html">IncomingAmqpEnvelope</a>&#160;</td>
<td class="paramname"><em>envelope</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handle the receipt of an incoming AMQP performative envelope based on the current state of this handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">envelope</td><td>The envelope that was read</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#aa08b83ec4587dfd8b89039e1bc0d5f66">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonPerformativeHandler.html#a3fd1e0b5f3bf27b78de35fb00d1735c9">Apache.Qpid.Proton.Engine.Implementation.ProtonPerformativeHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#af9a6a54e7b625ebcaf0fff7f4255b6dd">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>.</p>
</div>
</div>
<a id="a3ae62f6a35d5a171c91722884fbfb953"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ae62f6a35d5a171c91722884fbfb953">&#9670;&nbsp;</a></span>HandleRead() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleRead </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
<td class="paramname"><em>buffer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>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. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">buffer</td><td>The buffer containing the incoming bytes read.</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameDecodingHandler.html#a9f4698b467be169d735b78c728b33240">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameDecodingHandler</a>.</p>
</div>
</div>
<a id="a074c6fcbbfb204391f6295dfa7e96ba7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a074c6fcbbfb204391f6295dfa7e96ba7">&#9670;&nbsp;</a></span>HandleRead() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleRead </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1SaslEnvelope.html">SaslEnvelope</a>&#160;</td>
<td class="paramname"><em>envelope</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handle the receipt of an incoming SASL performative envelope based on the current state of this handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">envelope</td><td>The envelope that was read</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a217d1c604521a36513b4b3fa83bc26e9">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#a522c6b2b42d97e825949976f92716a4f">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameDecodingHandler.html#a338375d83502f658a2b2d48aa4f75d5f">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameDecodingHandler</a>.</p>
</div>
</div>
<a id="ad76f20cd8933d3d6f1905d9729242b34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad76f20cd8933d3d6f1905d9729242b34">&#9670;&nbsp;</a></span>HandlerRemoved()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandlerRemoved </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Called when the handler is successfully removed from the engine pipeline and will not be invoked again or ever. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a3c745b30499d9f8254bf62edbd5dd9cb">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>.</p>
</div>
</div>
<a id="acfbc24ae39f5c5ac5195ec217c7b3ae5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfbc24ae39f5c5ac5195ec217c7b3ae5">&#9670;&nbsp;</a></span>HandleWrite() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleWrite </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1HeaderEnvelope.html">HeaderEnvelope</a>&#160;</td>
<td class="paramname"><em>envelope</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles write of AMQP Header either by directly writing it to the output target or by converting it to bytes and firing a write using the buffer based write API </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">envelope</td><td>The envelope that is to be written</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a9db10c1972cd22f88a840cd8fbc200ea">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#ad12b21f7d8d1eca68db2e6f5d9e54eb8">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameEncodingHandler.html#ac0ed1e4a01649015269d31903ab551c7">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameEncodingHandler</a>.</p>
</div>
</div>
<a id="ad324195db6e028daa24eac38abf42e2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad324195db6e028daa24eac38abf42e2f">&#9670;&nbsp;</a></span>HandleWrite() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleWrite </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Action&#160;</td>
<td class="paramname"><em>ioComplete</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">buffer</td><td>The buffer to be written into the IO layer</td></tr>
<tr><td class="paramname">ioComplete</td><td>The delegate to invoke when the IO operation is complete</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa0f1a0de574f0518f64a9f97778da502"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0f1a0de574f0518f64a9f97778da502">&#9670;&nbsp;</a></span>HandleWrite() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleWrite </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1OutgoingAmqpEnvelope.html">OutgoingAmqpEnvelope</a>&#160;</td>
<td class="paramname"><em>envelope</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles write of AMQP performative either by directly writing it to the output target or by converting it to bytes and firing a write using the buffer based write API </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">envelope</td><td>The envelope that is to be written</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a5d500079fc5d57f48602344379650130">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#a811231b7e46d9c6b2a8d109eef3fc2eb">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameEncodingHandler.html#a87e37894cc527405188514ef948752f6">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameEncodingHandler</a>.</p>
</div>
</div>
<a id="adaf35ec25af74e2d90bdb897c18607e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaf35ec25af74e2d90bdb897c18607e2">&#9670;&nbsp;</a></span>HandleWrite() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Apache.Qpid.Proton.Engine.IEngineHandler.HandleWrite </td>
<td>(</td>
<td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IEngineHandlerContext.html">IEngineHandlerContext</a>&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1SaslEnvelope.html">SaslEnvelope</a>&#160;</td>
<td class="paramname"><em>envelope</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles write of SASL performative either by directly writing it to the output target or by converting it to bytes and firing a write using the buffer based write API </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">context</td><td>The handler context that is assigned to this handler</td></tr>
<tr><td class="paramname">envelope</td><td>The envelope that is to be written</td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1Sasl_1_1ProtonSaslHandler.html#a47aa79acde56c3c2fda9323bf57cec8a">Apache.Qpid.Proton.Engine.Implementation.Sasl.ProtonSaslHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameLoggingHandler.html#aaf218e086c640aec00cf93fe177bbc88">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameLoggingHandler</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameEncodingHandler.html#a32d7d18f7e824d8d49fb9500f2c07af9">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameEncodingHandler</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonFrameDecodingHandler.html#ae56f0b64681e79b20cd4193dfce6f2e9">Apache.Qpid.Proton.Engine.Implementation.ProtonFrameDecodingHandler</a>.</p>
</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>src/Proton/Engine/IEngineHandler.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>