doc/Ionian/Server.html in ionian-0.6.0 vs doc/Ionian/Server.html in ionian-0.6.1

- old
+ new

@@ -132,17 +132,27 @@ </div> <div class="method-description"> + <p>A convenient wrapper for TCP and Unix server sockets (UDP doesn&#39;t use a +server).</p> + +<p>Accepts an optional block that is passed to <a +href="Server.html#method-i-register_accept_listener">register_accept_listener</a>.</p> + +<p>Args:</p> + +<pre>interface: The address of the network interface to bind to. + Defaults to all. +protocol: :tcp, :unix. Default is :tcp.</pre> - <div class="method-source-code" id="new-source"> - <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 9</span> + <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 18</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-ivar">@accept_listeners</span> = [] <span class="ruby-identifier">register_accept_listener</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-ivar">@interface</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:interface</span>, <span class="ruby-string">&#39;&#39;</span> @@ -161,11 +171,11 @@ <span class="ruby-keyword">case</span> <span class="ruby-ivar">@protocol</span> <span class="ruby-keyword">when</span> <span class="ruby-value">:tcp</span> <span class="ruby-ivar">@server</span> = <span class="ruby-constant">TCPServer</span>.<span class="ruby-identifier">new</span> <span class="ruby-ivar">@interface</span>, <span class="ruby-ivar">@port</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">SOL_SOCKET</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">SO_REUSEADDR</span>, [<span class="ruby-value">1</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) <span class="ruby-keyword">when</span> <span class="ruby-value">:udp</span> - <span class="ruby-ivar">@server</span> = <span class="ruby-constant">Ionian</span><span class="ruby-operator">::</span><span class="ruby-constant">Socket</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">host</span><span class="ruby-operator">:</span> <span class="ruby-ivar">@interface</span>, <span class="ruby-identifier">port</span><span class="ruby-operator">:</span> <span class="ruby-ivar">@port</span>, <span class="ruby-identifier">protocol</span><span class="ruby-operator">:</span> <span class="ruby-value">:udp</span> + <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-string">&quot;UDP should be implemented with Ionian::Socket.&quot;</span> <span class="ruby-keyword">when</span> <span class="ruby-value">:unix</span> <span class="ruby-ivar">@server</span> = <span class="ruby-constant">UNIXServer</span>.<span class="ruby-identifier">new</span> <span class="ruby-ivar">@interface</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> @@ -203,11 +213,11 @@ <div class="method-source-code" id="close-source"> - <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 62</span> + <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 71</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">close</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@server</span> <span class="ruby-ivar">@accept_thread</span>.<span class="ruby-identifier">join</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@accept_thread</span> <span class="ruby-ivar">@accept_thread</span> = <span class="ruby-keyword">nil</span> <span class="ruby-keyword">end</span></pre> @@ -241,11 +251,11 @@ <div class="method-source-code" id="listen-source"> - <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 40</span> + <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 49</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">listen</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-identifier">register_accept_listener</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-ivar">@accept_thread</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span> <span class="ruby-comment"># Package in an Ionian::Socket</span> @@ -320,11 +330,11 @@ <div class="method-source-code" id="register_accept_listener-source"> - <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 70</span> + <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 79</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">register_accept_listener</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-ivar">@accept_listeners</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">block</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@accept_listeners</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">block</span> <span class="ruby-identifier">block</span> <span class="ruby-keyword">end</span></pre> </div> @@ -358,10 +368,10 @@ <div class="method-source-code" id="unregister_accept_listener-source"> - <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 78</span> + <pre><span class="ruby-comment"># File lib/ionian/server.rb, line 87</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">unregister_accept_listener</span> <span class="ruby-identifier">proc</span> <span class="ruby-ivar">@accept_listeners</span>.<span class="ruby-identifier">delete_if</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span> <span class="ruby-identifier">o</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">proc</span>} <span class="ruby-identifier">proc</span> <span class="ruby-keyword">end</span></pre> </div>