blob: 40cfc82144ad51c4dddc57412d024a8b21477396 [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::Link
&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::Link";
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 (L)</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">Link</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::Link
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName"><span class='object_link'><a href="Endpoint.html" title="Qpid::Proton::Endpoint (class)">Endpoint</a></span></span>
<ul class="fullTree">
<li>Object</li>
<li class="next"><span class='object_link'><a href="Endpoint.html" title="Qpid::Proton::Endpoint (class)">Endpoint</a></span></li>
<li class="next">Qpid::Proton::Link</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/core/link.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>The base for both Sender and Receiver, providing common functionality between both ends.</p>
<p>A Link has a single parent Qpid::Proton::Session instance.</p>
</div>
</div>
<div class="tags">
</div><div id="subclasses">
<h2>Direct Known Subclasses</h2>
<p class="children"><span class='object_link'><a href="Receiver.html" title="Qpid::Proton::Receiver (class)">Receiver</a></span>, <span class='object_link'><a href="Sender.html" title="Qpid::Proton::Sender (class)">Sender</a></span></p>
</div>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="SND_UNSETTLED-constant" class="">SND_UNSETTLED =
<div class="docstring">
<div class="discussion">
<p>The sender will send all deliveries initially unsettled.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_SND_UNSETTLED</span></pre></dd>
<dt id="SND_SETTLED-constant" class="">SND_SETTLED =
<div class="docstring">
<div class="discussion">
<p>The sender will send all deliveries settled to the receiver.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_SND_SETTLED</span></pre></dd>
<dt id="SND_MIXED-constant" class="">SND_MIXED =
<div class="docstring">
<div class="discussion">
<p>The sender may send a mixture of settled and unsettled deliveries.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_SND_MIXED</span></pre></dd>
<dt id="RCV_FIRST-constant" class="">RCV_FIRST =
<div class="docstring">
<div class="discussion">
<p>The receiver will settle deliveries regardless of what the sender does.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_RCV_FIRST</span></pre></dd>
<dt id="RCV_SECOND-constant" class="">RCV_SECOND =
<div class="docstring">
<div class="discussion">
<p>The receiver will only settle deliveries after the sender settles.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_RCV_SECOND</span></pre></dd>
</dl>
<h3 class="inherited">Constants inherited
from <span class='object_link'><a href="Endpoint.html" title="Qpid::Proton::Endpoint (class)">Endpoint</a></span></h3>
<p class="inherited"><span class='object_link'><a href="Endpoint.html#LOCAL_ACTIVE-constant" title="Qpid::Proton::Endpoint::LOCAL_ACTIVE (constant)">Endpoint::LOCAL_ACTIVE</a></span>, <span class='object_link'><a href="Endpoint.html#LOCAL_CLOSED-constant" title="Qpid::Proton::Endpoint::LOCAL_CLOSED (constant)">Endpoint::LOCAL_CLOSED</a></span>, <span class='object_link'><a href="Endpoint.html#LOCAL_MASK-constant" title="Qpid::Proton::Endpoint::LOCAL_MASK (constant)">Endpoint::LOCAL_MASK</a></span>, <span class='object_link'><a href="Endpoint.html#LOCAL_UNINIT-constant" title="Qpid::Proton::Endpoint::LOCAL_UNINIT (constant)">Endpoint::LOCAL_UNINIT</a></span>, <span class='object_link'><a href="Endpoint.html#REMOTE_ACTIVE-constant" title="Qpid::Proton::Endpoint::REMOTE_ACTIVE (constant)">Endpoint::REMOTE_ACTIVE</a></span>, <span class='object_link'><a href="Endpoint.html#REMOTE_CLOSED-constant" title="Qpid::Proton::Endpoint::REMOTE_CLOSED (constant)">Endpoint::REMOTE_CLOSED</a></span>, <span class='object_link'><a href="Endpoint.html#REMOTE_MASK-constant" title="Qpid::Proton::Endpoint::REMOTE_MASK (constant)">Endpoint::REMOTE_MASK</a></span>, <span class='object_link'><a href="Endpoint.html#REMOTE_UNINIT-constant" title="Qpid::Proton::Endpoint::REMOTE_UNINIT (constant)">Endpoint::REMOTE_UNINIT</a></span></p>
<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="#==-instance_method" title="#== (instance method)">#<strong>==</strong>(other) </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#advance-instance_method" title="#advance (instance method)">#<strong>advance</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Advance the current delivery to the next on the link.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#close-instance_method" title="#close (instance method)">#<strong>close</strong>(error = nil) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Close the local end of the link.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#connection-instance_method" title="#connection (instance method)">#<strong>connection</strong> &#x21d2; Connection </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the parent connection.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#current-instance_method" title="#current (instance method)">#<strong>current</strong> &#x21d2; Delivery </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the current delivery.</p>
</div></span>
</li>
<li class="public deprecated">
<span class="summary_signature">
<a href="#delivery-instance_method" title="#delivery (instance method)">#<strong>delivery</strong>(tag) </a>
</span>
<span class="deprecated note title">deprecated</span>
<span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
<p>use <span class='object_link'><a href="Sender.html#send-instance_method" title="Qpid::Proton::Sender#send (method)">Sender#send</a></span></p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#drained-instance_method" title="#drained (instance method)">#<strong>drained</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Drains excess credit.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#error-instance_method" title="#error (instance method)">#<strong>error</strong> &#x21d2; Error </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns additional error information.</p>
</div></span>
</li>
<li class="public deprecated">
<span class="summary_signature">
<a href="#next-instance_method" title="#next (instance method)">#<strong>next</strong>(state_mask) </a>
</span>
<span class="deprecated note title">deprecated</span>
<span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
<p>use Connection#each_link</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rcv_settle_mode-instance_method" title="#rcv_settle_mode (instance method)">#<strong>rcv_settle_mode</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the local receiver settle mode.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rcv_settle_mode=-instance_method" title="#rcv_settle_mode= (instance method)">#<strong>rcv_settle_mode=</strong>(mode) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the local receiver settle mode.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#remote_source-instance_method" title="#remote_source (instance method)">#<strong>remote_source</strong> &#x21d2; Terminus </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns a representation of the remotely defined source terminus.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#remote_target-instance_method" title="#remote_target (instance method)">#<strong>remote_target</strong> &#x21d2; Terminus </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns a representation of the remotely defined target terminus.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#session-instance_method" title="#session (instance method)">#<strong>session</strong> &#x21d2; Session </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the parent session.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#snd_settle_mode-instance_method" title="#snd_settle_mode (instance method)">#<strong>snd_settle_mode</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the local sender settle mode.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#snd_settle_mode=-instance_method" title="#snd_settle_mode= (instance method)">#<strong>snd_settle_mode=</strong>(mode) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the local sender settle mode.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#source-instance_method" title="#source (instance method)">#<strong>source</strong> &#x21d2; Terminus </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the locally defined source terminus.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#target-instance_method" title="#target (instance method)">#<strong>target</strong> &#x21d2; Terminus </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the locally defined target terminus.</p>
</div></span>
</li>
</ul>
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="Endpoint.html" title="Qpid::Proton::Endpoint (class)">Endpoint</a></span></h3>
<p class="inherited"><span class='object_link'><a href="Endpoint.html#closed%3F-instance_method" title="Qpid::Proton::Endpoint#closed? (method)">#closed?</a></span>, <span class='object_link'><a href="Endpoint.html#local_closed%3F-instance_method" title="Qpid::Proton::Endpoint#local_closed? (method)">#local_closed?</a></span>, <span class='object_link'><a href="Endpoint.html#local_open%3F-instance_method" title="Qpid::Proton::Endpoint#local_open? (method)">#local_open?</a></span>, <span class='object_link'><a href="Endpoint.html#local_uninit%3F-instance_method" title="Qpid::Proton::Endpoint#local_uninit? (method)">#local_uninit?</a></span>, <span class='object_link'><a href="Endpoint.html#open%3F-instance_method" title="Qpid::Proton::Endpoint#open? (method)">#open?</a></span>, <span class='object_link'><a href="Endpoint.html#remote_closed%3F-instance_method" title="Qpid::Proton::Endpoint#remote_closed? (method)">#remote_closed?</a></span>, <span class='object_link'><a href="Endpoint.html#remote_open%3F-instance_method" title="Qpid::Proton::Endpoint#remote_open? (method)">#remote_open?</a></span>, <span class='object_link'><a href="Endpoint.html#remote_uninit%3F-instance_method" title="Qpid::Proton::Endpoint#remote_uninit? (method)">#remote_uninit?</a></span>, <span class='object_link'><a href="Endpoint.html#transport-instance_method" title="Qpid::Proton::Endpoint#transport (method)">#transport</a></span>, <span class='object_link'><a href="Endpoint.html#work_queue-instance_method" title="Qpid::Proton::Endpoint#work_queue (method)">#work_queue</a></span></p>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="==-instance_method">
#<strong>==</strong>(other)
</h3><div class="docstring">
<div class="discussion">
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
355
356
357
358</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 355</span>
<span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
<span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:impl</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span>
<span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pni_address_of'>pni_address_of</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_impl'>impl</span><span class='rparen'>)</span> <span class='op'>==</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pni_address_of'>pni_address_of</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="advance-instance_method">
#<strong>advance</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Advance the current delivery to the next on the link.</p>
<p>For sending links, this operation is used to finish sending message data for the current outgoing delivery and move on to the next outgoing delivery (if any).</p>
<p>For receiving links, this operatoin is used to finish accessing message data from the current incoming delivery and move on to the next incoming delivery (if any).</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>True if the current delivery was changed.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><span class='object_link'><a href="#current-instance_method" title="Qpid::Proton::Link#current (method)">#current</a></span></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
80</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 80</span>
<span class='id identifier rubyid_proton_caller'>proton_caller</span> <span class='symbol'>:advance</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="close-instance_method">
#<strong>close</strong>(error = nil)
</h3><div class="docstring">
<div class="discussion">
<p>Close the local end of the link. The remote end may or may not be closed.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>error</span>
<span class='type'>(<tt><span class='object_link'><a href="Condition.html" title="Qpid::Proton::Condition (class)">Condition</a></span></tt>)</span>
<em class="default">(defaults to: <tt>nil</tt>)</em>
&mdash;
<div class='inline'>
<p>Optional error condition to send with the close.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
56
57
58
59</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 56</span>
<span class='kw'>def</span> <span class='id identifier rubyid_close'>close</span><span class='lparen'>(</span><span class='id identifier rubyid_error'>error</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</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__local_condition'>_local_condition</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span><span class='rparen'>)</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_close'>pn_link_close</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="connection-instance_method">
#<strong>connection</strong> &#x21d2; <tt><span class='object_link'><a href="Connection.html" title="Qpid::Proton::Connection (class)">Connection</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the parent connection.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Connection.html" title="Qpid::Proton::Connection (class)">Connection</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The connection.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
273
274
275</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 273</span>
<span class='kw'>def</span> <span class='id identifier rubyid_connection'>connection</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_session'>session</span><span class='period'>.</span><span class='id identifier rubyid_connection'>connection</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="current-instance_method">
#<strong>current</strong> &#x21d2; <tt><span class='object_link'><a href="Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the current delivery.</p>
<p>Each link maintains a sequence of deliveries in the order they were created, along with a reference to the <strong>current</strong> delivery. All send and receive operations on a link take place on the <strong>current</strong> delivery. If a link has no current delivery, the current delivery is automatically pointed to the <strong>next</strong> delivery created on the link.</p>
<p>Once initialized, the current delivery remains the same until it is changed by advancing, or until it is settled.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The current delivery.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><span class='object_link'><a href="#next-instance_method" title="Qpid::Proton::Link#next (method)">#next</a></span></li>
<li><span class='object_link'><a href="Transfer.html#settle-instance_method" title="Qpid::Proton::Transfer#settle (method)">Transfer#settle</a></span></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
300
301
302</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 300</span>
<span class='kw'>def</span> <span class='id identifier rubyid_current'>current</span>
<span class='const'><span class='object_link'><a href="Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></span><span class='period'>.</span><span class='id identifier rubyid_wrap'><span class='object_link'><a href="Transfer.html#wrap-class_method" title="Qpid::Proton::Transfer.wrap (method)">wrap</a></span></span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_current'>pn_link_current</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="delivery-instance_method">
#<strong>delivery</strong>(tag)
</h3><div class="docstring">
<div class="discussion">
<div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
<p>use <span class='object_link'><a href="Sender.html#send-instance_method" title="Qpid::Proton::Sender#send (method)">Sender#send</a></span></p>
</div></div>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
279
280
281
282</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 279</span>
<span class='kw'>def</span> <span class='id identifier rubyid_delivery'>delivery</span><span class='lparen'>(</span><span class='id identifier rubyid_tag'>tag</span><span class='rparen'>)</span>
<span class='id identifier rubyid_deprecated'>deprecated</span> <span class='id identifier rubyid___method__'>__method__</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Sender#send</span><span class='tstring_end'>&quot;</span></span>
<span class='const'><span class='object_link'><a href="Delivery.html" title="Qpid::Proton::Delivery (class)">Delivery</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Delivery.html#initialize-instance_method" title="Qpid::Proton::Delivery#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_delivery'>pn_delivery</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_tag'>tag</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="drained-instance_method">
#<strong>drained</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Drains excess credit.</p>
<p>When a link is in drain mode, the sender must use all excess credit immediately and release any excess credit back to the receiver if there are no deliveries available to send.</p>
<p>When invoked on a Sender that is in drain mode, this operation will release all excess credit back to the receiver and return the number of credits released back to the sender. If the link is not in drain mode, this operation is a noop.</p>
<p>When invoked on a Receiver, this operation will return and reset the number of credits the sender has released back to it.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>The number of credits drained.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
197</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 197</span>
<span class='id identifier rubyid_proton_caller'>proton_caller</span> <span class='symbol'>:drained</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="error-instance_method">
#<strong>error</strong> &#x21d2; <tt><span class='object_link'>Error</span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns additional error information.</p>
<p>Whenever a link operation fails (i.e., returns an error code) additional error details can be obtained from this method. Ther error object that is returned may also be used to clear the error condition.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'>Error</span></tt>)</span>
&mdash;
<div class='inline'>
<p>The error.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
220
221
222</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 220</span>
<span class='kw'>def</span> <span class='id identifier rubyid_error'>error</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_error'>pn_link_error</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="next-instance_method">
#<strong>next</strong>(state_mask)
</h3><div class="docstring">
<div class="discussion">
<div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
<p>use Connection#each_link</p>
</div></div>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
225
226
227
228</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 225</span>
<span class='kw'>def</span> <span class='kw'>next</span><span class='lparen'>(</span><span class='id identifier rubyid_state_mask'>state_mask</span><span class='rparen'>)</span>
<span class='id identifier rubyid_deprecated'>deprecated</span> <span class='id identifier rubyid___method__'>__method__</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Session#each_link, Connection#each_link</span><span class='tstring_end'>&quot;</span></span>
<span class='kw'>return</span> <span class='const'><span class='object_link'><a href="" title="Qpid::Proton::Link (class)">Link</a></span></span><span class='period'>.</span><span class='id identifier rubyid_wrap'>wrap</span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_next'>pn_link_next</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_state_mask'>state_mask</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rcv_settle_mode-instance_method">
#<strong>rcv_settle_mode</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the local receiver settle mode.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>The local receiver settle mode.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
341
342
343</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 341</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rcv_settle_mode'>rcv_settle_mode</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_rcv_settle_mode'>pn_link_rcv_settle_mode</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rcv_settle_mode=-instance_method">
#<strong>rcv_settle_mode=</strong>(mode)
</h3><div class="docstring">
<div class="discussion">
<p>Sets the local receiver settle mode.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>mode</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>The settle mode.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li>#RCV_FIRST</li>
<li>#RCV_SECOND</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
333
334
335</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 333</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rcv_settle_mode='>rcv_settle_mode=</span><span class='lparen'>(</span><span class='id identifier rubyid_mode'>mode</span><span class='rparen'>)</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_set_rcv_settle_mode'>pn_link_set_rcv_settle_mode</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_mode'>mode</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="remote_source-instance_method">
#<strong>remote_source</strong> &#x21d2; <tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a representation of the remotely defined source terminus.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The terminus.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
249
250
251</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 249</span>
<span class='kw'>def</span> <span class='id identifier rubyid_remote_source'>remote_source</span>
<span class='const'><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_remote_source'>pn_link_remote_source</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="remote_target-instance_method">
#<strong>remote_target</strong> &#x21d2; <tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns a representation of the remotely defined target terminus.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The terminus.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
257
258
259</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 257</span>
<span class='kw'>def</span> <span class='id identifier rubyid_remote_target'>remote_target</span>
<span class='const'><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_remote_target'>pn_link_remote_target</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="session-instance_method">
#<strong>session</strong> &#x21d2; <tt><span class='object_link'><a href="Session.html" title="Qpid::Proton::Session (class)">Session</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the parent session.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Session.html" title="Qpid::Proton::Session (class)">Session</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The session.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
265
266
267</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 265</span>
<span class='kw'>def</span> <span class='id identifier rubyid_session'>session</span>
<span class='const'><span class='object_link'><a href="Session.html" title="Qpid::Proton::Session (class)">Session</a></span></span><span class='period'>.</span><span class='id identifier rubyid_wrap'>wrap</span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_session'>pn_link_session</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="snd_settle_mode-instance_method">
#<strong>snd_settle_mode</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the local sender settle mode.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>The local sender settle mode.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li><span class='object_link'><a href="#snd_settle_mode-instance_method" title="Qpid::Proton::Link#snd_settle_mode (method)">#snd_settle_mode</a></span></li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
322
323
324</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 322</span>
<span class='kw'>def</span> <span class='id identifier rubyid_snd_settle_mode'>snd_settle_mode</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_snd_settle_mode'>pn_link_snd_settle_mode</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="snd_settle_mode=-instance_method">
#<strong>snd_settle_mode=</strong>(mode)
</h3><div class="docstring">
<div class="discussion">
<p>Sets the local sender settle mode.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>mode</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>The settle mode.</p>
</div>
</li>
</ul>
<p class="tag_title">See Also:</p>
<ul class="see">
<li>#SND_UNSETTLED</li>
<li>#SND_SETTLED</li>
<li>#SND_MIXED</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
312
313
314</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 312</span>
<span class='kw'>def</span> <span class='id identifier rubyid_snd_settle_mode='>snd_settle_mode=</span><span class='lparen'>(</span><span class='id identifier rubyid_mode'>mode</span><span class='rparen'>)</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_set_snd_settle_mode'>pn_link_set_snd_settle_mode</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_mode'>mode</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="source-instance_method">
#<strong>source</strong> &#x21d2; <tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the locally defined source terminus.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The terminus</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
233
234
235</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 233</span>
<span class='kw'>def</span> <span class='id identifier rubyid_source'>source</span>
<span class='const'><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_source'>pn_link_source</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="target-instance_method">
#<strong>target</strong> &#x21d2; <tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the locally defined target terminus.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>The terminus.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
241
242
243</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/link.rb', line 241</span>
<span class='kw'>def</span> <span class='id identifier rubyid_target'>target</span>
<span class='const'><span class='object_link'><a href="Terminus.html" title="Qpid::Proton::Terminus (class)">Terminus</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_link_target'>pn_link_target</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</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: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>