blob: edf4fb1121b764d8c5563947869de407697dce92 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Qpid::Proton::Handler::ReactorMessagingAdapter
&mdash; Qpid Proton Ruby API
</title>
<link rel="stylesheet" href="../../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Qpid::Proton::Handler::ReactorMessagingAdapter";
relpath = '../../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../../_index.html">Index (R)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Handler.html" title="Qpid::Proton::Handler (module)">Handler</a></span></span>
&raquo;
<span class="title">ReactorMessagingAdapter</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Class: Qpid::Proton::Handler::ReactorMessagingAdapter
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName"><span class='object_link'><a href="Adapter.html" title="Qpid::Proton::Handler::Adapter (class)">Adapter</a></span></span>
<ul class="fullTree">
<li>Object</li>
<li class="next"><span class='object_link'><a href="Adapter.html" title="Qpid::Proton::Handler::Adapter (class)">Adapter</a></span></li>
<li class="next">Qpid::Proton::Handler::ReactorMessagingAdapter</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/handler/reactor_messaging_adapter.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>Adapter to convert raw proton events for the old <span class='object_link'><a href="MessagingHandler.html" title="Qpid::Proton::Handler::MessagingHandler (class)">MessagingHandler</a></span> used by the Reactor.</p>
</div>
</div>
<div class="tags">
</div>
<h2>
Class Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#open_close-class_method" title="open_close (class method)">.<strong>open_close</strong>(endpoint) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Define repetative on_xxx_open/close methods for each endpoint type.</p>
</div></span>
</li>
</ul>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#add_credit-instance_method" title="#add_credit (instance method)">#<strong>add_credit</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#delegate-instance_method" title="#delegate (instance method)">#<strong>delegate</strong>(method, event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#delegate_error-instance_method" title="#delegate_error (instance method)">#<strong>delegate_error</strong>(method, event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(handler) &#x21d2; ReactorMessagingAdapter </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>A new instance of ReactorMessagingAdapter.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_container_start-instance_method" title="#on_container_start (instance method)">#<strong>on_container_start</strong>(container) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_container_stop-instance_method" title="#on_container_stop (instance method)">#<strong>on_container_stop</strong>(container) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_delivery-instance_method" title="#on_delivery (instance method)">#<strong>on_delivery</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_link_flow-instance_method" title="#on_link_flow (instance method)">#<strong>on_link_flow</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_link_local_open-instance_method" title="#on_link_local_open (instance method)">#<strong>on_link_local_open</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Add flow control for link opening events.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_link_remote_open-instance_method" title="#on_link_remote_open (instance method)">#<strong>on_link_remote_open</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_transport_closed-instance_method" title="#on_transport_closed (instance method)">#<strong>on_transport_closed</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_transport_error-instance_method" title="#on_transport_error (instance method)">#<strong>on_transport_error</strong>(event) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
</ul>
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="Adapter.html" title="Qpid::Proton::Handler::Adapter (class)">Adapter</a></span></h3>
<p class="inherited"><span class='object_link'><a href="Adapter.html#adapt-class_method" title="Qpid::Proton::Handler::Adapter.adapt (method)">adapt</a></span>, <span class='object_link'><a href="Adapter.html#adapter-class_method" title="Qpid::Proton::Handler::Adapter.adapter (method)">adapter</a></span>, <span class='object_link'><a href="Adapter.html#forward-instance_method" title="Qpid::Proton::Handler::Adapter#forward (method)">#forward</a></span>, <span class='object_link'><a href="Adapter.html#proton_adapter_class-instance_method" title="Qpid::Proton::Handler::Adapter#proton_adapter_class (method)">#proton_adapter_class</a></span></p>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
#<strong>initialize</strong>(handler) &#x21d2; <tt><span class='object_link'><a href="" title="Qpid::Proton::Handler::ReactorMessagingAdapter (class)">ReactorMessagingAdapter</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a new instance of ReactorMessagingAdapter.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
26
27
28
29
30
31
32
33
34</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 26</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span> <span class='id identifier rubyid_handler'>handler</span>
<span class='kw'>super</span>
<span class='ivar'>@opts</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span> <span class='kw'>if</span> <span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:options</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:prefetch</span><span class='rbracket'>]</span> <span class='op'>||=</span> <span class='int'>10</span>
<span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:peer_close_is_error</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='ivar'>@opts</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='symbol'>:peer_close_is_error</span>
<span class='lbracket'>[</span><span class='symbol'>:auto_accept</span><span class='comma'>,</span> <span class='symbol'>:auto_settle</span><span class='comma'>,</span> <span class='symbol'>:auto_open</span><span class='comma'>,</span> <span class='symbol'>:auto_close</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
<span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>unless</span> <span class='ivar'>@opts</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_k'>k</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="open_close-class_method">
.<strong>open_close</strong>(endpoint)
</h3><div class="docstring">
<div class="discussion">
<p>Define repetative on_xxx_open/close methods for each endpoint type</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 55</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_open_close'>open_close</span><span class='lparen'>(</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='rparen'>)</span>
<span class='id identifier rubyid_on_opening'>on_opening</span> <span class='op'>=</span> <span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_opening</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_on_opened'>on_opened</span> <span class='op'>=</span> <span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_opened</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_on_closing'>on_closing</span> <span class='op'>=</span> <span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_closing</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_on_closed'>on_closed</span> <span class='op'>=</span> <span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_closed</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_on_error'>on_error</span> <span class='op'>=</span> <span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_error</span><span class='tstring_end'>&quot;</span></span>
<span class='const'>Module</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
<span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_local_open</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_event'>event</span><span class='op'>|</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_on_opened'>on_opened</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_remote_open?'>remote_open?</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_remote_open</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_event'>event</span><span class='op'>|</span>
<span class='kw'>if</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_local_open?'>local_open?</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_on_opened'>on_opened</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_local_uninit?'>local_uninit?</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_on_opening'>on_opening</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span> <span class='kw'>if</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:auto_open</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_local_close</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_event'>event</span><span class='op'>|</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_on_closed'>on_closed</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_remote_closed?'>remote_closed?</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_define_method'>define_method</span><span class='lparen'>(</span><span class='symbol'>:&quot;on_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_endpoint'>endpoint</span><span class='embexpr_end'>}</span><span class='tstring_content'>_remote_close</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_event'>event</span><span class='op'>|</span>
<span class='kw'>if</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_remote_condition'>remote_condition</span>
<span class='id identifier rubyid_delegate_error'>delegate_error</span><span class='lparen'>(</span><span class='id identifier rubyid_on_error'>on_error</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_local_closed?'>local_closed?</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_on_closed'>on_closed</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>elsif</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:peer_close_is_error</span><span class='rbracket'>]</span>
<span class='const'><span class='object_link'><a href="../Condition.html" title="Qpid::Proton::Condition (class)">Condition</a></span></span><span class='period'>.</span><span class='id identifier rubyid_assign'>assign</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid___send__'>__send__</span><span class='lparen'>(</span><span class='symbol'>:_remote_condition</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unexpected peer close</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_delegate_error'>delegate_error</span><span class='lparen'>(</span><span class='id identifier rubyid_on_error'>on_error</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_on_closing'>on_closing</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='kw'>if</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:auto_close</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="add_credit-instance_method">
#<strong>add_credit</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
149
150
151
152
153
154
155</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 149</span>
<span class='kw'>def</span> <span class='id identifier rubyid_add_credit'>add_credit</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_receiver'>receiver</span>
<span class='id identifier rubyid_prefetch'>prefetch</span> <span class='op'>=</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:prefetch</span><span class='rbracket'>]</span>
<span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_open?'>open?</span> <span class='op'>&amp;&amp;</span> <span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_drained'>drained</span> <span class='op'>==</span> <span class='int'>0</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_prefetch'>prefetch</span> <span class='op'>&amp;&amp;</span> <span class='lparen'>(</span><span class='id identifier rubyid_prefetch'>prefetch</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_credit'>credit</span><span class='rparen'>)</span>
<span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_flow'>flow</span><span class='lparen'>(</span><span class='id identifier rubyid_prefetch'>prefetch</span> <span class='op'>-</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_credit'>credit</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="delegate-instance_method">
#<strong>delegate</strong>(method, event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
38
39
40
41</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 38</span>
<span class='kw'>def</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span> <span class='comment'># Update the event with the new method
</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_dispatch'>dispatch</span><span class='lparen'>(</span><span class='ivar'>@handler</span><span class='rparen'>)</span> <span class='kw'>or</span> <span class='id identifier rubyid_dispatch'>dispatch</span><span class='lparen'>(</span><span class='symbol'>:on_unhandled</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="delegate_error-instance_method">
#<strong>delegate_error</strong>(method, event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
43
44
45
46
47
48
49</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 43</span>
<span class='kw'>def</span> <span class='id identifier rubyid_delegate_error'>delegate_error</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_dispatch'>dispatch</span><span class='lparen'>(</span><span class='ivar'>@handler</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_dispatch'>dispatch</span><span class='lparen'>(</span><span class='symbol'>:on_error</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_dispatch'>dispatch</span><span class='lparen'>(</span><span class='symbol'>:on_unhandled</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_condition'>condition</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:auto_close</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_container_start-instance_method">
#<strong>on_container_start</strong>(container)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
51</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 51</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_container_start'>on_container_start</span><span class='lparen'>(</span><span class='id identifier rubyid_container'>container</span><span class='rparen'>)</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_start</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Event.html" title="Qpid::Proton::Event (class)">Event</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_container'>container</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_container_stop-instance_method">
#<strong>on_container_stop</strong>(container)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
52</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 52</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_container_stop'>on_container_stop</span><span class='lparen'>(</span><span class='id identifier rubyid_container'>container</span><span class='rparen'>)</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_stop</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Event.html" title="Qpid::Proton::Event (class)">Event</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_container'>container</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_delivery-instance_method">
#<strong>on_delivery</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 106</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_delivery'>on_delivery</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</span><span class='period'>.</span><span class='id identifier rubyid_receiver?'>receiver?</span> <span class='comment'># Incoming message
</span> <span class='id identifier rubyid_d'>d</span> <span class='op'>=</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_delivery'>delivery</span>
<span class='kw'>if</span> <span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_aborted?'>aborted?</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_aborted</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_settle'>settle</span>
<span class='kw'>elsif</span> <span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_complete?'>complete?</span>
<span class='kw'>if</span> <span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</span><span class='period'>.</span><span class='id identifier rubyid_local_closed?'>local_closed?</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:auto_accept</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_release'>release</span>
<span class='kw'>else</span>
<span class='kw'>begin</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_message</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_accept'>accept</span> <span class='kw'>if</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:auto_accept</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_settled?'>settled?</span>
<span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Reject.html" title="Qpid::Proton::Reject (class)">Reject</a></span></span>
<span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span>
<span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Release.html" title="Qpid::Proton::Release (class)">Release</a></span></span>
<span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_release'>release</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_settled</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_settled?'>settled?</span>
<span class='id identifier rubyid_add_credit'>add_credit</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>else</span> <span class='comment'># Outgoing message
</span> <span class='id identifier rubyid_t'>t</span> <span class='op'>=</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_tracker'>tracker</span>
<span class='kw'>if</span> <span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_updated?'>updated?</span>
<span class='kw'>case</span> <span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_state'>state</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Disposition/State.html#ACCEPTED-constant" title="Qpid::Proton::Disposition::State::ACCEPTED (constant)">ACCEPTED</a></span></span> <span class='kw'>then</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_accepted</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Disposition/State.html#REJECTED-constant" title="Qpid::Proton::Disposition::State::REJECTED (constant)">REJECTED</a></span></span> <span class='kw'>then</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_rejected</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Disposition/State.html#RELEASED-constant" title="Qpid::Proton::Disposition::State::RELEASED (constant)">RELEASED</a></span></span> <span class='kw'>then</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_released</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="../../../Qpid.html" title="Qpid (module)">Qpid</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Disposition/State.html#MODIFIED-constant" title="Qpid::Proton::Disposition::State::MODIFIED (constant)">MODIFIED</a></span></span> <span class='kw'>then</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_modified</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_settled</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_settled?'>settled?</span>
<span class='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_settle'>settle</span> <span class='kw'>if</span> <span class='ivar'>@opts</span><span class='lbracket'>[</span><span class='symbol'>:auto_settle</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_link_flow-instance_method">
#<strong>on_link_flow</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
143
144
145
146
147</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 143</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_link_flow'>on_link_flow</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_add_credit'>add_credit</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_l'>l</span> <span class='op'>=</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_sendable</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_sender?'>sender?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_open?'>open?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_l'>l</span><span class='period'>.</span><span class='id identifier rubyid_credit'>credit</span> <span class='op'>&gt;</span> <span class='int'>0</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_link_local_open-instance_method">
#<strong>on_link_local_open</strong>(event)
</h3><div class="docstring">
<div class="discussion">
<p>Add flow control for link opening events</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
102</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 102</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_link_local_open'>on_link_local_open</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>super</span><span class='semicolon'>;</span> <span class='id identifier rubyid_add_credit'>add_credit</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_link_remote_open-instance_method">
#<strong>on_link_remote_open</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
103</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 103</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_link_remote_open'>on_link_remote_open</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='kw'>super</span><span class='semicolon'>;</span> <span class='id identifier rubyid_add_credit'>add_credit</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_transport_closed-instance_method">
#<strong>on_transport_closed</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
99</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 99</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_transport_closed'>on_transport_closed</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_transport_closed</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="on_transport_error-instance_method">
#<strong>on_transport_error</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
98</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/reactor_messaging_adapter.rb', line 98</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_transport_error'>on_transport_error</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span> <span class='id identifier rubyid_delegate_error'>delegate_error</span><span class='lparen'>(</span><span class='symbol'>:on_transport_error</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Wed Nov 11 12:57:54 2020 by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.24 (ruby-2.7.2).
</div>
</div>
</body>
</html>