<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
  Class: Qpid::Proton::Transport
  
    &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::Transport";
  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 (T)</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">Transport</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::Transport
  
  <span class="deprecated note title">Deprecated</span>
  
</h1>
<div class="box_info">
  
  <dl>
    <dt>Inherits:</dt>
    <dd>
      <span class="inheritName">Object</span>
      
        <ul class="fullTree">
          <li>Object</li>
          
            <li class="next">Qpid::Proton::Transport</li>
          
        </ul>
        <a href="#" class="inheritanceTree">show all</a>
      
    </dd>
  </dl>
  

  
  
  
  
  

  

  
  <dl>
    <dt>Defined in:</dt>
    <dd>lib/core/transport.rb</dd>
  </dl>
  
</div>

<h2>Overview</h2><div class="docstring">
  <div class="discussion">
    <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
<p>all important features are available from #Connection</p>
</div></div>


  </div>
</div>
<div class="tags">
  

</div>
  
    <h2>
      Constant Summary
      <small><a href="#" class="constants_summary_toggle">collapse</a></small>
    </h2>

    <dl class="constants">
      
        <dt id="TRACE_OFF-constant" class="">TRACE_OFF =
          <div class="docstring">
  <div class="discussion">
    
<p>Turn logging off entirely.</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_TRACE_OFF</span></pre></dd>
      
        <dt id="TRACE_RAW-constant" class="">TRACE_RAW =
          <div class="docstring">
  <div class="discussion">
    
<p>Log raw binary data into/out of the transport.</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_TRACE_RAW</span></pre></dd>
      
        <dt id="TRACE_FRM-constant" class="">TRACE_FRM =
          <div class="docstring">
  <div class="discussion">
    
<p>Log frames into/out of the transport.</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_TRACE_FRM</span></pre></dd>
      
        <dt id="TRACE_DRV-constant" class="">TRACE_DRV =
          <div class="docstring">
  <div class="discussion">
    
<p>Log driver related events; i.e., initialization, end of stream, etc.</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_TRACE_DRV</span></pre></dd>
      
    </dl>
  







  
    <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="#bind-instance_method" title="#bind (instance method)">#<strong>bind</strong>(connection)  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Binds to the given connection.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#close_head-instance_method" title="#close_head (instance method)">#<strong>close_head</strong>  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Indicate that the output has closed.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#close_tail-instance_method" title="#close_tail (instance method)">#<strong>close_tail</strong>  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Indicate that the input has reached EOS (end of stream).</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#condition-instance_method" title="#condition (instance method)">#<strong>condition</strong>  &#x21d2; Condition<sup>?</sup> </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Transport error condition or nil if there is no error.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#condition=-instance_method" title="#condition= (instance method)">#<strong>condition=</strong>(c)  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Set the error condition for the transport.</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<sup>?</sup> </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Return the AMQP connection associated with the transport.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(impl = Cproton.pn_transport)  &#x21d2; Transport </a>
    

    
  </span>
  
  
    <span class="note title constructor">constructor</span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Creates a new transport instance.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#log-instance_method" title="#log (instance method)">#<strong>log</strong>(message)  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Log a message to the transport&#39;s logging mechanism.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#peek-instance_method" title="#peek (instance method)">#<strong>peek</strong>(size)  &#x21d2; String </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Returns the specified number of bytes from the transport&#39;s buffers.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#pop-instance_method" title="#pop (instance method)">#<strong>pop</strong>(size)  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Removes the specified number of bytes from the pending output queue following the transport&#39;s head pointer.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#process-instance_method" title="#process (instance method)">#<strong>process</strong>(size)  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Process input data following the tail pointer.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#push-instance_method" title="#push (instance method)">#<strong>push</strong>(data)  &#x21d2; Integer </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Pushes the supplied bytes into the tail of the transport.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#quiesced%3F-instance_method" title="#quiesced? (instance method)">#<strong>quiesced?</strong>  &#x21d2; Boolean </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Returns whether the transport has any buffered data.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#sasl-instance_method" title="#sasl (instance method)">#<strong>sasl</strong>  &#x21d2; SASL </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Create, or return existing, SSL object for the transport.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#set_server-instance_method" title="#set_server (instance method)">#<strong>set_server</strong>  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Set server mode for this tranport - enables protocol detection and server-side authentication for incoming connections.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#ssl-instance_method" title="#ssl (instance method)">#<strong>ssl</strong>(domain = nil, session_details = nil)  &#x21d2; SSL </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Creates, or returns an existing, SSL object for the transport.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#tick-instance_method" title="#tick (instance method)">#<strong>tick</strong>(now)  &#x21d2; Integer </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Process any pending transport timer events.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#trace-instance_method" title="#trace (instance method)">#<strong>trace</strong>(level)  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Updates the transports trace flags.</p>
</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#unbind-instance_method" title="#unbind (instance method)">#<strong>unbind</strong>  </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>
<p>Unbinds from the previous connection.</p>
</div></span>
  
</li>

      
    </ul>
  


  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  <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>(impl = Cproton.pn_transport)  &#x21d2; <tt><span class='object_link'><a href="" title="Qpid::Proton::Transport (class)">Transport</a></span></tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Creates a new transport instance.</p>


  </div>
</div>
<div class="tags">
  

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


171
172
173
174
175</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 171</span>

<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_impl'>impl</span> <span class='op'>=</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport'>pn_transport</span><span class='rparen'>)</span>
  <span class='ivar'>@impl</span> <span class='op'>=</span> <span class='id identifier rubyid_impl'>impl</span>
  <span class='ivar'>@ssl</span> <span class='op'>=</span> <span class='kw'>nil</span>
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_store_instance'>store_instance</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='symbol'>:pn_transport_attachments</span><span class='rparen'>)</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="bind-instance_method">
  
    #<strong>bind</strong>(connection)  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Binds to the given connection.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>connection</span>
      
      
        <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">


204
205
206</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 204</span>

<span class='kw'>def</span> <span class='id identifier rubyid_bind'>bind</span><span class='lparen'>(</span><span class='id identifier rubyid_connection'>connection</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_bind'>pn_transport_bind</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_impl'>impl</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="close_head-instance_method">
  
    #<strong>close_head</strong>  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Indicate that the output has closed.</p>

<p>Tells the transport that no more output will be popped.</p>


  </div>
</div>
<div class="tags">
  
<p class="tag_title">Raises:</p>
<ul class="raise">
  
    <li>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="TransportError.html" title="Qpid::Proton::TransportError (class)">TransportError</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>If an error occurs.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


311
312
313</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 311</span>

<span class='kw'>def</span> <span class='id identifier rubyid_close_head'>close_head</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_close_head'>pn_transport_close_head</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="close_tail-instance_method">
  
    #<strong>close_tail</strong>  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Indicate that the input has reached EOS (end of stream).</p>

<p>This tells the transport that no more input will be forthcoming.</p>


  </div>
</div>
<div class="tags">
  
<p class="tag_title">Raises:</p>
<ul class="raise">
  
    <li>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="TransportError.html" title="Qpid::Proton::TransportError (class)">TransportError</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>If an error occurs.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


277
278
279</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 277</span>

<span class='kw'>def</span> <span class='id identifier rubyid_close_tail'>close_tail</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_close_tail'>pn_transport_close_tail</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="condition-instance_method">
  
    #<strong>condition</strong>  &#x21d2; <tt><span class='object_link'><a href="Condition.html" title="Qpid::Proton::Condition (class)">Condition</a></span></tt><sup>?</sup> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Returns transport error condition or nil if there is no error.</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="Condition.html" title="Qpid::Proton::Condition (class)">Condition</a></span></tt>, <tt>nil</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>transport error condition or nil if there is no error.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


190
191
192</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 190</span>

<span class='kw'>def</span> <span class='id identifier rubyid_condition'>condition</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_convert'><span class='object_link'><a href="Condition.html#convert-class_method" title="Qpid::Proton::Condition.convert (method)">convert</a></span></span><span class='lparen'>(</span><span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_condition'>pn_transport_condition</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="condition=-instance_method">
  
    #<strong>condition=</strong>(c)  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Set the error condition for the transport.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>c</span>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="Condition.html" title="Qpid::Proton::Condition (class)">Condition</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The condition to set</p>
</div>
      
    </li>
  
</ul>


</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


196
197
198</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 196</span>

<span class='kw'>def</span> <span class='id identifier rubyid_condition='>condition=</span><span class='lparen'>(</span><span class='id identifier rubyid_c'>c</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='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_condition'>pn_transport_condition</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</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><sup>?</sup> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Return the AMQP connection associated with the transport.</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>, <tt>nil</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The bound connection, or nil.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


231
232
233</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 231</span>

<span class='kw'>def</span> <span class='id identifier rubyid_connection'>connection</span>
  <span class='const'><span class='object_link'><a href="Connection.html" title="Qpid::Proton::Connection (class)">Connection</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_transport_connection'>pn_transport_connection</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="log-instance_method">
  
    #<strong>log</strong>(message)  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Log a message to the transport&#39;s logging mechanism.</p>

<p>This can be using in a debugging scenario as the message will be prepended with the transport&#39;s identifier.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>message</span>
      
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The message to be logged.</p>
</div>
      
    </li>
  
</ul>


</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


242
243
244</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 242</span>

<span class='kw'>def</span> <span class='id identifier rubyid_log'>log</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_log'>pn_transport_log</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="peek-instance_method">
  
    #<strong>peek</strong>(size)  &#x21d2; <tt>String</tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Returns the specified number of bytes from the transport&#39;s buffers.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>size</span>
      
      
        <span class='type'>(<tt>Integer</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The number of bytes to return.</p>
</div>
      
    </li>
  
</ul>

<p class="tag_title">Returns:</p>
<ul class="return">
  
    <li>
      
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The data peeked.</p>
</div>
      
    </li>
  
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
  
    <li>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="TransportError.html" title="Qpid::Proton::TransportError (class)">TransportError</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>If an error occurs.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


289
290
291
292
293
294</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 289</span>

<span class='kw'>def</span> <span class='id identifier rubyid_peek'>peek</span><span class='lparen'>(</span><span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
  <span class='id identifier rubyid_cd'>cd</span><span class='comma'>,</span> <span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_peek'>pn_transport_peek</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
  <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_cd'>cd</span> <span class='op'>==</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'>Error</span><span class='op'>::</span><span class='const'>EOS</span>
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="TransportError.html" title="Qpid::Proton::TransportError (class)">TransportError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>if</span> <span class='id identifier rubyid_cd'>cd</span> <span class='op'>&lt;</span> <span class='op'>-</span><span class='int'>1</span>
  <span class='id identifier rubyid_out'>out</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="pop-instance_method">
  
    #<strong>pop</strong>(size)  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Removes the specified number of bytes from the pending output queue following the transport&#39;s head pointer.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>size</span>
      
      
        <span class='type'>(<tt>Integer</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The number of bytes to remove.</p>
</div>
      
    </li>
  
</ul>


</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


301
302
303</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 301</span>

<span class='kw'>def</span> <span class='id identifier rubyid_pop'>pop</span><span class='lparen'>(</span><span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_pop'>pn_transport_pop</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="process-instance_method">
  
    #<strong>process</strong>(size)  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Process input data following the tail pointer.</p>

<p>Calling this function will cause the transport to consume the specified number of bytes of input occupying the free space following the tail pointer. It may also change the value for #tail, as well as the amount of free space reported by #capacity.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>size</span>
      
      
        <span class='type'>(<tt>Integer</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The number of bytes to process.</p>
</div>
      
    </li>
  
</ul>

<p class="tag_title">Raises:</p>
<ul class="raise">
  
    <li>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="TransportError.html" title="Qpid::Proton::TransportError (class)">TransportError</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>If an error occurs.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


267
268
269</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 267</span>

<span class='kw'>def</span> <span class='id identifier rubyid_process'>process</span><span class='lparen'>(</span><span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_process'>pn_transport_process</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="push-instance_method">
  
    #<strong>push</strong>(data)  &#x21d2; <tt>Integer</tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Pushes the supplied bytes into the tail of the transport.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>data</span>
      
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The bytes to be pushed.</p>
</div>
      
    </li>
  
</ul>

<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 bytes pushed.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


252
253
254</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 252</span>

<span class='kw'>def</span> <span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_push'>pn_transport_push</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="quiesced?-instance_method">
  
    #<strong>quiesced?</strong>  &#x21d2; <tt>Boolean</tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Returns whether the transport has any buffered data.</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 transport has no buffered data.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


185
186
187</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 185</span>

<span class='kw'>def</span> <span class='id identifier rubyid_quiesced?'>quiesced?</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_quiesced'>pn_transport_quiesced</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="sasl-instance_method">
  
    #<strong>sasl</strong>  &#x21d2; <tt><span class='object_link'><a href="SASL.html" title="Qpid::Proton::SASL (class)">SASL</a></span></tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Create, or return existing, SSL object for the transport.</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="SASL.html" title="Qpid::Proton::SASL (class)">SASL</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>the SASL object</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


336
337
338</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 336</span>

<span class='kw'>def</span> <span class='id identifier rubyid_sasl'>sasl</span>
  <span class='const'><span class='object_link'><a href="SASL.html" title="Qpid::Proton::SASL (class)">SASL</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="set_server-instance_method">
  
    #<strong>set_server</strong>  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Set server mode for this tranport - enables protocol detection and server-side authentication for incoming connections</p>


  </div>
</div>
<div class="tags">
  

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


179</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 179</span>

<span class='kw'>def</span> <span class='id identifier rubyid_set_server'>set_server</span><span class='lparen'>(</span><span class='rparen'>)</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_set_server'>pn_transport_set_server</span><span class='lparen'>(</span><span class='ivar'>@impl</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="ssl-instance_method">
  
    #<strong>ssl</strong>(domain = nil, session_details = nil)  &#x21d2; <tt><span class='object_link'><a href="SSL.html" title="Qpid::Proton::SSL (class)">SSL</a></span></tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Creates, or returns an existing, SSL object for the transport.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>domain</span>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="SSLDomain.html" title="Qpid::Proton::SSLDomain (class)">SSLDomain</a></span></tt>)</span>
      
      
        <em class="default">(defaults to: <tt>nil</tt>)</em>
      
      
        &mdash;
        <div class='inline'>
<p>The SSL domain.</p>
</div>
      
    </li>
  
    <li>
      
        <span class='name'>session_details</span>
      
      
        <span class='type'>(<tt>SSLDetails</tt>)</span>
      
      
        <em class="default">(defaults to: <tt>nil</tt>)</em>
      
      
        &mdash;
        <div class='inline'>
<p>The SSL session details.</p>
</div>
      
    </li>
  
</ul>

<p class="tag_title">Returns:</p>
<ul class="return">
  
    <li>
      
      
        <span class='type'>(<tt><span class='object_link'><a href="SSL.html" title="Qpid::Proton::SSL (class)">SSL</a></span></tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The SSL object.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


347
348
349</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 347</span>

<span class='kw'>def</span> <span class='id identifier rubyid_ssl'>ssl</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_session_details'>session_details</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
  <span class='ivar'>@ssl</span> <span class='op'>||=</span> <span class='const'><span class='object_link'><a href="SSL.html" title="Qpid::Proton::SSL (class)">SSL</a></span></span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_domain'>domain</span><span class='comma'>,</span> <span class='id identifier rubyid_session_details'>session_details</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="tick-instance_method">
  
    #<strong>tick</strong>(now)  &#x21d2; <tt>Integer</tt> 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Process any pending transport timer events.</p>

<p>This method should be called after all pending input has been processed by the transport (see #input), and before generating output (see #output).</p>

<p>It returns the deadline for the next pending timer event, if any art present.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>now</span>
      
      
        <span class='type'>(<tt>Time</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The timestamp.</p>
</div>
      
    </li>
  
</ul>

<p class="tag_title">Returns:</p>
<ul class="return">
  
    <li>
      
      
        <span class='type'>(<tt>Integer</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>If non-zero, the expiration time of the next pending timer event for the transport. The caller must invoke #tick again at least once at or before this deadline occurs.</p>
</div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


330
331
332</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 330</span>

<span class='kw'>def</span> <span class='id identifier rubyid_tick'>tick</span><span class='lparen'>(</span><span class='id identifier rubyid_now'>now</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_tick'>pn_transport_tick</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_now'>now</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="trace-instance_method">
  
    #<strong>trace</strong>(level)  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Updates the transports trace flags.</p>


  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>level</span>
      
      
        <span class='type'>(<tt>Integer</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>
<p>The trace level.</p>
</div>
      
    </li>
  
</ul>


  <p class="tag_title">See Also:</p>
  <ul class="see">
    
      <li><span class='object_link'><a href="#TRACE_OFF-constant" title="Qpid::Proton::Transport::TRACE_OFF (constant)">TRACE_OFF</a></span></li>
    
      <li><span class='object_link'><a href="#TRACE_RAW-constant" title="Qpid::Proton::Transport::TRACE_RAW (constant)">TRACE_RAW</a></span></li>
    
      <li><span class='object_link'><a href="#TRACE_FRM-constant" title="Qpid::Proton::Transport::TRACE_FRM (constant)">TRACE_FRM</a></span></li>
    
      <li><span class='object_link'><a href="#TRACE_DRV-constant" title="Qpid::Proton::Transport::TRACE_DRV (constant)">TRACE_DRV</a></span></li>
    
  </ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


223
224
225</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 223</span>

<span class='kw'>def</span> <span class='id identifier rubyid_trace'>trace</span><span class='lparen'>(</span><span class='id identifier rubyid_level'>level</span><span class='rparen'>)</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_trace'>pn_transport_trace</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='id identifier rubyid_level'>level</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="unbind-instance_method">
  
    #<strong>unbind</strong>  
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    
<p>Unbinds from the previous connection.</p>


  </div>
</div>
<div class="tags">
  

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


210
211
212</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/core/transport.rb', line 210</span>

<span class='kw'>def</span> <span class='id identifier rubyid_unbind'>unbind</span>
  <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_transport_unbind'>pn_transport_unbind</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>

</div>

      <div id="footer">
  Generated on Fri Nov  5 10:34:38 2021 by
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
  0.9.26 (ruby-3.0.2).
</div>

    </div>
  </body>
</html>