<!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=ISO-8859-1" /><title>SimpleServiceRegistry xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/registry/SimpleServiceRegistry.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> * @(#) $Id: SimpleServiceRegistry.java 264677 2005-08-30 02:44:35Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> */</em>
<a name="4" href="#4">4</a>   <strong>package</strong> <a href="../../../../org/apache/mina/registry/package-summary.html">org.apache.mina.registry</a>;
<a name="5" href="#5">5</a>   
<a name="6" href="#6">6</a>   <strong>import</strong> java.io.IOException;
<a name="7" href="#7">7</a>   <strong>import</strong> java.net.InetSocketAddress;
<a name="8" href="#8">8</a>   <strong>import</strong> java.net.SocketAddress;
<a name="9" href="#9">9</a>   <strong>import</strong> java.util.HashSet;
<a name="10" href="#10">10</a>  <strong>import</strong> java.util.Iterator;
<a name="11" href="#11">11</a>  <strong>import</strong> java.util.Set;
<a name="12" href="#12">12</a>  
<a name="13" href="#13">13</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="14" href="#14">14</a>  <strong>import</strong> org.apache.mina.io.IoAcceptor;
<a name="15" href="#15">15</a>  <strong>import</strong> org.apache.mina.io.IoHandler;
<a name="16" href="#16">16</a>  <strong>import</strong> org.apache.mina.io.datagram.DatagramAcceptor;
<a name="17" href="#17">17</a>  <strong>import</strong> org.apache.mina.io.filter.IoThreadPoolFilter;
<a name="18" href="#18">18</a>  <strong>import</strong> org.apache.mina.io.socket.SocketAcceptor;
<a name="19" href="#19">19</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolAcceptor;
<a name="20" href="#20">20</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolProvider;
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.protocol.filter.ProtocolThreadPoolFilter;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.protocol.io.IoProtocolAcceptor;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.protocol.vmpipe.VmPipeAcceptor;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.protocol.vmpipe.VmPipeAddress;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <em>/**<em>*</em></em>
<a name="27" href="#27">27</a>  <em> * A simple implementation of {@link ServiceRegistry}.</em>
<a name="28" href="#28">28</a>  <em> * </em>
<a name="29" href="#29">29</a>  <em> * This service registry supports socket, datagram, VM-pipe transport types,</em>
<a name="30" href="#30">30</a>  <em> * and thread pools were added by default. </em>
<a name="31" href="#31">31</a>  <em> * </em>
<a name="32" href="#32">32</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="33" href="#33">33</a>  <em> * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $, </em>
<a name="34" href="#34">34</a>  <em> */</em>
<a name="35" href="#35">35</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/mina/registry/SimpleServiceRegistry.html">SimpleServiceRegistry</a> implements <a href="../../../../org/apache/mina/registry/ServiceRegistry.html">ServiceRegistry</a>
<a name="36" href="#36">36</a>  {
<a name="37" href="#37">37</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/io/IoAcceptor.html">IoAcceptor</a> socketIoAcceptor = <strong>new</strong> <a href="../../../../org/apache/mina/io/socket/SocketAcceptor.html">SocketAcceptor</a>();
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/io/IoAcceptor.html">IoAcceptor</a> datagramIoAcceptor = <strong>new</strong> <a href="../../../../org/apache/mina/io/datagram/DatagramAcceptor.html">DatagramAcceptor</a>();
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> socketProtocolAcceptor = <strong>new</strong> <a href="../../../../org/apache/mina/protocol/io/IoProtocolAcceptor.html">IoProtocolAcceptor</a>(
<a name="42" href="#42">42</a>              socketIoAcceptor );
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> datagramProtocolAcceptor = <strong>new</strong> <a href="../../../../org/apache/mina/protocol/io/IoProtocolAcceptor.html">IoProtocolAcceptor</a>(
<a name="45" href="#45">45</a>              datagramIoAcceptor );
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> vmPipeAcceptor = <strong>new</strong> <a href="../../../../org/apache/mina/protocol/vmpipe/VmPipeAcceptor.html">VmPipeAcceptor</a>();
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/io/filter/IoThreadPoolFilter.html">IoThreadPoolFilter</a> ioThreadPoolFilter = <strong>new</strong> <a href="../../../../org/apache/mina/io/filter/IoThreadPoolFilter.html">IoThreadPoolFilter</a>();
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong>protected</strong> <strong>final</strong> <a href="../../../../org/apache/mina/protocol/filter/ProtocolThreadPoolFilter.html">ProtocolThreadPoolFilter</a> protocolThreadPoolFilter = <strong>new</strong> <a href="../../../../org/apache/mina/protocol/filter/ProtocolThreadPoolFilter.html">ProtocolThreadPoolFilter</a>();
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <strong>private</strong> <strong>final</strong> Set services = <strong>new</strong> HashSet();
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>      <strong>public</strong> <a href="../../../../org/apache/mina/registry/SimpleServiceRegistry.html">SimpleServiceRegistry</a>()
<a name="56" href="#56">56</a>      {
<a name="57" href="#57">57</a>          socketIoAcceptor.getFilterChain().addFirst( <span class="string">"threadPool"</span>, ioThreadPoolFilter );
<a name="58" href="#58">58</a>          datagramIoAcceptor.getFilterChain().addFirst( <span class="string">"threadPool"</span>, ioThreadPoolFilter );
<a name="59" href="#59">59</a>          socketProtocolAcceptor.getFilterChain().addFirst( <span class="string">"threadPool"</span>, protocolThreadPoolFilter );
<a name="60" href="#60">60</a>          datagramProtocolAcceptor.getFilterChain().addFirst( <span class="string">"threadPool"</span>, protocolThreadPoolFilter );
<a name="61" href="#61">61</a>          vmPipeAcceptor.getFilterChain().addFirst( <span class="string">"threadPool"</span>, protocolThreadPoolFilter );
<a name="62" href="#62">62</a>      }
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <strong>public</strong> <strong>void</strong> bind( Service service, IoHandler ioHandler ) throws IOException
<a name="65" href="#65">65</a>      {
<a name="66" href="#66">66</a>          <a href="../../../../org/apache/mina/io/IoAcceptor.html">IoAcceptor</a> acceptor = findIoAcceptor( service.getTransportType() );
<a name="67" href="#67">67</a>          acceptor.bind( service.getAddress(), ioHandler );
<a name="68" href="#68">68</a>          startThreadPools();
<a name="69" href="#69">69</a>          services.add( service );
<a name="70" href="#70">70</a>      }
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <strong>public</strong> <strong>synchronized</strong> <strong>void</strong> bind( Service service,
<a name="73" href="#73">73</a>                                     <a href="../../../../org/apache/mina/protocol/ProtocolProvider.html">ProtocolProvider</a> protocolProvider ) throws IOException
<a name="74" href="#74">74</a>      {
<a name="75" href="#75">75</a>          <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> acceptor = findProtocolAcceptor( service.getTransportType() );
<a name="76" href="#76">76</a>          acceptor.bind( service.getAddress(), protocolProvider );
<a name="77" href="#77">77</a>          startThreadPools();
<a name="78" href="#78">78</a>          services.add( service );
<a name="79" href="#79">79</a>      }
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>      <strong>public</strong> <strong>synchronized</strong> <strong>void</strong> unbind( Service service )
<a name="82" href="#82">82</a>      {
<a name="83" href="#83">83</a>          <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> acceptor = findProtocolAcceptor( service
<a name="84" href="#84">84</a>                  .getTransportType() );
<a name="85" href="#85">85</a>          <strong>try</strong>
<a name="86" href="#86">86</a>          {
<a name="87" href="#87">87</a>              acceptor.unbind( service.getAddress() );
<a name="88" href="#88">88</a>          }
<a name="89" href="#89">89</a>          <strong>catch</strong>( Exception e )
<a name="90" href="#90">90</a>          {
<a name="91" href="#91">91</a>              <em class="comment">// ignore</em>
<a name="92" href="#92">92</a>          }
<a name="93" href="#93">93</a>          
<a name="94" href="#94">94</a>          <strong>try</strong>
<a name="95" href="#95">95</a>          {
<a name="96" href="#96">96</a>              acceptor.unbind( service.getAddress() );
<a name="97" href="#97">97</a>          }
<a name="98" href="#98">98</a>          <strong>catch</strong>( Exception e )
<a name="99" href="#99">99</a>          {
<a name="100" href="#100">100</a>             <em class="comment">// ignore</em>
<a name="101" href="#101">101</a>         }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>         services.remove( service );
<a name="104" href="#104">104</a>         stopThreadPools();
<a name="105" href="#105">105</a>     }
<a name="106" href="#106">106</a>     
<a name="107" href="#107">107</a>     <strong>public</strong> <strong>synchronized</strong> <strong>void</strong> unbindAll()
<a name="108" href="#108">108</a>     {
<a name="109" href="#109">109</a>         Iterator it = <strong>new</strong> HashSet( services ).iterator();
<a name="110" href="#110">110</a>         <strong>while</strong>( it.hasNext() )
<a name="111" href="#111">111</a>         {
<a name="112" href="#112">112</a>             <a href="../../../../org/apache/mina/registry/Service.html">Service</a> s = ( Service ) it.next();
<a name="113" href="#113">113</a>             unbind( s );
<a name="114" href="#114">114</a>         }
<a name="115" href="#115">115</a>     }
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>     <strong>public</strong> <a href="../../../../org/apache/mina/io/IoAcceptor.html">IoAcceptor</a> getIoAcceptor( TransportType transportType )
<a name="118" href="#118">118</a>     {
<a name="119" href="#119">119</a>         <strong>return</strong> findIoAcceptor( transportType );
<a name="120" href="#120">120</a>     }
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>     <strong>public</strong> <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> getProtocolAcceptor( TransportType transportType )
<a name="123" href="#123">123</a>     {
<a name="124" href="#124">124</a>         <strong>return</strong> findProtocolAcceptor( transportType );
<a name="125" href="#125">125</a>     }
<a name="126" href="#126">126</a> 
<a name="127" href="#127">127</a>     <strong>public</strong> <strong>synchronized</strong> Set getAllServices()
<a name="128" href="#128">128</a>     {
<a name="129" href="#129">129</a>         <strong>return</strong> <strong>new</strong> HashSet( services );
<a name="130" href="#130">130</a>     }
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>     <strong>public</strong> <strong>synchronized</strong> Set getServices( String name )
<a name="133" href="#133">133</a>     {
<a name="134" href="#134">134</a>         Set result = <strong>new</strong> HashSet();
<a name="135" href="#135">135</a>         Iterator it = services.iterator();
<a name="136" href="#136">136</a>         <strong>while</strong>( it.hasNext() )
<a name="137" href="#137">137</a>         {
<a name="138" href="#138">138</a>             <a href="../../../../org/apache/mina/registry/Service.html">Service</a> s = ( Service ) it.next();
<a name="139" href="#139">139</a>             <strong>if</strong>( name.equals( s.getName() ) )
<a name="140" href="#140">140</a>             {
<a name="141" href="#141">141</a>                 result.add( s );
<a name="142" href="#142">142</a>             }
<a name="143" href="#143">143</a>         }
<a name="144" href="#144">144</a>         <strong>return</strong> result;
<a name="145" href="#145">145</a>     }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>     <strong>public</strong> Set getServices( TransportType transportType )
<a name="148" href="#148">148</a>     {
<a name="149" href="#149">149</a>         Set result = <strong>new</strong> HashSet();
<a name="150" href="#150">150</a>         Iterator it = services.iterator();
<a name="151" href="#151">151</a>         <strong>while</strong>( it.hasNext() )
<a name="152" href="#152">152</a>         {
<a name="153" href="#153">153</a>             <a href="../../../../org/apache/mina/registry/Service.html">Service</a> s = ( Service ) it.next();
<a name="154" href="#154">154</a>             <strong>if</strong>( s.getTransportType() == transportType )
<a name="155" href="#155">155</a>             {
<a name="156" href="#156">156</a>                 result.add( s );
<a name="157" href="#157">157</a>             }
<a name="158" href="#158">158</a>         }
<a name="159" href="#159">159</a>         <strong>return</strong> result;
<a name="160" href="#160">160</a>     }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <strong>public</strong> Set getServices( <strong>int</strong> port )
<a name="163" href="#163">163</a>     {
<a name="164" href="#164">164</a>         Set result = <strong>new</strong> HashSet();
<a name="165" href="#165">165</a>         Iterator it = services.iterator();
<a name="166" href="#166">166</a>         <strong>while</strong>( it.hasNext() )
<a name="167" href="#167">167</a>         {
<a name="168" href="#168">168</a>             <a href="../../../../org/apache/mina/registry/Service.html">Service</a> s = ( Service ) it.next();
<a name="169" href="#169">169</a>             SocketAddress addr = s.getAddress();
<a name="170" href="#170">170</a>             <strong>int</strong> servicePort;
<a name="171" href="#171">171</a>             
<a name="172" href="#172">172</a>             <strong>if</strong>( addr instanceof InetSocketAddress )
<a name="173" href="#173">173</a>             {
<a name="174" href="#174">174</a>                 servicePort = ( ( InetSocketAddress ) addr ).getPort();
<a name="175" href="#175">175</a>             }
<a name="176" href="#176">176</a>             <strong>else</strong> <strong>if</strong>( addr instanceof VmPipeAddress )
<a name="177" href="#177">177</a>             {
<a name="178" href="#178">178</a>                 servicePort = ( ( VmPipeAddress ) addr ).getPort();
<a name="179" href="#179">179</a>             }
<a name="180" href="#180">180</a>             <strong>else</strong>
<a name="181" href="#181">181</a>             {
<a name="182" href="#182">182</a>                 servicePort = -1; <em class="comment">// this cannot happen </em>
<a name="183" href="#183">183</a>             }
<a name="184" href="#184">184</a>             
<a name="185" href="#185">185</a>             <strong>if</strong>( servicePort == port )
<a name="186" href="#186">186</a>             {
<a name="187" href="#187">187</a>                 result.add( s );
<a name="188" href="#188">188</a>             }
<a name="189" href="#189">189</a>         }
<a name="190" href="#190">190</a>         <strong>return</strong> result;
<a name="191" href="#191">191</a>     }
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>     <strong>protected</strong> <a href="../../../../org/apache/mina/io/IoAcceptor.html">IoAcceptor</a> findIoAcceptor( TransportType transportType )
<a name="194" href="#194">194</a>     {
<a name="195" href="#195">195</a>         <strong>if</strong>( transportType == TransportType.SOCKET )
<a name="196" href="#196">196</a>             <strong>return</strong> socketIoAcceptor;
<a name="197" href="#197">197</a>         <strong>else</strong> <strong>if</strong>( transportType == TransportType.DATAGRAM )
<a name="198" href="#198">198</a>             <strong>return</strong> datagramIoAcceptor;
<a name="199" href="#199">199</a>         <strong>else</strong>
<a name="200" href="#200">200</a>             <strong>throw</strong> <strong>new</strong> IllegalArgumentException(
<a name="201" href="#201">201</a>                     <span class="string">"Unsupported transport type: "</span> + transportType );
<a name="202" href="#202">202</a> 
<a name="203" href="#203">203</a>     }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>     <strong>protected</strong> <a href="../../../../org/apache/mina/protocol/ProtocolAcceptor.html">ProtocolAcceptor</a> findProtocolAcceptor(
<a name="206" href="#206">206</a>                                                     <a href="../../../../org/apache/mina/common/TransportType.html">TransportType</a> transportType )
<a name="207" href="#207">207</a>     {
<a name="208" href="#208">208</a>         <strong>if</strong>( transportType == TransportType.SOCKET )
<a name="209" href="#209">209</a>             <strong>return</strong> socketProtocolAcceptor;
<a name="210" href="#210">210</a>         <strong>else</strong> <strong>if</strong>( transportType == TransportType.DATAGRAM )
<a name="211" href="#211">211</a>             <strong>return</strong> datagramProtocolAcceptor;
<a name="212" href="#212">212</a>         <strong>else</strong> <strong>if</strong>( transportType == TransportType.VM_PIPE )
<a name="213" href="#213">213</a>             <strong>return</strong> vmPipeAcceptor;
<a name="214" href="#214">214</a>         <strong>else</strong>
<a name="215" href="#215">215</a>             <strong>throw</strong> <strong>new</strong> IllegalArgumentException(
<a name="216" href="#216">216</a>                     <span class="string">"Unsupported transport type: "</span> + transportType );
<a name="217" href="#217">217</a>     }
<a name="218" href="#218">218</a> 
<a name="219" href="#219">219</a>     <strong>private</strong> <strong>void</strong> startThreadPools()
<a name="220" href="#220">220</a>     {
<a name="221" href="#221">221</a>         <strong>if</strong>( !services.isEmpty() )
<a name="222" href="#222">222</a>             <strong>return</strong>;
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>         ioThreadPoolFilter.start();
<a name="225" href="#225">225</a>         protocolThreadPoolFilter.start();
<a name="226" href="#226">226</a>     }
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>     <strong>private</strong> <strong>void</strong> stopThreadPools()
<a name="229" href="#229">229</a>     {
<a name="230" href="#230">230</a>         <strong>if</strong>( !services.isEmpty() )
<a name="231" href="#231">231</a>             <strong>return</strong>;
<a name="232" href="#232">232</a> 
<a name="233" href="#233">233</a>         ioThreadPoolFilter.stop();
<a name="234" href="#234">234</a>         protocolThreadPoolFilter.stop();
<a name="235" href="#235">235</a>     }
<a name="236" href="#236">236</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

