<div dir="ltr">Our emails crossed in the ether :)<br><br><div class="gmail_quote">On Sun, Sep 7, 2008 at 8:03 PM, Ben Hood <span dir="ltr">&lt;<a href="mailto:0x6e6562@gmail.com">0x6e6562@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On Mon, Sep 8, 2008 at 12:47 AM, Edwin Fine<br>
<div class="Ih2E3d">&lt;<a href="mailto:rabbitmq-discuss_efine@usa.net">rabbitmq-discuss_efine@usa.net</a>&gt; wrote:<br>
<br>
</div><div class="Ih2E3d">&gt; With all due respect in return, check out this code from<br>
&gt; amqp_connection.erl:<br>
&gt;<br>
&gt; %% Starts a new network channel.<br>
&gt; handle_call({network, ChannelNumber, OutOfBand}, From, State) -&gt;<br>
&gt; &nbsp; &nbsp; handle_start({ChannelNumber, OutOfBand},<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_network_driver:open_channel/3,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_network_driver:close_channel/1,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_network_driver:do/2,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_network_driver:do/3,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;State);<br>
&gt;<br>
&gt; %% Starts a new direct channel.<br>
&gt; handle_call({direct, ChannelNumber, OutOfBand}, From, State) -&gt;<br>
&gt; &nbsp; &nbsp; handle_start({ChannelNumber, OutOfBand},<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_direct_driver:open_channel/3,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_direct_driver:close_channel/1,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_direct_driver:do/2,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fun amqp_direct_driver:do/3,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;State);<br>
&gt;<br>
&gt; This ties the module to amqp_direct_driver by naming it. xref will show this<br>
&gt; code is dependent on amqp_direct_driver. Dialyzer will complain if<br>
&gt; amqp_direct_driver is not there. This call should be handled somewhere else.<br>
&gt; In my humble opinion.<br>
<br>
</div>I was just thinking back to an earlier version of the client that used<br>
parameterized modules to solve this dependency. Maybe that could an<br>
option. Or perhaps by defining a new OTP behavior?<br>
<br>
</blockquote></div><br></div>