blob: 4e1f8c76686031ec71c8f750c9e47cff3b2c02aa [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::MessagingAdapter
&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::MessagingAdapter";
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 (M)</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">MessagingAdapter</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::MessagingAdapter
</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::MessagingAdapter</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/handler/messaging_adapter.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>Adapt raw proton events to <span class='object_link'><a href="MessagingHandler.html" title="Qpid::Proton::Handler::MessagingHandler (class)">MessagingHandler</a></span> events.</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 session and connection.</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, *args) </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, context) </a>
</span>
<span class="summary_desc"><div class='inline'></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 local link open.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#on_link_remote_close-instance_method" title="#on_link_remote_close (instance method)">#<strong>on_link_remote_close</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_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'>
<p>Link open/close is handled separately because links are split into sender and receiver on the messaging API.</p>
</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#initialize-instance_method" title="Qpid::Proton::Handler::Adapter#initialize (method)">#initialize</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>
<p class="notice">This class inherits a constructor from <span class='object_link'><a href="Adapter.html#initialize-instance_method" title="Qpid::Proton::Handler::Adapter#initialize (method)">Qpid::Proton::Handler::Adapter</a></span></p>
</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 session and connection</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 42</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='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'>_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'>begin</span>
<span class='id identifier rubyid_delegate'>delegate</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'>_open</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</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='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='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../StopAutoResponse.html" title="Qpid::Proton::StopAutoResponse (class)">StopAutoResponse</a></span></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'>_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='id identifier rubyid_delegate_error'>delegate_error</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'>_error</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</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_condition'>condition</span>
<span class='kw'>begin</span>
<span class='id identifier rubyid_delegate'>delegate</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'>_close</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</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_close'>close</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_active?'>local_active?</span>
<span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../StopAutoResponse.html" title="Qpid::Proton::StopAutoResponse (class)">StopAutoResponse</a></span></span>
<span class='kw'>end</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">
140
141
142
143
144
145</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 140</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='kw'>return</span> <span class='kw'>unless</span> <span class='lparen'>(</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='rparen'>)</span>
<span class='kw'>if</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_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_credit_window'>credit_window</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_credit_window'>credit_window</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_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_credit_window'>credit_window</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, *args)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
26
27
28</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 26</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='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
<span class='id identifier rubyid_forward'>forward</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>or</span> <span class='id identifier rubyid_forward'>forward</span><span class='lparen'>(</span><span class='symbol'>:on_unhandled</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</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, context)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
30
31
32
33
34
35
36</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 30</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_context'>context</span><span class='rparen'>)</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_forward'>forward</span><span class='lparen'>(</span><span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_forward'>forward</span><span class='lparen'>(</span><span class='symbol'>:on_error</span><span class='comma'>,</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='id identifier rubyid_forward'>forward</span><span class='lparen'>(</span><span class='symbol'>:on_unhandled</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span> <span class='comment'># Close the whole connection on an un-handled error
</span>
<span class='id identifier rubyid_context'>context</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_context'>context</span><span class='period'>.</span><span class='id identifier rubyid_condition'>condition</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="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">
38</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 38</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_container_start</span><span class='comma'>,</span> <span class='id identifier rubyid_container'>container</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">
39</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 39</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_container_stop</span><span class='comma'>,</span> <span class='id identifier rubyid_container'>container</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">
98
99
100
101
102
103
104
105
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</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 98</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_delivery_abort</span><span class='comma'>,</span> <span class='id identifier rubyid_d'>d</span><span class='rparen'>)</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='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_receiver'>receiver</span><span class='period'>.</span><span class='id identifier rubyid_auto_accept'>auto_accept</span>
<span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_release'>release</span> <span class='comment'># Auto release after close
</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_d'>d</span><span class='comma'>,</span> <span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</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='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_receiver'>receiver</span><span class='period'>.</span><span class='id identifier rubyid_auto_accept'>auto_accept</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_d'>d</span><span class='period'>.</span><span class='id identifier rubyid_local_state'>local_state</span> <span class='op'>==</span> <span class='int'>0</span>
<span class='kw'>rescue</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="../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='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_delivery_settle</span><span class='comma'>,</span> <span class='id identifier rubyid_d'>d</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'>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="../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_tracker_accept</span><span class='comma'>,</span> <span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
<span class='kw'>when</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_tracker_reject</span><span class='comma'>,</span> <span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
<span class='kw'>when</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_tracker_release</span><span class='comma'>,</span> <span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
<span class='kw'>when</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_tracker_modify</span><span class='comma'>,</span> <span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span>
<span class='kw'>end</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_delegate'>delegate</span><span class='lparen'>(</span><span class='symbol'>:on_tracker_settle</span><span class='comma'>,</span> <span class='id identifier rubyid_t'>t</span><span class='rparen'>)</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='id identifier rubyid_t'>t</span><span class='period'>.</span><span class='id identifier rubyid_sender'>sender</span><span class='period'>.</span><span class='id identifier rubyid_auto_settle'>auto_settle</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">
134
135
136
137
138</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 134</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_sender'>sender</span> <span class='op'>=</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_sender'>sender</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_sender'>sender</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_sender'>sender</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_sender'>sender</span><span class='period'>.</span><span class='id identifier rubyid_open?'>open?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_sender'>sender</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 local link open</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
96</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 96</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='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_close-instance_method">
#<strong>on_link_remote_close</strong>(event)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
79
80
81
82
83
84
85</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 79</span>
<span class='kw'>def</span> <span class='id identifier rubyid_on_link_remote_close'>on_link_remote_close</span><span class='lparen'>(</span><span class='id identifier rubyid_event'>event</span><span class='rparen'>)</span>
<span class='id identifier rubyid_s'>s</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='period'>.</span><span class='id identifier rubyid_sender?'>sender?</span>
<span class='id identifier rubyid_delegate_error'>delegate_error</span><span class='lparen'>(</span><span class='id identifier rubyid_s'>s</span> <span class='op'>?</span> <span class='symbol'>:on_sender_error</span> <span class='op'>:</span> <span class='symbol'>:on_receiver_error</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</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_condition'>condition</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</span><span class='id identifier rubyid_s'>s</span> <span class='op'>?</span> <span class='symbol'>:on_sender_close</span> <span class='op'>:</span> <span class='symbol'>:on_receiver_close</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</span><span class='rparen'>)</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_close'>close</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_local_active?'>local_active?</span>
<span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../StopAutoResponse.html" title="Qpid::Proton::StopAutoResponse (class)">StopAutoResponse</a></span></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">
<p>Link open/close is handled separately because links are split into sender and receiver on the messaging API</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
68
69
70
71
72
73
74
75
76
77</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 68</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'>if</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='period'>.</span><span class='id identifier rubyid_local_active?'>local_active?</span> <span class='comment'># Copy remote terminus data to local
</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_source'>source</span><span class='period'>.</span><span class='id identifier rubyid_replace'>replace</span><span class='lparen'>(</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_remote_source'>remote_source</span><span class='rparen'>)</span><span class='semicolon'>;</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_target'>target</span><span class='period'>.</span><span class='id identifier rubyid_replace'>replace</span><span class='lparen'>(</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_remote_target'>remote_target</span><span class='rparen'>)</span><span class='semicolon'>;</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_delegate'>delegate</span><span class='lparen'>(</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_sender?'>sender?</span> <span class='op'>?</span> <span class='symbol'>:on_sender_open</span> <span class='op'>:</span> <span class='symbol'>:on_receiver_open</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_link'>link</span><span class='rparen'>)</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_open'>open</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_local_uninit?'>local_uninit?</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'>rescue</span> <span class='const'><span class='object_link'><a href="../StopAutoResponse.html" title="Qpid::Proton::StopAutoResponse (class)">StopAutoResponse</a></span></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">
91
92
93</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 91</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_close</span><span class='comma'>,</span> <span class='id identifier rubyid_event'>event</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span> <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../StopAutoResponse.html" title="Qpid::Proton::StopAutoResponse (class)">StopAutoResponse</a></span></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">
87
88
89</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/handler/messaging_adapter.rb', line 87</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='period'>.</span><span class='id identifier rubyid_context'>context</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Wed Nov 11 12:57:53 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>