<!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>NioSocketConnector xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/mina/transport/socket/nio/NioSocketConnector.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.transport.socket.nio;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.SocketAddress;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.SelectionKey;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.Selector;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.SocketChannel;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executor;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.polling.AbstractPollingIoConnector;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoConnector;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoProcessor;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.SimpleIoProcessorPool;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.TransportMetadata;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.DefaultSocketSessionConfig;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.SocketConnector;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.SocketSessionConfig;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * {@link IoConnector} for socket transport (TCP/IP).</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @version $Rev: 389042 $, $Date: 2006-03-27 07:49:41Z $</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a>
<a name="47" href="#47">47</a>          <strong class="jxr_keyword">extends</strong> AbstractPollingIoConnector&lt;NioSession, SocketChannel&gt;
<a name="48" href="#48">48</a>          implements <a href="../../../../../../org/apache/mina/transport/socket/SocketConnector.html">SocketConnector</a> {
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> Selector selector;
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * Constructor for {@link NioSocketConnector} with default configuration (multiple thread model).</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a>() {
<a name="56" href="#56">56</a>          <strong class="jxr_keyword">super</strong>(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>(), NioProcessor.<strong class="jxr_keyword">class</strong>);
<a name="57" href="#57">57</a>          ((<a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>) getSessionConfig()).init(<strong class="jxr_keyword">this</strong>);
<a name="58" href="#58">58</a>      }
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <em class="jxr_javadoccomment">/**</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * Constructor for {@link NioSocketConnector} with default configuration, and </em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * given number of {@link NioProcessor} for multithreading I/O operations</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @param processorCount the number of processor to create and place in a</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * {@link SimpleIoProcessorPool} </em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a>(<strong class="jxr_keyword">int</strong> processorCount) {
<a name="67" href="#67">67</a>          <strong class="jxr_keyword">super</strong>(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>(), NioProcessor.<strong class="jxr_keyword">class</strong>, processorCount);
<a name="68" href="#68">68</a>          ((<a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>) getSessionConfig()).init(<strong class="jxr_keyword">this</strong>);
<a name="69" href="#69">69</a>      }
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <em class="jxr_javadoccomment">/**</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     *  Constructor for {@link NioSocketConnector} with default configuration but a</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     *  specific {@link IoProcessor}, useful for sharing the same processor over multiple</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     *  {@link IoService} of the same type.</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @param processor the processor to use for managing I/O events</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     */</em>
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a>(IoProcessor&lt;NioSession&gt; processor) {
<a name="78" href="#78">78</a>          <strong class="jxr_keyword">super</strong>(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>(), processor);
<a name="79" href="#79">79</a>          ((<a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>) getSessionConfig()).init(<strong class="jxr_keyword">this</strong>);
<a name="80" href="#80">80</a>      }
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>      <em class="jxr_javadoccomment">/**</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     *  Constructor for {@link NioSocketConnector} with a given {@link Executor} for handling </em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     *  connection events and a given {@link IoProcessor} for handling I/O events, useful for sharing </em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     *  the same processor and executor over multiple {@link IoService} of the same type.</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @param executor the executor for connection</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @param processor the processor for I/O operations</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">NioSocketConnector</a>(Executor executor, IoProcessor&lt;NioSession&gt; processor) {
<a name="90" href="#90">90</a>          <strong class="jxr_keyword">super</strong>(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>(), executor, processor);
<a name="91" href="#91">91</a>          ((<a href="../../../../../../org/apache/mina/transport/socket/DefaultSocketSessionConfig.html">DefaultSocketSessionConfig</a>) getSessionConfig()).init(<strong class="jxr_keyword">this</strong>);
<a name="92" href="#92">92</a>      }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     */</em>
<a name="97" href="#97">97</a>      @Override
<a name="98" href="#98">98</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> init() <strong class="jxr_keyword">throws</strong> Exception {
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">this</strong>.selector = Selector.open();
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <em class="jxr_javadoccomment">/**</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     */</em>
<a name="105" href="#105">105</a>     @Override
<a name="106" href="#106">106</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> destroy() <strong class="jxr_keyword">throws</strong> Exception {
<a name="107" href="#107">107</a>         <strong class="jxr_keyword">if</strong> (selector != <strong class="jxr_keyword">null</strong>) {
<a name="108" href="#108">108</a>             selector.close();
<a name="109" href="#109">109</a>         }
<a name="110" href="#110">110</a>     }
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>     <em class="jxr_javadoccomment">/**</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/core/service/TransportMetadata.html">TransportMetadata</a> getTransportMetadata() {
<a name="116" href="#116">116</a>         <strong class="jxr_keyword">return</strong> NioSocketSession.METADATA;
<a name="117" href="#117">117</a>     }
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>     <em class="jxr_javadoccomment">/**</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
<a name="122" href="#122">122</a>     @Override
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/SocketSessionConfig.html">SocketSessionConfig</a> getSessionConfig() {
<a name="124" href="#124">124</a>         <strong class="jxr_keyword">return</strong> (SocketSessionConfig) <strong class="jxr_keyword">super</strong>.getSessionConfig();
<a name="125" href="#125">125</a>     }
<a name="126" href="#126">126</a>     
<a name="127" href="#127">127</a>     <em class="jxr_javadoccomment">/**</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     */</em>
<a name="130" href="#130">130</a>     @Override
<a name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> InetSocketAddress getDefaultRemoteAddress() {
<a name="132" href="#132">132</a>         <strong class="jxr_keyword">return</strong> (InetSocketAddress) <strong class="jxr_keyword">super</strong>.getDefaultRemoteAddress();
<a name="133" href="#133">133</a>     }
<a name="134" href="#134">134</a>     
<a name="135" href="#135">135</a>     <em class="jxr_javadoccomment">/**</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     */</em>
<a name="138" href="#138">138</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDefaultRemoteAddress(InetSocketAddress defaultRemoteAddress) {
<a name="139" href="#139">139</a>         <strong class="jxr_keyword">super</strong>.setDefaultRemoteAddress(defaultRemoteAddress);
<a name="140" href="#140">140</a>     }
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     */</em>
<a name="145" href="#145">145</a>     @Override
<a name="146" href="#146">146</a>     <strong class="jxr_keyword">protected</strong> Iterator&lt;SocketChannel&gt; allHandles() {
<a name="147" href="#147">147</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">SocketChannelIterator</a>(selector.keys());
<a name="148" href="#148">148</a>     }
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>     <em class="jxr_javadoccomment">/**</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     */</em>
<a name="153" href="#153">153</a>     @Override
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> connect(SocketChannel handle, SocketAddress remoteAddress)
<a name="155" href="#155">155</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="156" href="#156">156</a>         <strong class="jxr_keyword">return</strong> handle.connect(remoteAddress);
<a name="157" href="#157">157</a>     }
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>     <em class="jxr_javadoccomment">/**</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     */</em>
<a name="162" href="#162">162</a>     @Override
<a name="163" href="#163">163</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/mina/core/polling/AbstractPollingIoConnector.html">ConnectionRequest</a> connectionRequest(SocketChannel handle) {
<a name="164" href="#164">164</a>         SelectionKey key = handle.keyFor(selector);
<a name="165" href="#165">165</a>         <strong class="jxr_keyword">if</strong> (key == <strong class="jxr_keyword">null</strong>) {
<a name="166" href="#166">166</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="167" href="#167">167</a>         }
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">return</strong> (ConnectionRequest) key.attachment();
<a name="170" href="#170">170</a>     }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>     <em class="jxr_javadoccomment">/**</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     */</em>
<a name="175" href="#175">175</a>     @Override
<a name="176" href="#176">176</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> close(SocketChannel handle) <strong class="jxr_keyword">throws</strong> Exception {
<a name="177" href="#177">177</a>         SelectionKey key = handle.keyFor(selector);
<a name="178" href="#178">178</a>         <strong class="jxr_keyword">if</strong> (key != <strong class="jxr_keyword">null</strong>) {
<a name="179" href="#179">179</a>             key.cancel();
<a name="180" href="#180">180</a>         }
<a name="181" href="#181">181</a>         handle.close();
<a name="182" href="#182">182</a>     }
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>     <em class="jxr_javadoccomment">/**</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     */</em>
<a name="187" href="#187">187</a>     @Override
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> finishConnect(SocketChannel handle) <strong class="jxr_keyword">throws</strong> Exception {
<a name="189" href="#189">189</a>         SelectionKey key = handle.keyFor(selector);
<a name="190" href="#190">190</a>         <strong class="jxr_keyword">if</strong> (handle.finishConnect()) {
<a name="191" href="#191">191</a>             <strong class="jxr_keyword">if</strong> (key != <strong class="jxr_keyword">null</strong>) {
<a name="192" href="#192">192</a>                 key.cancel();
<a name="193" href="#193">193</a>             }
<a name="194" href="#194">194</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="195" href="#195">195</a>         }
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         <strong class="jxr_keyword">return</strong> false;
<a name="198" href="#198">198</a>     }
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>     <em class="jxr_javadoccomment">/**</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     */</em>
<a name="203" href="#203">203</a>     @Override
<a name="204" href="#204">204</a>     <strong class="jxr_keyword">protected</strong> SocketChannel newHandle(SocketAddress localAddress)
<a name="205" href="#205">205</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="206" href="#206">206</a>         SocketChannel ch = SocketChannel.open();
<a name="207" href="#207">207</a> 
<a name="208" href="#208">208</a>         <strong class="jxr_keyword">int</strong> receiveBufferSize =
<a name="209" href="#209">209</a>             (getSessionConfig()).getReceiveBufferSize();
<a name="210" href="#210">210</a>         <strong class="jxr_keyword">if</strong> (receiveBufferSize &gt; 65535) {
<a name="211" href="#211">211</a>             ch.socket().setReceiveBufferSize(receiveBufferSize);
<a name="212" href="#212">212</a>         }
<a name="213" href="#213">213</a> 
<a name="214" href="#214">214</a>         <strong class="jxr_keyword">if</strong> (localAddress != <strong class="jxr_keyword">null</strong>) {
<a name="215" href="#215">215</a>             ch.socket().bind(localAddress);
<a name="216" href="#216">216</a>         }
<a name="217" href="#217">217</a>         ch.configureBlocking(false);
<a name="218" href="#218">218</a>         <strong class="jxr_keyword">return</strong> ch;
<a name="219" href="#219">219</a>     }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>     <em class="jxr_javadoccomment">/**</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">     */</em>
<a name="224" href="#224">224</a>     @Override
<a name="225" href="#225">225</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSession.html">NioSession</a> newSession(IoProcessor&lt;NioSession&gt; processor, SocketChannel handle) {
<a name="226" href="#226">226</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketSession.html">NioSocketSession</a>(<strong class="jxr_keyword">this</strong>, processor, handle);
<a name="227" href="#227">227</a>     }
<a name="228" href="#228">228</a> 
<a name="229" href="#229">229</a>     <em class="jxr_javadoccomment">/**</em>
<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="231" href="#231">231</a> <em class="jxr_javadoccomment">     */</em>
<a name="232" href="#232">232</a>     @Override
<a name="233" href="#233">233</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> register(SocketChannel handle, <a href="../../../../../../org/apache/mina/core/polling/AbstractPollingIoConnector.html">ConnectionRequest</a> request)
<a name="234" href="#234">234</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="235" href="#235">235</a>         handle.register(selector, SelectionKey.OP_CONNECT, request);
<a name="236" href="#236">236</a>     }
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>     <em class="jxr_javadoccomment">/**</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     */</em>
<a name="241" href="#241">241</a>     @Override
<a name="242" href="#242">242</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> select(<strong class="jxr_keyword">int</strong> timeout) <strong class="jxr_keyword">throws</strong> Exception {
<a name="243" href="#243">243</a>         <strong class="jxr_keyword">return</strong> selector.select(timeout) &gt; 0;
<a name="244" href="#244">244</a>     }
<a name="245" href="#245">245</a> 
<a name="246" href="#246">246</a>     <em class="jxr_javadoccomment">/**</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     */</em>
<a name="249" href="#249">249</a>     @Override
<a name="250" href="#250">250</a>     <strong class="jxr_keyword">protected</strong> Iterator&lt;SocketChannel&gt; selectedHandles() {
<a name="251" href="#251">251</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">SocketChannelIterator</a>(selector.selectedKeys());
<a name="252" href="#252">252</a>     }
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a>     <em class="jxr_javadoccomment">/**</em>
<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="256" href="#256">256</a> <em class="jxr_javadoccomment">     */</em>
<a name="257" href="#257">257</a>     @Override
<a name="258" href="#258">258</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> wakeup() {
<a name="259" href="#259">259</a>         selector.wakeup();
<a name="260" href="#260">260</a>     }
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">SocketChannelIterator</a> implements Iterator&lt;SocketChannel&gt; {
<a name="263" href="#263">263</a> 
<a name="264" href="#264">264</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Iterator&lt;SelectionKey&gt; i;
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/mina/transport/socket/nio/NioSocketConnector.html">SocketChannelIterator</a>(Collection&lt;SelectionKey&gt; selectedKeys) {
<a name="267" href="#267">267</a>             <strong class="jxr_keyword">this</strong>.i = selectedKeys.iterator();
<a name="268" href="#268">268</a>         }
<a name="269" href="#269">269</a> 
<a name="270" href="#270">270</a>         <em class="jxr_javadoccomment">/**</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">         */</em>
<a name="273" href="#273">273</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> hasNext() {
<a name="274" href="#274">274</a>             <strong class="jxr_keyword">return</strong> i.hasNext();
<a name="275" href="#275">275</a>         }
<a name="276" href="#276">276</a> 
<a name="277" href="#277">277</a>         <em class="jxr_javadoccomment">/**</em>
<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="279" href="#279">279</a> <em class="jxr_javadoccomment">         */</em>
<a name="280" href="#280">280</a>         <strong class="jxr_keyword">public</strong> SocketChannel next() {
<a name="281" href="#281">281</a>             SelectionKey key = i.next();
<a name="282" href="#282">282</a>             <strong class="jxr_keyword">return</strong> (SocketChannel) key.channel();
<a name="283" href="#283">283</a>         }
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a>         <em class="jxr_javadoccomment">/**</em>
<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">         */</em>
<a name="288" href="#288">288</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> remove() {
<a name="289" href="#289">289</a>             i.remove();
<a name="290" href="#290">290</a>         }
<a name="291" href="#291">291</a>     }
<a name="292" href="#292">292</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

