<!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>AbstractPollingConnectionlessIoAcceptor xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.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.core.polling;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.SocketAddress;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentLinkedQueue;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executor;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.RuntimeIoException;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.IoFuture;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.AbstractIoAcceptor;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoAcceptor;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoProcessor;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.AbstractIoSession;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.ExpiringSessionRecycler;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSessionConfig;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSessionRecycler;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteRequest;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteRequestQueue;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.ExceptionMonitor;
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">/**</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * TODO Add documentation</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * {@link IoAcceptor} for datagram transport (UDP/IP).</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> *</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * @version $Rev: 751504 $, $Date: 2009-03-08 20:24:58 +0100 (Sun, 08 Mar 2009) $</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * @org.apache.xbean.XBean</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> */</em>
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> AbstractPollingConnectionlessIoAcceptor&lt;T <strong class="jxr_keyword">extends</strong> AbstractIoSession, H&gt;
<a name="58" href="#58">58</a>          <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AbstractIoAcceptor</a> {
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSessionRecycler.html">IoSessionRecycler</a> DEFAULT_RECYCLER = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/session/ExpiringSessionRecycler.html">ExpiringSessionRecycler</a>();
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Object lock = <strong class="jxr_keyword">new</strong> Object();
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> IoProcessor&lt;T&gt; processor = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">ConnectionlessAcceptorProcessor</a>();
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;AcceptorOperationFuture&gt; registerQueue =
<a name="65" href="#65">65</a>          <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;AcceptorOperationFuture&gt;();
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;AcceptorOperationFuture&gt; cancelQueue =
<a name="67" href="#67">67</a>          <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;AcceptorOperationFuture&gt;();
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;T&gt; flushingSessions = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;T&gt;();
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;SocketAddress, H&gt; boundHandles =
<a name="70" href="#70">70</a>          Collections.synchronizedMap(<strong class="jxr_keyword">new</strong> HashMap&lt;SocketAddress, H&gt;());
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/session/IoSessionRecycler.html">IoSessionRecycler</a> sessionRecycler = DEFAULT_RECYCLER;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/service/AbstractIoService.html">ServiceOperationFuture</a> disposalFuture =
<a name="75" href="#75">75</a>          <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/service/AbstractIoService.html">ServiceOperationFuture</a>();
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">boolean</strong> selectable;
<a name="77" href="#77">77</a>      
<a name="78" href="#78">78</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The thread responsible of accepting incoming requests */</em> 
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">Acceptor</a> acceptor;
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lastIdleCheckTime;
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>      <em class="jxr_javadoccomment">/**</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     * Creates a new instance.</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     */</em>
<a name="86" href="#86">86</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">AbstractPollingConnectionlessIoAcceptor</a>(<a href="../../../../../org/apache/mina/core/session/IoSessionConfig.html">IoSessionConfig</a> sessionConfig) {
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">this</strong>(sessionConfig, <strong class="jxr_keyword">null</strong>);
<a name="88" href="#88">88</a>      }
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>      <em class="jxr_javadoccomment">/**</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * Creates a new instance.</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     */</em>
<a name="93" href="#93">93</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">AbstractPollingConnectionlessIoAcceptor</a>(<a href="../../../../../org/apache/mina/core/session/IoSessionConfig.html">IoSessionConfig</a> sessionConfig, Executor executor) {
<a name="94" href="#94">94</a>          <strong class="jxr_keyword">super</strong>(sessionConfig, executor);
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>          <strong class="jxr_keyword">try</strong> {
<a name="97" href="#97">97</a>              init();
<a name="98" href="#98">98</a>              selectable = <strong class="jxr_keyword">true</strong>;
<a name="99" href="#99">99</a>          } <strong class="jxr_keyword">catch</strong> (RuntimeException e){
<a name="100" href="#100">100</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="101" href="#101">101</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="102" href="#102">102</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to initialize."</span>, e);
<a name="103" href="#103">103</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="104" href="#104">104</a>             <strong class="jxr_keyword">if</strong> (!selectable) {
<a name="105" href="#105">105</a>                 <strong class="jxr_keyword">try</strong> {
<a name="106" href="#106">106</a>                     destroy();
<a name="107" href="#107">107</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="108" href="#108">108</a>                     ExceptionMonitor.getInstance().exceptionCaught(e);
<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>     }
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> init() <strong class="jxr_keyword">throws</strong> Exception;
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> destroy() <strong class="jxr_keyword">throws</strong> Exception;
<a name="116" href="#116">116</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> select() <strong class="jxr_keyword">throws</strong> Exception;
<a name="117" href="#117">117</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> select(<strong class="jxr_keyword">int</strong> timeout) <strong class="jxr_keyword">throws</strong> Exception;
<a name="118" href="#118">118</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> wakeup();
<a name="119" href="#119">119</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> Iterator&lt;H&gt; selectedHandles();
<a name="120" href="#120">120</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> H open(SocketAddress localAddress) <strong class="jxr_keyword">throws</strong> Exception;
<a name="121" href="#121">121</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> close(H handle) <strong class="jxr_keyword">throws</strong> Exception;
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> SocketAddress localAddress(H handle) <strong class="jxr_keyword">throws</strong> Exception;
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isReadable(H handle);
<a name="124" href="#124">124</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isWritable(H handle);
<a name="125" href="#125">125</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> SocketAddress receive(H handle, <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buffer) <strong class="jxr_keyword">throws</strong> Exception;
<a name="126" href="#126">126</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> send(T session, <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buffer, SocketAddress remoteAddress) <strong class="jxr_keyword">throws</strong> Exception;
<a name="127" href="#127">127</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> T newSession(IoProcessor&lt;T&gt; processor, H handle, SocketAddress remoteAddress) <strong class="jxr_keyword">throws</strong> Exception;
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> setInterestedInWrite(T session, <strong class="jxr_keyword">boolean</strong> interested) <strong class="jxr_keyword">throws</strong> Exception;
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <em class="jxr_javadoccomment">/**</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
<a name="133" href="#133">133</a>     @Override
<a name="134" href="#134">134</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/mina/core/future/IoFuture.html">IoFuture</a> dispose0() <strong class="jxr_keyword">throws</strong> Exception {
<a name="135" href="#135">135</a>         unbind();
<a name="136" href="#136">136</a>         <strong class="jxr_keyword">if</strong> (!disposalFuture.isDone()) {
<a name="137" href="#137">137</a>             startupAcceptor();
<a name="138" href="#138">138</a>             wakeup();
<a name="139" href="#139">139</a>         }
<a name="140" href="#140">140</a>         <strong class="jxr_keyword">return</strong> disposalFuture;
<a name="141" href="#141">141</a>     }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <em class="jxr_javadoccomment">/**</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     */</em>
<a name="146" href="#146">146</a>     @Override
<a name="147" href="#147">147</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> Set&lt;SocketAddress&gt; bindInternal(
<a name="148" href="#148">148</a>             List&lt;? <strong class="jxr_keyword">extends</strong> SocketAddress&gt; localAddresses) <strong class="jxr_keyword">throws</strong> Exception {
<a name="149" href="#149">149</a>         <em class="jxr_comment">// Create a bind request as a Future operation. When the selector</em>
<a name="150" href="#150">150</a>         <em class="jxr_comment">// have handled the registration, it will signal this future.</em>
<a name="151" href="#151">151</a>         <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AcceptorOperationFuture</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AcceptorOperationFuture</a>(localAddresses);
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>         <em class="jxr_comment">// adds the Registration request to the queue for the Workers</em>
<a name="154" href="#154">154</a>         <em class="jxr_comment">// to handle</em>
<a name="155" href="#155">155</a>         registerQueue.add(request);
<a name="156" href="#156">156</a> 
<a name="157" href="#157">157</a>         <em class="jxr_comment">// creates the Acceptor instance and has the local</em>
<a name="158" href="#158">158</a>         <em class="jxr_comment">// executor kick it off.</em>
<a name="159" href="#159">159</a>         startupAcceptor();
<a name="160" href="#160">160</a>         
<a name="161" href="#161">161</a>         <em class="jxr_comment">// As we just started the acceptor, we have to unblock the select()</em>
<a name="162" href="#162">162</a>         <em class="jxr_comment">// in order to process the bind request we just have added to the </em>
<a name="163" href="#163">163</a>         <em class="jxr_comment">// registerQueue.</em>
<a name="164" href="#164">164</a>         wakeup();
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>         <em class="jxr_comment">// Now, we wait until this request is completed.</em>
<a name="167" href="#167">167</a>         request.awaitUninterruptibly();
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">if</strong> (request.getException() != <strong class="jxr_keyword">null</strong>) {
<a name="170" href="#170">170</a>             <strong class="jxr_keyword">throw</strong> request.getException();
<a name="171" href="#171">171</a>         }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>         <em class="jxr_comment">// Update the local addresses.</em>
<a name="174" href="#174">174</a>         <em class="jxr_comment">// setLocalAddresses() shouldn't be called from the worker thread</em>
<a name="175" href="#175">175</a>         <em class="jxr_comment">// because of deadlock.</em>
<a name="176" href="#176">176</a>         Set&lt;SocketAddress&gt; newLocalAddresses = <strong class="jxr_keyword">new</strong> HashSet&lt;SocketAddress&gt;();
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>         <strong class="jxr_keyword">for</strong> (H handle:boundHandles.values()) {
<a name="179" href="#179">179</a>             newLocalAddresses.add(localAddress(handle));
<a name="180" href="#180">180</a>         }
<a name="181" href="#181">181</a>         
<a name="182" href="#182">182</a>         <strong class="jxr_keyword">return</strong> newLocalAddresses;
<a name="183" href="#183">183</a>     }
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>     <em class="jxr_javadoccomment">/**</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     @Override
<a name="189" href="#189">189</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> unbind0(
<a name="190" href="#190">190</a>             List&lt;? <strong class="jxr_keyword">extends</strong> SocketAddress&gt; localAddresses) <strong class="jxr_keyword">throws</strong> Exception {
<a name="191" href="#191">191</a>         <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AcceptorOperationFuture</a> request = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AcceptorOperationFuture</a>(localAddresses);
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>         cancelQueue.add(request);
<a name="194" href="#194">194</a>         startupAcceptor();
<a name="195" href="#195">195</a>         wakeup();
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         request.awaitUninterruptibly();
<a name="198" href="#198">198</a> 
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">if</strong> (request.getException() != <strong class="jxr_keyword">null</strong>) {
<a name="200" href="#200">200</a>             <strong class="jxr_keyword">throw</strong> request.getException();
<a name="201" href="#201">201</a>         }
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>     <em class="jxr_javadoccomment">/**</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     */</em>
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> newSession(SocketAddress remoteAddress, SocketAddress localAddress) {
<a name="208" href="#208">208</a>         <strong class="jxr_keyword">if</strong> (isDisposing()) {
<a name="209" href="#209">209</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Already disposed."</span>);
<a name="210" href="#210">210</a>         }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>         <strong class="jxr_keyword">if</strong> (remoteAddress == <strong class="jxr_keyword">null</strong>) {
<a name="213" href="#213">213</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"remoteAddress"</span>);
<a name="214" href="#214">214</a>         }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>         <strong class="jxr_keyword">synchronized</strong> (bindLock) {
<a name="217" href="#217">217</a>             <strong class="jxr_keyword">if</strong> (!isActive()) {
<a name="218" href="#218">218</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a name="219" href="#219">219</a>                         <span class="jxr_string">"Can't create a session from a unbound service."</span>);
<a name="220" href="#220">220</a>             }
<a name="221" href="#221">221</a> 
<a name="222" href="#222">222</a>             <strong class="jxr_keyword">try</strong> {
<a name="223" href="#223">223</a>                 <strong class="jxr_keyword">return</strong> newSessionWithoutLock(remoteAddress, localAddress);
<a name="224" href="#224">224</a>             } <strong class="jxr_keyword">catch</strong> (RuntimeException e) {
<a name="225" href="#225">225</a>                 <strong class="jxr_keyword">throw</strong> e;
<a name="226" href="#226">226</a>             } <strong class="jxr_keyword">catch</strong> (Error e) {
<a name="227" href="#227">227</a>                 <strong class="jxr_keyword">throw</strong> e;
<a name="228" href="#228">228</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="229" href="#229">229</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to create a session."</span>, e);
<a name="230" href="#230">230</a>             }
<a name="231" href="#231">231</a>         }
<a name="232" href="#232">232</a>     }
<a name="233" href="#233">233</a> 
<a name="234" href="#234">234</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> newSessionWithoutLock(
<a name="235" href="#235">235</a>             SocketAddress remoteAddress, SocketAddress localAddress) <strong class="jxr_keyword">throws</strong> Exception {
<a name="236" href="#236">236</a>         H handle = boundHandles.get(localAddress);
<a name="237" href="#237">237</a>         <strong class="jxr_keyword">if</strong> (handle == <strong class="jxr_keyword">null</strong>) {
<a name="238" href="#238">238</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown local address: "</span> + localAddress);
<a name="239" href="#239">239</a>         }
<a name="240" href="#240">240</a> 
<a name="241" href="#241">241</a>         <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session;
<a name="242" href="#242">242</a>         <a href="../../../../../org/apache/mina/core/session/IoSessionRecycler.html">IoSessionRecycler</a> sessionRecycler = getSessionRecycler();
<a name="243" href="#243">243</a>         <strong class="jxr_keyword">synchronized</strong> (sessionRecycler) {
<a name="244" href="#244">244</a>             session = sessionRecycler.recycle(localAddress, remoteAddress);
<a name="245" href="#245">245</a>             <strong class="jxr_keyword">if</strong> (session != <strong class="jxr_keyword">null</strong>) {
<a name="246" href="#246">246</a>                 <strong class="jxr_keyword">return</strong> session;
<a name="247" href="#247">247</a>             }
<a name="248" href="#248">248</a> 
<a name="249" href="#249">249</a>             <em class="jxr_comment">// If a new session needs to be created.</em>
<a name="250" href="#250">250</a>             T newSession = newSession(processor, handle, remoteAddress);
<a name="251" href="#251">251</a>             getSessionRecycler().put(newSession);
<a name="252" href="#252">252</a>             session = newSession;
<a name="253" href="#253">253</a>         }
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>         initSession(session, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="256" href="#256">256</a> 
<a name="257" href="#257">257</a>         <strong class="jxr_keyword">try</strong> {
<a name="258" href="#258">258</a>             <strong class="jxr_keyword">this</strong>.getFilterChainBuilder().buildFilterChain(session.getFilterChain());
<a name="259" href="#259">259</a>             getListeners().fireSessionCreated(session);
<a name="260" href="#260">260</a>         } <strong class="jxr_keyword">catch</strong> (Throwable t) {
<a name="261" href="#261">261</a>             ExceptionMonitor.getInstance().exceptionCaught(t);
<a name="262" href="#262">262</a>         }
<a name="263" href="#263">263</a> 
<a name="264" href="#264">264</a>         <strong class="jxr_keyword">return</strong> session;
<a name="265" href="#265">265</a>     }
<a name="266" href="#266">266</a> 
<a name="267" href="#267">267</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSessionRecycler.html">IoSessionRecycler</a> getSessionRecycler() {
<a name="268" href="#268">268</a>         <strong class="jxr_keyword">return</strong> sessionRecycler;
<a name="269" href="#269">269</a>     }
<a name="270" href="#270">270</a> 
<a name="271" href="#271">271</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> setSessionRecycler(<a href="../../../../../org/apache/mina/core/session/IoSessionRecycler.html">IoSessionRecycler</a> sessionRecycler) {
<a name="272" href="#272">272</a>         <strong class="jxr_keyword">synchronized</strong> (bindLock) {
<a name="273" href="#273">273</a>             <strong class="jxr_keyword">if</strong> (isActive()) {
<a name="274" href="#274">274</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a name="275" href="#275">275</a>                         <span class="jxr_string">"sessionRecycler can't be set while the acceptor is bound."</span>);
<a name="276" href="#276">276</a>             }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>             <strong class="jxr_keyword">if</strong> (sessionRecycler == <strong class="jxr_keyword">null</strong>) {
<a name="279" href="#279">279</a>                 sessionRecycler = DEFAULT_RECYCLER;
<a name="280" href="#280">280</a>             }
<a name="281" href="#281">281</a>             <strong class="jxr_keyword">this</strong>.sessionRecycler = sessionRecycler;
<a name="282" href="#282">282</a>         }
<a name="283" href="#283">283</a>     }
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">ConnectionlessAcceptorProcessor</a> implements IoProcessor&lt;T&gt; {
<a name="286" href="#286">286</a> 
<a name="287" href="#287">287</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> add(T session) {
<a name="288" href="#288">288</a>         }
<a name="289" href="#289">289</a> 
<a name="290" href="#290">290</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flush(T session) {
<a name="291" href="#291">291</a>             <strong class="jxr_keyword">if</strong> (scheduleFlush(session)) {
<a name="292" href="#292">292</a>                 wakeup();
<a name="293" href="#293">293</a>             }
<a name="294" href="#294">294</a>         }
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> remove(T session) {
<a name="297" href="#297">297</a>             getSessionRecycler().remove(session);
<a name="298" href="#298">298</a>             getListeners().fireSessionDestroyed(session);
<a name="299" href="#299">299</a>         }
<a name="300" href="#300">300</a> 
<a name="301" href="#301">301</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateTrafficControl(T session) {
<a name="302" href="#302">302</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException();
<a name="303" href="#303">303</a>         }
<a name="304" href="#304">304</a> 
<a name="305" href="#305">305</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dispose() {
<a name="306" href="#306">306</a>         }
<a name="307" href="#307">307</a> 
<a name="308" href="#308">308</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDisposed() {
<a name="309" href="#309">309</a>             <strong class="jxr_keyword">return</strong> false;
<a name="310" href="#310">310</a>         }
<a name="311" href="#311">311</a> 
<a name="312" href="#312">312</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDisposing() {
<a name="313" href="#313">313</a>             <strong class="jxr_keyword">return</strong> false;
<a name="314" href="#314">314</a>         }
<a name="315" href="#315">315</a>     }
<a name="316" href="#316">316</a> 
<a name="317" href="#317">317</a>     <em class="jxr_javadoccomment">/**</em>
<a name="318" href="#318">318</a> <em class="jxr_javadoccomment">     * Starts the inner Acceptor thread.</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     */</em>
<a name="320" href="#320">320</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> startupAcceptor() {
<a name="321" href="#321">321</a>         <strong class="jxr_keyword">if</strong> (!selectable) {
<a name="322" href="#322">322</a>             registerQueue.clear();
<a name="323" href="#323">323</a>             cancelQueue.clear();
<a name="324" href="#324">324</a>             flushingSessions.clear();
<a name="325" href="#325">325</a>         }
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>         <strong class="jxr_keyword">synchronized</strong> (lock) {
<a name="328" href="#328">328</a>             <strong class="jxr_keyword">if</strong> (acceptor == <strong class="jxr_keyword">null</strong>) {
<a name="329" href="#329">329</a>                 acceptor = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">Acceptor</a>();
<a name="330" href="#330">330</a>                 executeWorker(acceptor);
<a name="331" href="#331">331</a>             }
<a name="332" href="#332">332</a>         }
<a name="333" href="#333">333</a>     }
<a name="334" href="#334">334</a> 
<a name="335" href="#335">335</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> scheduleFlush(T session) {
<a name="336" href="#336">336</a>         <strong class="jxr_keyword">if</strong> (session.setScheduledForFlush(<strong class="jxr_keyword">true</strong>)) {
<a name="337" href="#337">337</a>             flushingSessions.add(session);
<a name="338" href="#338">338</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="339" href="#339">339</a>         } <strong class="jxr_keyword">else</strong> {
<a name="340" href="#340">340</a>             <strong class="jxr_keyword">return</strong> false;
<a name="341" href="#341">341</a>         }
<a name="342" href="#342">342</a>     }
<a name="343" href="#343">343</a> 
<a name="344" href="#344">344</a>     <em class="jxr_javadoccomment">/**</em>
<a name="345" href="#345">345</a> <em class="jxr_javadoccomment">     * This private class is used to accept incoming connection from </em>
<a name="346" href="#346">346</a> <em class="jxr_javadoccomment">     * clients. It's an infinite loop, which can be stopped when all</em>
<a name="347" href="#347">347</a> <em class="jxr_javadoccomment">     * the registered handles have been removed (unbound). </em>
<a name="348" href="#348">348</a> <em class="jxr_javadoccomment">     */</em>
<a name="349" href="#349">349</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.html">Acceptor</a> implements Runnable {
<a name="350" href="#350">350</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="351" href="#351">351</a>             <strong class="jxr_keyword">int</strong> nHandles = 0;
<a name="352" href="#352">352</a>             lastIdleCheckTime = System.currentTimeMillis();
<a name="353" href="#353">353</a> 
<a name="354" href="#354">354</a>             <strong class="jxr_keyword">while</strong> (selectable) {
<a name="355" href="#355">355</a>                 <strong class="jxr_keyword">try</strong> {
<a name="356" href="#356">356</a>                     <strong class="jxr_keyword">int</strong> selected = select();
<a name="357" href="#357">357</a> 
<a name="358" href="#358">358</a>                     nHandles += registerHandles();
<a name="359" href="#359">359</a> 
<a name="360" href="#360">360</a>                     <strong class="jxr_keyword">if</strong> (selected &gt; 0) {
<a name="361" href="#361">361</a>                         processReadySessions(selectedHandles());
<a name="362" href="#362">362</a>                     }
<a name="363" href="#363">363</a> 
<a name="364" href="#364">364</a>                     <strong class="jxr_keyword">long</strong> currentTime = System.currentTimeMillis();
<a name="365" href="#365">365</a>                     flushSessions(currentTime);
<a name="366" href="#366">366</a>                     nHandles -= unregisterHandles();
<a name="367" href="#367">367</a> 
<a name="368" href="#368">368</a>                     notifyIdleSessions(currentTime);
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>                     <strong class="jxr_keyword">if</strong> (nHandles == 0) {
<a name="371" href="#371">371</a>                         <strong class="jxr_keyword">synchronized</strong> (lock) {
<a name="372" href="#372">372</a>                             <strong class="jxr_keyword">if</strong> (registerQueue.isEmpty() &amp;&amp; cancelQueue.isEmpty()) {
<a name="373" href="#373">373</a>                                 acceptor = <strong class="jxr_keyword">null</strong>;
<a name="374" href="#374">374</a>                                 <strong class="jxr_keyword">break</strong>;
<a name="375" href="#375">375</a>                             }
<a name="376" href="#376">376</a>                         }
<a name="377" href="#377">377</a>                     }
<a name="378" href="#378">378</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="379" href="#379">379</a>                     ExceptionMonitor.getInstance().exceptionCaught(e);
<a name="380" href="#380">380</a> 
<a name="381" href="#381">381</a>                     <strong class="jxr_keyword">try</strong> {
<a name="382" href="#382">382</a>                         Thread.sleep(1000);
<a name="383" href="#383">383</a>                     } <strong class="jxr_keyword">catch</strong> (InterruptedException e1) {
<a name="384" href="#384">384</a>                     }
<a name="385" href="#385">385</a>                 }
<a name="386" href="#386">386</a>             }
<a name="387" href="#387">387</a> 
<a name="388" href="#388">388</a>             <strong class="jxr_keyword">if</strong> (selectable &amp;&amp; isDisposing()) {
<a name="389" href="#389">389</a>                 selectable = false;
<a name="390" href="#390">390</a>                 <strong class="jxr_keyword">try</strong> {
<a name="391" href="#391">391</a>                     destroy();
<a name="392" href="#392">392</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="393" href="#393">393</a>                     ExceptionMonitor.getInstance().exceptionCaught(e);
<a name="394" href="#394">394</a>                 } <strong class="jxr_keyword">finally</strong> {
<a name="395" href="#395">395</a>                     disposalFuture.setValue(<strong class="jxr_keyword">true</strong>);
<a name="396" href="#396">396</a>                 }
<a name="397" href="#397">397</a>             }
<a name="398" href="#398">398</a>         }
<a name="399" href="#399">399</a>     }
<a name="400" href="#400">400</a> 
<a name="401" href="#401">401</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="402" href="#402">402</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> processReadySessions(Iterator&lt;H&gt; handles) {
<a name="403" href="#403">403</a>         <strong class="jxr_keyword">while</strong> (handles.hasNext()) {
<a name="404" href="#404">404</a>             H h = handles.next();
<a name="405" href="#405">405</a>             handles.remove();
<a name="406" href="#406">406</a>             <strong class="jxr_keyword">try</strong> {
<a name="407" href="#407">407</a>                 <strong class="jxr_keyword">if</strong> (isReadable(h)) {
<a name="408" href="#408">408</a>                     readHandle(h);
<a name="409" href="#409">409</a>                 }
<a name="410" href="#410">410</a> 
<a name="411" href="#411">411</a>                 <strong class="jxr_keyword">if</strong> (isWritable(h)) {
<a name="412" href="#412">412</a>                     <strong class="jxr_keyword">for</strong> (IoSession session : getManagedSessions().values()) {
<a name="413" href="#413">413</a>                         scheduleFlush((T) session);
<a name="414" href="#414">414</a>                     }
<a name="415" href="#415">415</a>                 }
<a name="416" href="#416">416</a>             } <strong class="jxr_keyword">catch</strong> (Throwable t) {
<a name="417" href="#417">417</a>                 ExceptionMonitor.getInstance().exceptionCaught(t);
<a name="418" href="#418">418</a>             }
<a name="419" href="#419">419</a>         }
<a name="420" href="#420">420</a>     }
<a name="421" href="#421">421</a> 
<a name="422" href="#422">422</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> readHandle(H handle) <strong class="jxr_keyword">throws</strong> Exception {
<a name="423" href="#423">423</a>         <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> readBuf = IoBuffer.allocate(
<a name="424" href="#424">424</a>                 getSessionConfig().getReadBufferSize());
<a name="425" href="#425">425</a> 
<a name="426" href="#426">426</a>         SocketAddress remoteAddress = receive(handle, readBuf);
<a name="427" href="#427">427</a>         <strong class="jxr_keyword">if</strong> (remoteAddress != <strong class="jxr_keyword">null</strong>) {
<a name="428" href="#428">428</a>             <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session = newSessionWithoutLock(
<a name="429" href="#429">429</a>                     remoteAddress, localAddress(handle));
<a name="430" href="#430">430</a> 
<a name="431" href="#431">431</a>             readBuf.flip();
<a name="432" href="#432">432</a> 
<a name="433" href="#433">433</a>             <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> newBuf = IoBuffer.allocate(readBuf.limit());
<a name="434" href="#434">434</a>             newBuf.put(readBuf);
<a name="435" href="#435">435</a>             newBuf.flip();
<a name="436" href="#436">436</a> 
<a name="437" href="#437">437</a>             session.getFilterChain().fireMessageReceived(newBuf);
<a name="438" href="#438">438</a>         }
<a name="439" href="#439">439</a>     }
<a name="440" href="#440">440</a> 
<a name="441" href="#441">441</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> flushSessions(<strong class="jxr_keyword">long</strong> currentTime) {
<a name="442" href="#442">442</a>         <strong class="jxr_keyword">for</strong> (; ;) {
<a name="443" href="#443">443</a>             T session = flushingSessions.poll();
<a name="444" href="#444">444</a>             <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong>) {
<a name="445" href="#445">445</a>                 <strong class="jxr_keyword">break</strong>;
<a name="446" href="#446">446</a>             }
<a name="447" href="#447">447</a> 
<a name="448" href="#448">448</a>             session.setScheduledForFlush(false);
<a name="449" href="#449">449</a> 
<a name="450" href="#450">450</a>             <strong class="jxr_keyword">try</strong> {
<a name="451" href="#451">451</a>                 <strong class="jxr_keyword">boolean</strong> flushedAll = flush(session, currentTime);
<a name="452" href="#452">452</a>                 <strong class="jxr_keyword">if</strong> (flushedAll &amp;&amp; !session.getWriteRequestQueue().isEmpty(session) &amp;&amp;
<a name="453" href="#453">453</a>                     !session.isScheduledForFlush()) {
<a name="454" href="#454">454</a>                     scheduleFlush(session);
<a name="455" href="#455">455</a>                 }
<a name="456" href="#456">456</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="457" href="#457">457</a>                 session.getFilterChain().fireExceptionCaught(e);
<a name="458" href="#458">458</a>             }
<a name="459" href="#459">459</a>         }
<a name="460" href="#460">460</a>     }
<a name="461" href="#461">461</a> 
<a name="462" href="#462">462</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> flush(T session, <strong class="jxr_keyword">long</strong> currentTime) <strong class="jxr_keyword">throws</strong> Exception {
<a name="463" href="#463">463</a>         <em class="jxr_comment">// Clear OP_WRITE</em>
<a name="464" href="#464">464</a>         setInterestedInWrite(session, false);
<a name="465" href="#465">465</a> 
<a name="466" href="#466">466</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/write/WriteRequestQueue.html">WriteRequestQueue</a> writeRequestQueue = session.getWriteRequestQueue();
<a name="467" href="#467">467</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> maxWrittenBytes =
<a name="468" href="#468">468</a>             session.getConfig().getMaxReadBufferSize() +
<a name="469" href="#469">469</a>             (session.getConfig().getMaxReadBufferSize() &gt;&gt;&gt; 1);
<a name="470" href="#470">470</a> 
<a name="471" href="#471">471</a>         <strong class="jxr_keyword">int</strong> writtenBytes = 0;
<a name="472" href="#472">472</a>         <strong class="jxr_keyword">try</strong> {
<a name="473" href="#473">473</a>             <strong class="jxr_keyword">for</strong> (; ;) {
<a name="474" href="#474">474</a>                 <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> req = session.getCurrentWriteRequest();
<a name="475" href="#475">475</a>                 <strong class="jxr_keyword">if</strong> (req == <strong class="jxr_keyword">null</strong>) {
<a name="476" href="#476">476</a>                     req = writeRequestQueue.poll(session);
<a name="477" href="#477">477</a>                     <strong class="jxr_keyword">if</strong> (req == <strong class="jxr_keyword">null</strong>) {
<a name="478" href="#478">478</a>                         <strong class="jxr_keyword">break</strong>;
<a name="479" href="#479">479</a>                     }
<a name="480" href="#480">480</a>                     session.setCurrentWriteRequest(req);
<a name="481" href="#481">481</a>                 }
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a>                 <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) req.getMessage();
<a name="484" href="#484">484</a>                 <strong class="jxr_keyword">if</strong> (buf.remaining() == 0) {
<a name="485" href="#485">485</a>                     <em class="jxr_comment">// Clear and fire event</em>
<a name="486" href="#486">486</a>                     session.setCurrentWriteRequest(<strong class="jxr_keyword">null</strong>);
<a name="487" href="#487">487</a>                     buf.reset();
<a name="488" href="#488">488</a>                     session.getFilterChain().fireMessageSent(req);
<a name="489" href="#489">489</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="490" href="#490">490</a>                 }
<a name="491" href="#491">491</a> 
<a name="492" href="#492">492</a>                 SocketAddress destination = req.getDestination();
<a name="493" href="#493">493</a>                 <strong class="jxr_keyword">if</strong> (destination == <strong class="jxr_keyword">null</strong>) {
<a name="494" href="#494">494</a>                     destination = session.getRemoteAddress();
<a name="495" href="#495">495</a>                 }
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>                 <strong class="jxr_keyword">int</strong> localWrittenBytes = send(session, buf, destination);
<a name="498" href="#498">498</a>                 <strong class="jxr_keyword">if</strong> (localWrittenBytes == 0 || writtenBytes &gt;= maxWrittenBytes) {
<a name="499" href="#499">499</a>                     <em class="jxr_comment">// Kernel buffer is full or wrote too much</em>
<a name="500" href="#500">500</a>                     setInterestedInWrite(session, <strong class="jxr_keyword">true</strong>);
<a name="501" href="#501">501</a>                     <strong class="jxr_keyword">return</strong> false;
<a name="502" href="#502">502</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="503" href="#503">503</a>                     setInterestedInWrite(session, false);
<a name="504" href="#504">504</a> 
<a name="505" href="#505">505</a>                     <em class="jxr_comment">// Clear and fire event</em>
<a name="506" href="#506">506</a>                     session.setCurrentWriteRequest(<strong class="jxr_keyword">null</strong>);
<a name="507" href="#507">507</a>                     writtenBytes += localWrittenBytes;
<a name="508" href="#508">508</a>                     buf.reset();
<a name="509" href="#509">509</a>                     session.getFilterChain().fireMessageSent(req);
<a name="510" href="#510">510</a>                 }
<a name="511" href="#511">511</a>             }
<a name="512" href="#512">512</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="513" href="#513">513</a>             session.increaseWrittenBytes(writtenBytes, currentTime);
<a name="514" href="#514">514</a>         }
<a name="515" href="#515">515</a> 
<a name="516" href="#516">516</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="517" href="#517">517</a>     }
<a name="518" href="#518">518</a> 
<a name="519" href="#519">519</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> registerHandles() {
<a name="520" href="#520">520</a>         <strong class="jxr_keyword">for</strong> (;;) {
<a name="521" href="#521">521</a>             <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AcceptorOperationFuture</a> req = registerQueue.poll();
<a name="522" href="#522">522</a>             <strong class="jxr_keyword">if</strong> (req == <strong class="jxr_keyword">null</strong>) {
<a name="523" href="#523">523</a>                 <strong class="jxr_keyword">break</strong>;
<a name="524" href="#524">524</a>             }
<a name="525" href="#525">525</a> 
<a name="526" href="#526">526</a>             Map&lt;SocketAddress, H&gt; newHandles = <strong class="jxr_keyword">new</strong> HashMap&lt;SocketAddress, H&gt;();
<a name="527" href="#527">527</a>             List&lt;SocketAddress&gt; localAddresses = req.getLocalAddresses();
<a name="528" href="#528">528</a>             <strong class="jxr_keyword">try</strong> {
<a name="529" href="#529">529</a>                 <strong class="jxr_keyword">for</strong> (SocketAddress a: localAddresses) {
<a name="530" href="#530">530</a>                     H handle = open(a);
<a name="531" href="#531">531</a>                     newHandles.put(localAddress(handle), handle);
<a name="532" href="#532">532</a>                 }
<a name="533" href="#533">533</a>                 boundHandles.putAll(newHandles);
<a name="534" href="#534">534</a> 
<a name="535" href="#535">535</a>                 getListeners().fireServiceActivated();
<a name="536" href="#536">536</a>                 req.setDone();
<a name="537" href="#537">537</a>                 <strong class="jxr_keyword">return</strong> newHandles.size();
<a name="538" href="#538">538</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="539" href="#539">539</a>                 req.setException(e);
<a name="540" href="#540">540</a>             } <strong class="jxr_keyword">finally</strong> {
<a name="541" href="#541">541</a>                 <em class="jxr_comment">// Roll back if failed to bind all addresses.</em>
<a name="542" href="#542">542</a>                 <strong class="jxr_keyword">if</strong> (req.getException() != <strong class="jxr_keyword">null</strong>) {
<a name="543" href="#543">543</a>                     <strong class="jxr_keyword">for</strong> (H handle: newHandles.values()) {
<a name="544" href="#544">544</a>                         <strong class="jxr_keyword">try</strong> {
<a name="545" href="#545">545</a>                             close(handle);
<a name="546" href="#546">546</a>                         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="547" href="#547">547</a>                             ExceptionMonitor.getInstance().exceptionCaught(e);
<a name="548" href="#548">548</a>                         }
<a name="549" href="#549">549</a>                     }
<a name="550" href="#550">550</a>                     wakeup();
<a name="551" href="#551">551</a>                 }
<a name="552" href="#552">552</a>             }
<a name="553" href="#553">553</a>         }
<a name="554" href="#554">554</a> 
<a name="555" href="#555">555</a>         <strong class="jxr_keyword">return</strong> 0;
<a name="556" href="#556">556</a>     }
<a name="557" href="#557">557</a> 
<a name="558" href="#558">558</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> unregisterHandles() {
<a name="559" href="#559">559</a>         <strong class="jxr_keyword">int</strong> nHandles = 0;
<a name="560" href="#560">560</a>         <strong class="jxr_keyword">for</strong> (;;) {
<a name="561" href="#561">561</a>             <a href="../../../../../org/apache/mina/core/service/AbstractIoAcceptor.html">AcceptorOperationFuture</a> request = cancelQueue.poll();
<a name="562" href="#562">562</a>             <strong class="jxr_keyword">if</strong> (request == <strong class="jxr_keyword">null</strong>) {
<a name="563" href="#563">563</a>                 <strong class="jxr_keyword">break</strong>;
<a name="564" href="#564">564</a>             }
<a name="565" href="#565">565</a> 
<a name="566" href="#566">566</a>             <em class="jxr_comment">// close the channels</em>
<a name="567" href="#567">567</a>             <strong class="jxr_keyword">for</strong> (SocketAddress a: request.getLocalAddresses()) {
<a name="568" href="#568">568</a>                 H handle = boundHandles.remove(a);
<a name="569" href="#569">569</a>                 <strong class="jxr_keyword">if</strong> (handle == <strong class="jxr_keyword">null</strong>) {
<a name="570" href="#570">570</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="571" href="#571">571</a>                 }
<a name="572" href="#572">572</a> 
<a name="573" href="#573">573</a>                 <strong class="jxr_keyword">try</strong> {
<a name="574" href="#574">574</a>                     close(handle);
<a name="575" href="#575">575</a>                     wakeup(); <em class="jxr_comment">// wake up again to trigger thread death</em>
<a name="576" href="#576">576</a>                 } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="577" href="#577">577</a>                     ExceptionMonitor.getInstance().exceptionCaught(e);
<a name="578" href="#578">578</a>                 } <strong class="jxr_keyword">finally</strong> {
<a name="579" href="#579">579</a>                     nHandles ++;
<a name="580" href="#580">580</a>                 }
<a name="581" href="#581">581</a>             }
<a name="582" href="#582">582</a> 
<a name="583" href="#583">583</a>             request.setDone();
<a name="584" href="#584">584</a>         }
<a name="585" href="#585">585</a> 
<a name="586" href="#586">586</a>         <strong class="jxr_keyword">return</strong> nHandles;
<a name="587" href="#587">587</a>     }
<a name="588" href="#588">588</a> 
<a name="589" href="#589">589</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> notifyIdleSessions(<strong class="jxr_keyword">long</strong> currentTime) {
<a name="590" href="#590">590</a>         <em class="jxr_comment">// process idle sessions</em>
<a name="591" href="#591">591</a>         <strong class="jxr_keyword">if</strong> (currentTime - lastIdleCheckTime &gt;= 1000) {
<a name="592" href="#592">592</a>             lastIdleCheckTime = currentTime;
<a name="593" href="#593">593</a>             AbstractIoSession.notifyIdleness(
<a name="594" href="#594">594</a>                     getListeners().getManagedSessions().values().iterator(),
<a name="595" href="#595">595</a>                     currentTime);
<a name="596" href="#596">596</a>         }
<a name="597" href="#597">597</a>     }
<a name="598" href="#598">598</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

