<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Module: AMQP</title>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />

<script type="text/javascript" charset="utf-8">
  relpath = '';
  if (relpath != '') 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>
    <script type="text/javascript" charset="utf-8">
      if (window.top.frames.main) document.body.className = 'frames';
    </script>
    
    <div id="header">
      <div id="menu">
  
    <a href="_index.html">Index (A)</a> &raquo; 
    
    
    <span class="title">AMQP</span>
  
  
  <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
</div>

      <div id="search">
  <a id="class_list_link" href="#">Class List</a>
  <a id="method_list_link" href="#">Method List</a>
  <a id ="file_list_link" href="#">File List</a>
</div>

      <div class="clear"></div>
    </div>
    
    <iframe id="search_frame"></iframe>
    
    <div id="content"><h1>Module: AMQP
  
  
  
</h1>

<dl class="box">
  
  
    
  
    
  
  
  
    <dt class="r1 last">Defined in:</dt>
    <dd class="r1 last">lib/amqp/connection.rb<span class="defines">,<br />
  lib/amqp/queue.rb,<br /> lib/amqp/client.rb,<br /> lib/amqp/header.rb,<br /> lib/amqp/version.rb,<br /> lib/amqp/channel.rb,<br /> lib/amqp/exchange.rb,<br /> lib/amqp/exceptions.rb,<br /> lib/amqp/basic_client.rb,<br /> lib/amqp/deprecated/rpc.rb,<br /> lib/amqp/deprecated/fork.rb,<br /> lib/amqp/deprecated/logger.rb</span>
</dd>
  
</dl>
<div class="clear"></div>

<h2>Overview</h2><div class="docstring">
  <div class="discussion">
    <p>Top-level namespace of amqp gem. Please refer to &#8220;See also&#8221; section below.</p>

  </div>
</div>
<div class="tags">
  
  <h3>See Also:</h3>
  <ul class="see">
    
      <li><span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span></li>
    
      <li><span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span></li>
    
      <li><span class='object_link'><a href="AMQP/Channel.html" title="AMQP::Channel (class)">Channel</a></span></li>
    
      <li><span class='object_link'><a href="AMQP/Exchange.html" title="AMQP::Exchange (class)">Exchange</a></span></li>
    
      <li><span class='object_link'><a href="AMQP/Queue.html" title="AMQP::Queue (class)">Queue</a></span></li>
    
  </ul>

</div><h2>Defined Under Namespace</h2>
<p class="children">
   
    
      <strong class="modules">Modules:</strong> <span class='object_link'><a href="AMQP/Client.html" title="AMQP::Client (module)">Client</a></span>
    
   
    
      <strong class="classes">Classes:</strong> <span class='object_link'><a href="AMQP/BasicClient.html" title="AMQP::BasicClient (class)">BasicClient</a></span>, <span class='object_link'><a href="AMQP/Channel.html" title="AMQP::Channel (class)">Channel</a></span>, <span class='object_link'><a href="AMQP/ChannelClosedError.html" title="AMQP::ChannelClosedError (class)">ChannelClosedError</a></span>, <span class='object_link'><a href="AMQP/Error.html" title="AMQP::Error (class)">Error</a></span>, <span class='object_link'><a href="AMQP/Exchange.html" title="AMQP::Exchange (class)">Exchange</a></span>, <span class='object_link'><a href="AMQP/Header.html" title="AMQP::Header (class)">Header</a></span>, <span class='object_link'><a href="AMQP/IncompatibleOptionsError.html" title="AMQP::IncompatibleOptionsError (class)">IncompatibleOptionsError</a></span>, <span class='object_link'><a href="AMQP/Logger.html" title="AMQP::Logger (class)">Logger</a></span>, <span class='object_link'><a href="AMQP/Queue.html" title="AMQP::Queue (class)">Queue</a></span>, <span class='object_link'><a href="AMQP/RPC.html" title="AMQP::RPC (class)">RPC</a></span>
    
  
</p>

  <h2>Constant Summary</h2>
  
    <dl class="constants">
      
        <dt id="VERSION-constant" class="">VERSION =
          
        </dt>
        <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0.8.0.pre</span><span class='tstring_end'>'</span></span></pre></dd>
      
    </dl>
  



  
    <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="#closing%3F-class_method" title="closing? (class method)">+ (Boolean) <strong>closing?</strong> </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>Indicates that default connection is closing.</p></div></span>
  
</li>

      
        <li class="public deprecated">
  <span class="summary_signature">
    
      <a href="#conn-class_method" title="conn (class method)">+ (Object) <strong>conn</strong> </a>
    

    
  </span>
  
  
  
  
  <span class="deprecated note title">Deprecated</span>
  

  
    <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
  
</li>

      
        <li class="public deprecated">
  <span class="summary_signature">
    
      <a href="#conn%3D-class_method" title="conn= (class method)">+ (Object) <strong>conn=</strong>(value) </a>
    

    
  </span>
  
  
  
  
  <span class="deprecated note title">Deprecated</span>
  

  
    <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#connect-class_method" title="connect (class method)">+ (Object) <strong>connect</strong>(connection_options_or_string = {}, other_options = {}, &amp;block) </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>Connects to <span class="caps">AMQP</span> broker and yields connection object to the block as soon
as connection is considered open.</p></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#connection-class_method" title="connection (class method)">+ (Object) <strong>connection</strong> </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>Default connection.</p></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#connection%3D-class_method" title="connection= (class method)">+ (Object) <strong>connection=</strong>(value) </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'></div></span>
  
</li>

      
        <li class="public deprecated">
  <span class="summary_signature">
    
      <a href="#fork-class_method" title="fork (class method)">+ (Object) <strong>fork</strong>(workers) </a>
    

    
  </span>
  
  
  
  
  <span class="deprecated note title">Deprecated</span>
  

  
    <span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#logging-class_method" title="logging (class method)">+ (Object) <strong>logging</strong> </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#logging%3D-class_method" title="logging= (class method)">+ (Object) <strong>logging=</strong>(value) </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#run-class_method" title="run (class method)">+ (Object) <strong>run</strong>(*args, &amp;block) </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>Alias for <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span>.</p></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#settings-class_method" title="settings (class method)">+ (Hash) <strong>settings</strong> </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>If default connection is set up, returns settings it was set up with.</p></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#start-class_method" title="start (class method)">+ (Object) <strong>start</strong>(connection_options_or_string = {}, other_options = {}, &amp;block) </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>Starts EventMachine event loop unless it is already running and connects
to <span class="caps">AMQP</span> broker using <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span>.</p></div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#stop-class_method" title="stop (class method)">+ (Object) <strong>stop</strong>(reply_code = 200, reply_text = &quot;Goodbye&quot;, &amp;block) </a>
    

    
  </span>
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'><p>Properly closes default <span class="caps">AMQP</span> connection and then underlying <span class="caps">TCP</span> connection.</p></div></span>
  
</li>

      
    </ul>
  



  <div id="class_method_details" class="method_details_list">
    <h2>Class Method Details</h2>
    
    
      <div class="method_details first">
  <p class="signature first" id="closing?-class_method">
  
    + (<tt>Boolean</tt>) <strong>closing?</strong> 
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>Indicates that default connection is closing.</p>

  </div>
</div>
<div class="tags">
  <h3>Returns:</h3>
<ul class="return">
  
    <li>
      
        <span class='type'>(<tt>Boolean</tt>)</span>
      
      
      
      
    </li>
  
</ul>

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


74
75
76</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 74</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id closing?'>closing?</span>
  <span class='ivar'>@connection</span><span class='period'>.</span><span class='id closing?'>closing?</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="conn-class_method">
  
    + (<tt>Object</tt>) <strong>conn</strong> 
  

  
</p><div class="docstring">
  <div class="discussion">
    <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>
<p>Alias for <span class='object_link'><a href="#connection-class_method" title="AMQP.connection (method)">connection</a></span></p>

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


105
106
107
108</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 105</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id conn'>conn</span>
  <span class='id warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AMQP.conn will be removed in 1.0. Please use AMQP.connection.</span><span class='tstring_end'>&quot;</span></span>
  <span class='ivar'>@connection</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="conn=-class_method">
  
    + (<tt>Object</tt>) <strong>conn=</strong>(value) 
  

  
</p><div class="docstring">
  <div class="discussion">
    <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>
<p>Alias for <span class='object_link'><a href="#connection%3D-class_method" title="AMQP.connection= (method)">connection=</a></span></p>

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


113
114
115
116</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 113</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id conn='>conn=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span>
  <span class='id warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AMQP.conn= will be removed in 1.0. Please use AMQP.connection=(connection).</span><span class='tstring_end'>&quot;</span></span>
  <span class='kw'>self</span><span class='period'>.</span><span class='id connection'>connection</span> <span class='op'>=</span> <span class='id value'>value</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="connect-class_method">
  
    
      <span class="overload">+ (<tt>Object</tt>) <strong>connect</strong>(connection_string, options = {}) </span>
    
      <span class="overload">+ (<tt>Object</tt>) <strong>connect</strong>(connection_options) </span>
    
  

  
</p><div class="docstring">
  <div class="discussion">
    
  <div class="note notetag">
    <strong>Note:</strong> 
    <div class='inline'><p>This method assumes that EventMachine even loop is already running. If it is not the case or you are not sure, we recommend you use <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span> instead. It takes exactly the same parameters.</p></div>
  </div>

<p>Connects to <span class="caps">AMQP</span> broker and yields connection object to the block as soon
as connection is considered open.</p>
<h2>Handling authentication failures</h2>
<p><span class="caps">AMQP</span> 0.9.1 specification dictates that broker closes <span class="caps">TCP</span> connection when it detects that authentication
has failed. However, broker does exactly the same thing when other connection-level exception occurs
so there is no way to guarantee that connection was closed because of authentication failure.</p>
<p>Because of that, <span class="caps">AMQP</span> gem follows Java client example and hints at <em>possibility</em> of authentication failure.
To handle it, pass a callable object (a proc, a lambda, an instance of a class that responds to #call)
with :on_possible_authentication_failure option.</p>

  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.connect with default connection settings</p></div></h4>
      <pre class="example code">
<span class='const'>AMQP</span><span class='period'>.</span><span class='id connect'>connect</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span>
  <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span>
    <span class='comment'># channel is ready: set up your messaging flow by creating exchanges,
</span>    <span class='comment'># queues, binding them together and so on.
</span>  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    
      <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.connect to connect to a public RabbitMQ instance with connection settings given as a hash</p></div></h4>
      <pre class="example code">
<span class='const'>AMQP</span><span class='period'>.</span><span class='id connect'>connect</span><span class='lparen'>(</span><span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>dev.rabbitmq.com</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:username</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>guest</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:password</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>guest</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span>
  <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span>
    <span class='comment'># ...
</span>  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    
      <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.connect to connect to a public RabbitMQ instance with connection settings given as a <span class="caps">URI</span></p></div></h4>
      <pre class="example code">
<span class='const'>AMQP</span><span class='period'>.</span><span class='id connect'>connect</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amqp://guest:guest@dev.rabbitmq.com:5672/</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:on_possible_authentication_failure</span> <span class='op'>=&gt;</span> <span class='const'>Proc</span><span class='period'>.</span><span class='id new'>new</span> <span class='lbrace'>{</span> <span class='id puts'>puts</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Looks like authentication has failed</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span>
  <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span>
    <span class='comment'># ...
</span>  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    
  </div>

  <h3>Overloads:</h3>
  <ul class="overload">
    
      
      <li class="overload_item">
        <span class="signature">+ (<tt>Object</tt>) <strong>connect</strong>(connection_string, options = {}) </span>
        <div class="docstring">
  <div class="discussion">
    <p>Used to pass connection parameters as a connection string</p>

  </div>
</div>
<div class="tags">
  <h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
        <span class='name'>:connection_string</span>
      
      
      
        &mdash;
        <div class='inline'><p><span class="caps">AMQP</span> connection <span class="caps">URI</span>, à la <span class="caps">JDBC</span> connection string. For example: amqp://bus.megacorp.internal:5877/qa</p></div>
      
    </li>
  
</ul>

</div>
      </li>
    
      
      <li class="overload_item">
        <span class="signature">+ (<tt>Object</tt>) <strong>connect</strong>(connection_options) </span>
        <div class="docstring">
  <div class="discussion">
    <p>Used to pass connection options as a Hash.</p>

  </div>
</div>
<div class="tags">
  <h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>:connection_options</span>
      
      
      
        &mdash;
        <div class='inline'><p><span class="caps">AMQP</span> connection options (:host, :port, :username, :vhost, :password)</p></div>
      
    </li>
  
</ul>

</div>
      </li>
    
  </ul>
<h3>Parameters:</h3>
<ul class="param">
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
        <span class='name'>connection_options_or_string</span>
      
      
        <em class="default">(defaults to: <tt>{}</tt>)</em>
      
      
        &mdash;
        <div class='inline'><p>a customizable set of options</p></div>
      
    </li>
  
</ul>

  
    
    
    <h3>Options Hash (<tt>connection_options_or_string</tt>):</h3>
    <ul class="option">
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:host</span>
          <span class="default">
            
              &mdash; default:
              <tt>&quot;localhost&quot;</tt>
            
          </span>
          &mdash; <div class='inline'><p>Host to connect to.</p></div>
        </tr>
      
        <li>
          <span class="type">(<tt>Integer</tt>)</span>
          <span class="name">:port</span>
          <span class="default">
            
              &mdash; default:
              <tt>5672</tt>
            
          </span>
          &mdash; <div class='inline'><p>Port to connect to.</p></div>
        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:vhost</span>
          <span class="default">
            
              &mdash; default:
              <tt>&quot;/&quot;</tt>
            
          </span>
          &mdash; <div class='inline'><p>Virtual host to connect to.</p></div>
        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:username</span>
          <span class="default">
            
              &mdash; default:
              <tt>&quot;guest&quot;</tt>
            
          </span>
          &mdash; <div class='inline'><p>Username to use. Also can be specified as :user.</p></div>
        </tr>
      
        <li>
          <span class="type">(<tt>String</tt>)</span>
          <span class="name">:password</span>
          <span class="default">
            
              &mdash; default:
              <tt>&quot;guest&quot;</tt>
            
          </span>
          &mdash; <div class='inline'><p>Password to use. Also can be specified as :pass.</p></div>
        </tr>
      
        <li>
          <span class="type">(<tt>Hash</tt>)</span>
          <span class="name">:ssl</span>
          <span class="default">
            
          </span>
          &mdash; <div class='inline'><p><span class="caps">TLS</span> (<span class="caps">SSL</span>) parameters to use.</p></div>
        </tr>
      
        <li>
          <span class="type">(<tt>#call</tt>)</span>
          <span class="name">:on_possible_authentication_failure</span>
          <span class="default">
            
          </span>
          &mdash; <div class='inline'><p>A callable object that will be run if authentication fails (see Authentication failure section)</p></div>
        </tr>
      
    </ul>
  
    
    
    
    

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


179
180
181</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 179</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id connect'>connect</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id other_options'>other_options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='const'>Client</span><span class='period'>.</span><span class='id connect'>connect</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span><span class='comma'>,</span> <span class='id other_options'>other_options</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="connection-class_method">
  
    + (<tt>Object</tt>) <strong>connection</strong> 
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>Default connection. When you do not pass connection instance to methods like
<span class='object_link'><a href="AMQP/Channel.html#initialize-instance_method" title="AMQP::Channel#initialize (method)">AMQP::Channel#initialize</a></span>, <span class="caps">AMQP</span> gem will use this default connection.</p>

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


93
94
95</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 93</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id connection'>connection</span>
  <span class='ivar'>@connection</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="connection=-class_method">
  
    + (<tt>Object</tt>) <strong>connection=</strong>(value) 
  

  
</p><div class="docstring">
  <div class="discussion">
    

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


98
99
100</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 98</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id connection='>connection=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span>
  <span class='ivar'>@connection</span> <span class='op'>=</span> <span class='id value'>value</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="fork-class_method">
  
    + (<tt>Object</tt>) <strong>fork</strong>(workers) 
  

  
</p><div class="docstring">
  <div class="discussion">
    <div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'></div></div>


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


6
7
8
9
10
11
12
13
14</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/deprecated/fork.rb', line 6</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id fork'>fork</span><span class='lparen'>(</span><span class='id workers'>workers</span><span class='rparen'>)</span>
  <span class='const'>EM</span><span class='period'>.</span><span class='id fork'>fork</span><span class='lparen'>(</span><span class='id workers'>workers</span><span class='rparen'>)</span> <span class='kw'>do</span>
    <span class='comment'># clean up globals in the fork
</span>    <span class='const'>Thread</span><span class='period'>.</span><span class='id current'>current</span><span class='lbracket'>[</span><span class='symbol'>:mq</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
    <span class='const'>AMQP</span><span class='period'>.</span><span class='id instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>@conn</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>

    <span class='kw'>yield</span>
  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="logging-class_method">
  
    + (<tt>Object</tt>) <strong>logging</strong> 
  

  
</p><div class="docstring">
  <div class="discussion">
    

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


80
81
82</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 80</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id logging'>logging</span>
  <span class='kw'>self</span><span class='period'>.</span><span class='id settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:logging</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="logging=-class_method">
  
    + (<tt>Object</tt>) <strong>logging=</strong>(value) 
  

  
</p><div class="docstring">
  <div class="discussion">
    

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


85
86
87</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 85</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id logging='>logging=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span>
  <span class='kw'>self</span><span class='period'>.</span><span class='id settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:logging</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='op'>!</span><span class='op'>!</span> <span class='id value'>value</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="run-class_method">
  
    + (<tt>Object</tt>) <strong>run</strong>(*args, &amp;block) 
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>Alias for <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span></p>

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


47
48
49</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 47</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id run'>run</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='kw'>self</span><span class='period'>.</span><span class='id start'>start</span><span class='lparen'>(</span><span class='op'>*</span><span class='id args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="settings-class_method">
  
    + (<tt>Hash</tt>) <strong>settings</strong> 
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>If default connection is set up, returns settings it was set up with. Otherwise, returns default settings.</p>

  </div>
</div>
<div class="tags">
  <h3>Returns:</h3>
<ul class="return">
  
    <li>
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
      
      
        &mdash;
        <div class='inline'><p>If default connection is set up, returns settings it was set up with. Otherwise, returns default settings.</p></div>
      
    </li>
  
</ul>

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


185
186
187
188
189
190
191</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 185</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id settings'>settings</span>
  <span class='kw'>if</span> <span class='ivar'>@connection</span>
    <span class='ivar'>@connection</span><span class='period'>.</span><span class='id settings'>settings</span>
  <span class='kw'>else</span>
    <span class='const'>AMQ</span><span class='op'>::</span><span class='const'>Client</span><span class='op'>::</span><span class='const'>Settings</span><span class='period'>.</span><span class='id default'>default</span>
  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="start-class_method">
  
    + (<tt>Object</tt>) <strong>start</strong>(connection_options_or_string = {}, other_options = {}, &amp;block) 
  

  
</p><div class="docstring">
  <div class="discussion">
    <p>Starts EventMachine event loop unless it is already running and connects
to <span class="caps">AMQP</span> broker using <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span>. It is generally a good idea to
start EventMachine event loop in a separate thread and use <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span>.
That said, for applications that do not publish or handle large volumes of
data <span class='object_link'><a href="#start-class_method" title="AMQP.start (method)">start</a></span> works very well and it&#8217;s use is not discouraged.</p>
<p>See <span class='object_link'><a href="#connect-class_method" title="AMQP.connect (method)">connect</a></span> for information about arguments this method takes and
information about relevant topics such as authentication failure handling.</p>

  </div>
</div>
<div class="tags">
  
  <div class="examples">
    <h3>Examples:</h3>
    
      <h4><div class='inline'><p>Using <span class="caps">AMQP</span>.start to connect to <span class="caps">AMQP</span> broker, EventMachine loop isn&#8217;t yet running</p></div></h4>
      <pre class="example code"><span class='const'>AMQP</span><span class='period'>.</span><span class='id start'>start</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id connection'>connection</span><span class='op'>|</span>
  <span class='comment'># default is to connect to localhost:5672, to root (&quot;/&quot;) vhost as guest/guest
</span>
  <span class='comment'># this block never exits unless either AMQP.stop or EM.stop
</span>  <span class='comment'># is called.
</span>
  <span class='const'>AMQP</span><span class='op'>::</span><span class='const'>Channel</span><span class='lparen'>(</span><span class='id connection'>connection</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id channel'>channel</span><span class='op'>|</span>
    <span class='id channel'>channel</span><span class='period'>.</span><span class='id queue'>queue</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:auto_delete</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id bind'>bind</span><span class='lparen'>(</span><span class='id channel'>channel</span><span class='period'>.</span><span class='id fanout'>fanout</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amq.fanout</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id subscribe'>subscribe</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id headers'>headers</span><span class='comma'>,</span> <span class='id payload'>payload</span><span class='op'>|</span>
      <span class='comment'># handle deliveries here
</span>    <span class='kw'>end</span>
  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    
  </div>

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


38
39
40
41
42
43</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 38</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id start'>start</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id other_options'>other_options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='const'>EM</span><span class='period'>.</span><span class='id run'>run</span> <span class='kw'>do</span>
    <span class='ivar'>@connection</span> <span class='op'>||=</span> <span class='id connect'>connect</span><span class='lparen'>(</span><span class='id connection_options_or_string'>connection_options_or_string</span><span class='comma'>,</span> <span class='id other_options'>other_options</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
    <span class='ivar'>@connection</span>
  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <p class="signature " id="stop-class_method">
  
    + (<tt>Object</tt>) <strong>stop</strong>(reply_code = 200, reply_text = &quot;Goodbye&quot;, &amp;block) 
  

  
</p><div class="docstring">
  <div class="discussion">
    
  <div class="note notetag">
    <strong>Note:</strong> 
    <div class='inline'><p>If default connection was never estabilished or is in the closing state already,
this method has no effect.</p></div>
  </div>

<p>Properly closes default <span class="caps">AMQP</span> connection and then underlying <span class="caps">TCP</span> connection.
Pass it a block if you want a piece of code to be run once default connection
is successfully closed.</p>

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


58
59
60
61
62
63
64
65
66
67
68</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'lib/amqp/connection.rb', line 58</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id stop'>stop</span><span class='lparen'>(</span><span class='id reply_code'>reply_code</span> <span class='op'>=</span> <span class='int'>200</span><span class='comma'>,</span> <span class='id reply_text'>reply_text</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Goodbye</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id block'>block</span><span class='rparen'>)</span>
  <span class='kw'>return</span> <span class='kw'>if</span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id nil?'>nil?</span> <span class='op'>||</span> <span class='kw'>self</span><span class='period'>.</span><span class='id closing?'>closing?</span>

  <span class='const'>EM</span><span class='period'>.</span><span class='id next_tick'>next_tick</span> <span class='kw'>do</span>
    <span class='id shim'>shim</span> <span class='op'>=</span> <span class='const'>Proc</span><span class='period'>.</span><span class='id new'>new</span> <span class='lbrace'>{</span>
      <span class='id block'>block</span><span class='period'>.</span><span class='id call'>call</span>
      <span class='const'>AMQP</span><span class='period'>.</span><span class='id connection'>connection</span> <span class='op'>=</span> <span class='kw'>nil</span>
    <span class='rbrace'>}</span>
    <span class='ivar'>@connection</span><span class='period'>.</span><span class='id disconnect'>disconnect</span><span class='lparen'>(</span><span class='id reply_code'>reply_code</span><span class='comma'>,</span> <span class='id reply_text'>reply_text</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id shim'>shim</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
<span class='kw'>end</span></pre>
    </td>
  </tr>
</table>
</div>
    
  </div>

</div>
    
    <div id="footer">
  Generated on Sun Apr 17 03:16:05 2011 by 
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
  0.6.8 (ruby-1.9.2).
</div>

  </body>
</html>