<!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>AbstractPollingIoProcessor xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/core/polling/AbstractPollingIoProcessor.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.io.IOException;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<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.Iterator;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentLinkedQueue;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Executor;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicInteger;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.file.FileRegion;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilterChain;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.DefaultIoFuture;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.AbstractIoService;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoProcessor;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.AbstractIoSession;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSessionConfig;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteRequest;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteRequestQueue;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteToClosedSessionException;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.ExceptionMonitor;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.NamePreservingRunnable;
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">/**</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * An abstract implementation of {@link IoProcessor} which helps</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * transport developers to write an {@link IoProcessor} easily.</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * This class is in charge of active polling a set of {@link IoSession}</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * and trigger events when some I/O operation is possible.</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> *</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> */</em>
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> AbstractPollingIoProcessor&lt;T <strong class="jxr_keyword">extends</strong> AbstractIoSession&gt; implements IoProcessor&lt;T&gt; {
<a name="57" href="#57">57</a>      <em class="jxr_javadoccomment">/**</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * The maximum loop count for a write operation until</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * {@link #write(AbstractIoSession, IoBuffer, int)} returns non-zero value.</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * It is similar to what a spin lock is for in concurrency programming.</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * It improves memory utilization and write throughput significantly.</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     */</em>
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> WRITE_SPIN_COUNT = 256;
<a name="64" href="#64">64</a>      
<a name="65" href="#65">65</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> A timeout used for the select, as we need to get out to deal with idle sessions */</em>
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> SELECT_TIMEOUT = 1000L;
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> A map containing the last Thread ID for each class */</em>
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, AtomicInteger&gt; threadIds = 
<a name="70" href="#70">70</a>          <strong class="jxr_keyword">new</strong> HashMap&lt;Class&lt;?&gt;, AtomicInteger&gt;();
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Object lock = <strong class="jxr_keyword">new</strong> Object();
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String threadName;
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Executor executor;
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> A Session queue containing the newly created sessions */</em>
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;T&gt; newSessions = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;T&gt;();
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;T&gt; removingSessions = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;T&gt;();
<a name="79" href="#79">79</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="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;T&gt; trafficControllingSessions = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;T&gt;();
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The processor thread : it handles the incoming messages */</em>
<a name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">Processor</a> processor;
<a name="84" href="#84">84</a>      
<a name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> lastIdleCheckTime;
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Object disposalLock = <strong class="jxr_keyword">new</strong> Object();
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">boolean</strong> disposing;
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">boolean</strong> disposed;
<a name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/future/DefaultIoFuture.html">DefaultIoFuture</a> disposalFuture = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/future/DefaultIoFuture.html">DefaultIoFuture</a>(<strong class="jxr_keyword">null</strong>);
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>      <em class="jxr_javadoccomment">/**</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * Create an {@link AbstractPollingIoProcessor} with the given {@link Executor}</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * for handling I/Os events.</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * </em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param executor the {@link Executor} for handling I/O events</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     */</em>
<a name="98" href="#98">98</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">AbstractPollingIoProcessor</a>(Executor executor) {
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">if</strong> (executor == <strong class="jxr_keyword">null</strong>) {
<a name="100" href="#100">100</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"executor"</span>);
<a name="101" href="#101">101</a>         }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>         <strong class="jxr_keyword">this</strong>.threadName = nextThreadName();
<a name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.executor = executor;
<a name="105" href="#105">105</a>     }
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a>     <em class="jxr_javadoccomment">/**</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * Compute the thread ID for this class instance. As we may have different</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * classes, we store the last ID number into a Map associating the class</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * name to the last assigned ID.</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     *   </em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @return a name for the current thread, based on the class name and</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * an incremental value, starting at 1. </em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">private</strong> String nextThreadName() {
<a name="116" href="#116">116</a>         Class&lt;?&gt; cls = getClass();
<a name="117" href="#117">117</a>         <strong class="jxr_keyword">int</strong> newThreadId;
<a name="118" href="#118">118</a>         
<a name="119" href="#119">119</a>         <em class="jxr_comment">// We synchronize this block to avoid a concurrent access to </em>
<a name="120" href="#120">120</a>         <em class="jxr_comment">// the actomicInteger (it can be modified by another thread, while</em>
<a name="121" href="#121">121</a>         <em class="jxr_comment">// being seen as null by another thread)</em>
<a name="122" href="#122">122</a>         <strong class="jxr_keyword">synchronized</strong>( threadIds ) {
<a name="123" href="#123">123</a>             <em class="jxr_comment">// Get the current ID associated to this class' name</em>
<a name="124" href="#124">124</a>             AtomicInteger threadId = threadIds.get(cls);
<a name="125" href="#125">125</a>             
<a name="126" href="#126">126</a>             <strong class="jxr_keyword">if</strong> (threadId == <strong class="jxr_keyword">null</strong>) {
<a name="127" href="#127">127</a>                 <em class="jxr_comment">// We never have seen this class before, just create a</em>
<a name="128" href="#128">128</a>                 <em class="jxr_comment">// new ID starting at 1 for it, and associate this ID</em>
<a name="129" href="#129">129</a>                 <em class="jxr_comment">// with the class name in the map.</em>
<a name="130" href="#130">130</a>                 newThreadId = 1;
<a name="131" href="#131">131</a>                 threadIds.put(cls, <strong class="jxr_keyword">new</strong> AtomicInteger(newThreadId));
<a name="132" href="#132">132</a>             } <strong class="jxr_keyword">else</strong> {
<a name="133" href="#133">133</a>                 <em class="jxr_comment">// Just increment the lat ID, and get it.</em>
<a name="134" href="#134">134</a>                 newThreadId = threadId.incrementAndGet();
<a name="135" href="#135">135</a>             }
<a name="136" href="#136">136</a>         }
<a name="137" href="#137">137</a>         
<a name="138" href="#138">138</a>         <em class="jxr_comment">// Now we can compute the name for this thread</em>
<a name="139" href="#139">139</a>         <strong class="jxr_keyword">return</strong> cls.getSimpleName() + '-' + newThreadId;
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isDisposing() {
<a name="146" href="#146">146</a>         <strong class="jxr_keyword">return</strong> disposing;
<a name="147" href="#147">147</a>     }
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>     <em class="jxr_javadoccomment">/**</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     */</em>
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isDisposed() {
<a name="153" href="#153">153</a>         <strong class="jxr_keyword">return</strong> disposed;
<a name="154" href="#154">154</a>     }
<a name="155" href="#155">155</a>     
<a name="156" href="#156">156</a>     <em class="jxr_javadoccomment">/**</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     */</em>
<a name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> dispose() {
<a name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> (disposed) {
<a name="161" href="#161">161</a>             <strong class="jxr_keyword">return</strong>;
<a name="162" href="#162">162</a>         }
<a name="163" href="#163">163</a> 
<a name="164" href="#164">164</a>         <strong class="jxr_keyword">synchronized</strong> (disposalLock) {
<a name="165" href="#165">165</a>             <strong class="jxr_keyword">if</strong> (!disposing) {
<a name="166" href="#166">166</a>                 disposing = <strong class="jxr_keyword">true</strong>;
<a name="167" href="#167">167</a>                 startupProcessor();
<a name="168" href="#168">168</a>             }
<a name="169" href="#169">169</a>         }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>         disposalFuture.awaitUninterruptibly();
<a name="172" href="#172">172</a>         disposed = <strong class="jxr_keyword">true</strong>;
<a name="173" href="#173">173</a>     }
<a name="174" href="#174">174</a> 
<a name="175" href="#175">175</a>     <em class="jxr_javadoccomment">/**</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * Dispose the resources used by this {@link IoProcessor} for polling </em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * the client connections</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * @throws Exception if some low level IO error occurs</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     */</em>
<a name="180" href="#180">180</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> dispose0() <strong class="jxr_keyword">throws</strong> Exception;
<a name="181" href="#181">181</a> 
<a name="182" href="#182">182</a>     <em class="jxr_javadoccomment">/**</em>
<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * poll those sessions for the given timeout</em>
<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * @param timeout milliseconds before the call timeout if no event appear</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @return The number of session ready for read or for write</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @throws Exception if some low level IO error occurs</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> select(<strong class="jxr_keyword">long</strong> timeout) <strong class="jxr_keyword">throws</strong> Exception;
<a name="189" href="#189">189</a>     
<a name="190" href="#190">190</a>     <em class="jxr_javadoccomment">/**</em>
<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * poll those sessions forever</em>
<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * @return The number of session ready for read or for write</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * @throws Exception if some low level IO error occurs</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     */</em>
<a name="195" href="#195">195</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="196" href="#196">196</a>     
<a name="197" href="#197">197</a>     <em class="jxr_javadoccomment">/**</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     * Say if the list of {@link IoSession} polled by this {@link IoProcessor} </em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * is empty</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @return true if at least a session is managed by this {@link IoProcessor}</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     */</em>
<a name="202" href="#202">202</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isSelectorEmpty();
<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">     * Interrupt the {@link AbstractPollingIoProcessor#select(int) call.</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     */</em>
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> wakeup();
<a name="208" href="#208">208</a>     
<a name="209" href="#209">209</a>     <em class="jxr_javadoccomment">/**</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * Get an {@link Iterator} for the list of {@link IoSession} polled by this</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * {@link IoProcessor}   </em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * @return {@link Iterator} of {@link IoSession}</em>
<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     */</em>
<a name="214" href="#214">214</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> Iterator&lt;T&gt; allSessions();
<a name="215" href="#215">215</a>     
<a name="216" href="#216">216</a>     <em class="jxr_javadoccomment">/**</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * Get an {@link Iterator} for the list of {@link IoSession} found selected </em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * by the last call of {@link AbstractPollingIoProcessor#select(int)</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * @return {@link Iterator} of {@link IoSession} read for I/Os operation</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     */</em>
<a name="221" href="#221">221</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> Iterator&lt;T&gt; selectedSessions();
<a name="222" href="#222">222</a>     
<a name="223" href="#223">223</a>     <em class="jxr_javadoccomment">/**</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * Get the state of a session (preparing, open, closed)</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     * @param session the {@link IoSession} to inspect</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * @return the state of the session</em>
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">     */</em>
<a name="228" href="#228">228</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">SessionState</a> state(T session);
<a name="229" href="#229">229</a> 
<a name="230" href="#230">230</a>     <em class="jxr_javadoccomment">/**</em>
<a name="231" href="#231">231</a> <em class="jxr_javadoccomment">     * Is the session ready for writing</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">     * @param session the session queried</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * @return true is ready, false if not ready</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     */</em>
<a name="235" href="#235">235</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isWritable(T session);
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>     <em class="jxr_javadoccomment">/**</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     * Is the session ready for reading</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * @param session the session queried</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * @return true is ready, false if not ready</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     */</em>
<a name="242" href="#242">242</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isReadable(T session);
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>     <em class="jxr_javadoccomment">/**</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * register a session for writing</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">     * @param session the session registered</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * @param interested true for registering, false for removing</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     */</em>
<a name="249" href="#249">249</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)
<a name="250" href="#250">250</a>             <strong class="jxr_keyword">throws</strong> Exception;
<a name="251" href="#251">251</a> 
<a name="252" href="#252">252</a>     <em class="jxr_javadoccomment">/**</em>
<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * register a session for reading</em>
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @param session the session registered</em>
<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     * @param interested true for registering, false for removing</em>
<a name="256" href="#256">256</a> <em class="jxr_javadoccomment">     */</em>
<a name="257" href="#257">257</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> setInterestedInRead(T session, <strong class="jxr_keyword">boolean</strong> interested)
<a name="258" href="#258">258</a>             <strong class="jxr_keyword">throws</strong> Exception;
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>     <em class="jxr_javadoccomment">/**</em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     * is this session registered for reading</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * @param session the session queried</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * @return true is registered for reading</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     */</em>
<a name="265" href="#265">265</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isInterestedInRead(T session);
<a name="266" href="#266">266</a> 
<a name="267" href="#267">267</a>     <em class="jxr_javadoccomment">/**</em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * is this session registered for writing</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * @param session the session queried</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * @return true is registered for writing</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     */</em>
<a name="272" href="#272">272</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isInterestedInWrite(T session);
<a name="273" href="#273">273</a> 
<a name="274" href="#274">274</a>     <em class="jxr_javadoccomment">/**</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * Initialize the polling of a session. Add it to the polling process. </em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     * @param session the {@link IoSession} to add to the polling</em>
<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">     * @throws Exception any exception thrown by the underlying system calls</em>
<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">     */</em>
<a name="279" href="#279">279</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> init(T session) <strong class="jxr_keyword">throws</strong> Exception;
<a name="280" href="#280">280</a>     
<a name="281" href="#281">281</a>     <em class="jxr_javadoccomment">/**</em>
<a name="282" href="#282">282</a> <em class="jxr_javadoccomment">     * Destroy the underlying client socket handle</em>
<a name="283" href="#283">283</a> <em class="jxr_javadoccomment">     * @param session the {@link IoSession}</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     * @throws Exception any exception thrown by the underlying system calls</em>
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     */</em>
<a name="286" href="#286">286</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> destroy(T session) <strong class="jxr_keyword">throws</strong> Exception;
<a name="287" href="#287">287</a>     
<a name="288" href="#288">288</a>     <em class="jxr_javadoccomment">/**</em>
<a name="289" href="#289">289</a> <em class="jxr_javadoccomment">     * Reads a sequence of bytes from a {@link IoSession} into the given {@link IoBuffer}. </em>
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     * Is called when the session was found ready for reading.</em>
<a name="291" href="#291">291</a> <em class="jxr_javadoccomment">     * @param session the session to read</em>
<a name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * @param buf the buffer to fill</em>
<a name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * @return the number of bytes read</em>
<a name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * @throws Exception any exception thrown by the underlying system calls</em>
<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     */</em>
<a name="296" href="#296">296</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> read(T session, <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf) <strong class="jxr_keyword">throws</strong> Exception;
<a name="297" href="#297">297</a> 
<a name="298" href="#298">298</a>     <em class="jxr_javadoccomment">/**</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * Write a sequence of bytes to a {@link IoSession}, means to be called when a session</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * was found ready for writing.</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">     * @param session the session to write</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     * @param buf the buffer to write</em>
<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">     * @param length the number of bytes to write can be superior to the number of bytes remaining</em>
<a name="304" href="#304">304</a> <em class="jxr_javadoccomment">     * in the buffer</em>
<a name="305" href="#305">305</a> <em class="jxr_javadoccomment">     * @return the number of byte written</em>
<a name="306" href="#306">306</a> <em class="jxr_javadoccomment">     * @throws Exception any exception thrown by the underlying system calls</em>
<a name="307" href="#307">307</a> <em class="jxr_javadoccomment">     */</em>
<a name="308" href="#308">308</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> write(T session, <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf, <strong class="jxr_keyword">int</strong> length) <strong class="jxr_keyword">throws</strong> Exception;
<a name="309" href="#309">309</a>     
<a name="310" href="#310">310</a>     <em class="jxr_javadoccomment">/**</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * Write a part of a file to a {@link IoSession}, if the underlying API isn't supporting</em>
<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * system calls like sendfile(), you can throw a {@link UnsupportedOperationException} so </em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * the file will be send using usual {@link #write(AbstractIoSession, IoBuffer, int)} call. </em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     * @param session the session to write</em>
<a name="315" href="#315">315</a> <em class="jxr_javadoccomment">     * @param region the file region to write</em>
<a name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * @param length the length of the portion to send</em>
<a name="317" href="#317">317</a> <em class="jxr_javadoccomment">     * @return the number of written bytes</em>
<a name="318" href="#318">318</a> <em class="jxr_javadoccomment">     * @throws Exception any exception thrown by the underlying system calls</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     */</em>
<a name="320" href="#320">320</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">int</strong> transferFile(T session, <a href="../../../../../org/apache/mina/core/file/FileRegion.html">FileRegion</a> region, <strong class="jxr_keyword">int</strong> length) <strong class="jxr_keyword">throws</strong> Exception;
<a name="321" href="#321">321</a> 
<a name="322" href="#322">322</a>     <em class="jxr_javadoccomment">/**</em>
<a name="323" href="#323">323</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="324" href="#324">324</a> <em class="jxr_javadoccomment">     */</em>
<a name="325" href="#325">325</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> add(T session) {
<a name="326" href="#326">326</a>         <strong class="jxr_keyword">if</strong> (isDisposing()) {
<a name="327" href="#327">327</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Already disposed."</span>);
<a name="328" href="#328">328</a>         }
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>         <em class="jxr_comment">// Adds the session to the newSession queue and starts the worker</em>
<a name="331" href="#331">331</a>         newSessions.add(session);
<a name="332" href="#332">332</a>         startupProcessor();
<a name="333" href="#333">333</a>     }
<a name="334" href="#334">334</a> 
<a name="335" href="#335">335</a>     <em class="jxr_javadoccomment">/**</em>
<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     */</em>
<a name="338" href="#338">338</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> remove(T session) {
<a name="339" href="#339">339</a>         scheduleRemove(session);
<a name="340" href="#340">340</a>         startupProcessor();
<a name="341" href="#341">341</a>     }
<a name="342" href="#342">342</a> 
<a name="343" href="#343">343</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> scheduleRemove(T session) {
<a name="344" href="#344">344</a>         removingSessions.add(session);
<a name="345" href="#345">345</a>     }
<a name="346" href="#346">346</a> 
<a name="347" href="#347">347</a>     <em class="jxr_javadoccomment">/**</em>
<a name="348" href="#348">348</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="349" href="#349">349</a> <em class="jxr_javadoccomment">     */</em>
<a name="350" href="#350">350</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> flush(T session) {
<a name="351" href="#351">351</a>         <strong class="jxr_keyword">boolean</strong> needsWakeup = flushingSessions.isEmpty();
<a name="352" href="#352">352</a>         <strong class="jxr_keyword">if</strong> (scheduleFlush(session) &amp;&amp; needsWakeup) {
<a name="353" href="#353">353</a>             wakeup();
<a name="354" href="#354">354</a>         }
<a name="355" href="#355">355</a>     }
<a name="356" href="#356">356</a> 
<a name="357" href="#357">357</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> scheduleFlush(T session) {
<a name="358" href="#358">358</a>         <strong class="jxr_keyword">if</strong> (session.setScheduledForFlush(<strong class="jxr_keyword">true</strong>)) {
<a name="359" href="#359">359</a>             flushingSessions.add(session);
<a name="360" href="#360">360</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="361" href="#361">361</a>         }
<a name="362" href="#362">362</a>         <strong class="jxr_keyword">return</strong> false;
<a name="363" href="#363">363</a>     }
<a name="364" href="#364">364</a> 
<a name="365" href="#365">365</a>     <em class="jxr_javadoccomment">/**</em>
<a name="366" href="#366">366</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="367" href="#367">367</a> <em class="jxr_javadoccomment">     */</em>
<a name="368" href="#368">368</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> updateTrafficMask(T session) {
<a name="369" href="#369">369</a>         scheduleTrafficControl(session);
<a name="370" href="#370">370</a>         wakeup();
<a name="371" href="#371">371</a>     }
<a name="372" href="#372">372</a> 
<a name="373" href="#373">373</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> scheduleTrafficControl(T session) {
<a name="374" href="#374">374</a>         trafficControllingSessions.add(session);
<a name="375" href="#375">375</a>     }
<a name="376" href="#376">376</a> 
<a name="377" href="#377">377</a>     <em class="jxr_javadoccomment">/**</em>
<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     * Starts the inner Processor, asking the executor to pick a thread in its</em>
<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     * pool. The Runnable will be renamed </em>
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     */</em>
<a name="381" href="#381">381</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> startupProcessor() {
<a name="382" href="#382">382</a>         <strong class="jxr_keyword">synchronized</strong> (lock) {
<a name="383" href="#383">383</a>             <strong class="jxr_keyword">if</strong> (processor == <strong class="jxr_keyword">null</strong>) {
<a name="384" href="#384">384</a>                 processor = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">Processor</a>();
<a name="385" href="#385">385</a>                 executor.execute(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/util/NamePreservingRunnable.html">NamePreservingRunnable</a>(processor, threadName));
<a name="386" href="#386">386</a>             }
<a name="387" href="#387">387</a>         }
<a name="388" href="#388">388</a>         
<a name="389" href="#389">389</a>         <em class="jxr_comment">// Just stop the select() and start it again, so that the processor</em>
<a name="390" href="#390">390</a>         <em class="jxr_comment">// can be activated immediately. </em>
<a name="391" href="#391">391</a>         wakeup();
<a name="392" href="#392">392</a>     }
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>     <em class="jxr_javadoccomment">/**</em>
<a name="395" href="#395">395</a> <em class="jxr_javadoccomment">     * Handle newly created sessions</em>
<a name="396" href="#396">396</a> <em class="jxr_javadoccomment">     * @return The number of new sessions</em>
<a name="397" href="#397">397</a> <em class="jxr_javadoccomment">     */</em>
<a name="398" href="#398">398</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> handleNewSessions() {
<a name="399" href="#399">399</a>         <strong class="jxr_keyword">int</strong> addedSessions = 0;
<a name="400" href="#400">400</a>         
<a name="401" href="#401">401</a>         <em class="jxr_comment">// Loop on the new sessions blocking queue, to count</em>
<a name="402" href="#402">402</a>         <em class="jxr_comment">// the number of sessions who has been created</em>
<a name="403" href="#403">403</a>         <strong class="jxr_keyword">for</strong> (;;) {
<a name="404" href="#404">404</a>             T session = newSessions.poll();
<a name="405" href="#405">405</a> 
<a name="406" href="#406">406</a>             <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong>) {
<a name="407" href="#407">407</a>                 <em class="jxr_comment">// We don't have new sessions</em>
<a name="408" href="#408">408</a>                 <strong class="jxr_keyword">break</strong>;
<a name="409" href="#409">409</a>             }
<a name="410" href="#410">410</a> 
<a name="411" href="#411">411</a> 
<a name="412" href="#412">412</a>             <strong class="jxr_keyword">if</strong> (addNow(session)) {
<a name="413" href="#413">413</a>                 <em class="jxr_comment">// A new session has been created </em>
<a name="414" href="#414">414</a>                 addedSessions ++;
<a name="415" href="#415">415</a>             }
<a name="416" href="#416">416</a>         }
<a name="417" href="#417">417</a> 
<a name="418" href="#418">418</a>         <strong class="jxr_keyword">return</strong> addedSessions;
<a name="419" href="#419">419</a>     }
<a name="420" href="#420">420</a> 
<a name="421" href="#421">421</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> addNow(T session) {
<a name="422" href="#422">422</a> 
<a name="423" href="#423">423</a>         <strong class="jxr_keyword">boolean</strong> registered = false;
<a name="424" href="#424">424</a>         <strong class="jxr_keyword">boolean</strong> notified = false;
<a name="425" href="#425">425</a>         <strong class="jxr_keyword">try</strong> {
<a name="426" href="#426">426</a>             init(session);
<a name="427" href="#427">427</a>             registered = <strong class="jxr_keyword">true</strong>;
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>             <em class="jxr_comment">// Build the filter chain of this session.</em>
<a name="430" href="#430">430</a>             session.getService().getFilterChainBuilder().buildFilterChain(
<a name="431" href="#431">431</a>                     session.getFilterChain());
<a name="432" href="#432">432</a> 
<a name="433" href="#433">433</a>             <em class="jxr_comment">// DefaultIoFilterChain.CONNECT_FUTURE is cleared inside here</em>
<a name="434" href="#434">434</a>             <em class="jxr_comment">// in AbstractIoFilterChain.fireSessionOpened().</em>
<a name="435" href="#435">435</a>             ((<a href="../../../../../org/apache/mina/core/service/AbstractIoService.html">AbstractIoService</a>) session.getService()).getListeners().fireSessionCreated(session);
<a name="436" href="#436">436</a>             notified = <strong class="jxr_keyword">true</strong>;
<a name="437" href="#437">437</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="438" href="#438">438</a>             <strong class="jxr_keyword">if</strong> (notified) {
<a name="439" href="#439">439</a>                 <em class="jxr_comment">// Clear the DefaultIoFilterChain.CONNECT_FUTURE attribute</em>
<a name="440" href="#440">440</a>                 <em class="jxr_comment">// and call ConnectFuture.setException().</em>
<a name="441" href="#441">441</a>                 scheduleRemove(session);
<a name="442" href="#442">442</a>                 <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="443" href="#443">443</a>                 filterChain.fireExceptionCaught(e);
<a name="444" href="#444">444</a>                 wakeup();
<a name="445" href="#445">445</a>             } <strong class="jxr_keyword">else</strong> {
<a name="446" href="#446">446</a>                 ExceptionMonitor.getInstance().exceptionCaught(e);
<a name="447" href="#447">447</a>                 <strong class="jxr_keyword">try</strong> {
<a name="448" href="#448">448</a>                     destroy(session);
<a name="449" href="#449">449</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e1) {
<a name="450" href="#450">450</a>                     ExceptionMonitor.getInstance().exceptionCaught(e1);
<a name="451" href="#451">451</a>                 } <strong class="jxr_keyword">finally</strong> {
<a name="452" href="#452">452</a>                     registered = false;
<a name="453" href="#453">453</a>                 }
<a name="454" href="#454">454</a>             }
<a name="455" href="#455">455</a>         }
<a name="456" href="#456">456</a>         <strong class="jxr_keyword">return</strong> registered;
<a name="457" href="#457">457</a>     }
<a name="458" href="#458">458</a> 
<a name="459" href="#459">459</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> remove() {
<a name="460" href="#460">460</a>         <strong class="jxr_keyword">int</strong> removedSessions = 0;
<a name="461" href="#461">461</a>         <strong class="jxr_keyword">for</strong> (; ;) {
<a name="462" href="#462">462</a>             T session = removingSessions.poll();
<a name="463" href="#463">463</a> 
<a name="464" href="#464">464</a>             <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong>) {
<a name="465" href="#465">465</a>                 <strong class="jxr_keyword">break</strong>;
<a name="466" href="#466">466</a>             }
<a name="467" href="#467">467</a> 
<a name="468" href="#468">468</a>             <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">SessionState</a> state = state(session);
<a name="469" href="#469">469</a>             <strong class="jxr_keyword">switch</strong> (state) {
<a name="470" href="#470">470</a>             <strong class="jxr_keyword">case</strong> OPEN:
<a name="471" href="#471">471</a>                 <strong class="jxr_keyword">if</strong> (removeNow(session)) {
<a name="472" href="#472">472</a>                     removedSessions ++;
<a name="473" href="#473">473</a>                 }
<a name="474" href="#474">474</a>                 <strong class="jxr_keyword">break</strong>;
<a name="475" href="#475">475</a>             <strong class="jxr_keyword">case</strong> CLOSED:
<a name="476" href="#476">476</a>                 <em class="jxr_comment">// Skip if channel is already closed</em>
<a name="477" href="#477">477</a>                 <strong class="jxr_keyword">break</strong>;
<a name="478" href="#478">478</a>             <strong class="jxr_keyword">case</strong> PREPARING:
<a name="479" href="#479">479</a>                 <em class="jxr_comment">// Retry later if session is not yet fully initialized.</em>
<a name="480" href="#480">480</a>                 <em class="jxr_comment">// (In case that Session.close() is called before addSession() is processed)</em>
<a name="481" href="#481">481</a>                 scheduleRemove(session);
<a name="482" href="#482">482</a>                 <strong class="jxr_keyword">return</strong> removedSessions;
<a name="483" href="#483">483</a>             <strong class="jxr_keyword">default</strong>:
<a name="484" href="#484">484</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(String.valueOf(state));
<a name="485" href="#485">485</a>             }
<a name="486" href="#486">486</a>         }
<a name="487" href="#487">487</a> 
<a name="488" href="#488">488</a>         <strong class="jxr_keyword">return</strong> removedSessions;
<a name="489" href="#489">489</a>     }
<a name="490" href="#490">490</a> 
<a name="491" href="#491">491</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> removeNow(T session) {
<a name="492" href="#492">492</a>         clearWriteRequestQueue(session);
<a name="493" href="#493">493</a> 
<a name="494" href="#494">494</a>         <strong class="jxr_keyword">try</strong> {
<a name="495" href="#495">495</a>             destroy(session);
<a name="496" href="#496">496</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="497" href="#497">497</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="498" href="#498">498</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="499" href="#499">499</a>             filterChain.fireExceptionCaught(e);
<a name="500" href="#500">500</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="501" href="#501">501</a>             clearWriteRequestQueue(session);
<a name="502" href="#502">502</a>             ((<a href="../../../../../org/apache/mina/core/service/AbstractIoService.html">AbstractIoService</a>) session.getService()).getListeners().fireSessionDestroyed(session);
<a name="503" href="#503">503</a>         }
<a name="504" href="#504">504</a>         <strong class="jxr_keyword">return</strong> false;
<a name="505" href="#505">505</a>     }
<a name="506" href="#506">506</a> 
<a name="507" href="#507">507</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> clearWriteRequestQueue(T session) {
<a name="508" href="#508">508</a>         <a href="../../../../../org/apache/mina/core/write/WriteRequestQueue.html">WriteRequestQueue</a> writeRequestQueue = session.getWriteRequestQueue();
<a name="509" href="#509">509</a>         <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> req;
<a name="510" href="#510">510</a> 
<a name="511" href="#511">511</a>         List&lt;WriteRequest&gt; failedRequests = <strong class="jxr_keyword">new</strong> ArrayList&lt;WriteRequest&gt;();
<a name="512" href="#512">512</a> 
<a name="513" href="#513">513</a>         <strong class="jxr_keyword">if</strong> ((req = writeRequestQueue.poll(session)) != <strong class="jxr_keyword">null</strong>) {
<a name="514" href="#514">514</a>             Object m = req.getMessage();
<a name="515" href="#515">515</a>             <strong class="jxr_keyword">if</strong> (m instanceof IoBuffer) {
<a name="516" href="#516">516</a>                 <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) req.getMessage();
<a name="517" href="#517">517</a> 
<a name="518" href="#518">518</a>                 <em class="jxr_comment">// The first unwritten empty buffer must be</em>
<a name="519" href="#519">519</a>                 <em class="jxr_comment">// forwarded to the filter chain.</em>
<a name="520" href="#520">520</a>                 <strong class="jxr_keyword">if</strong> (buf.hasRemaining()) {
<a name="521" href="#521">521</a>                     buf.reset();
<a name="522" href="#522">522</a>                     failedRequests.add(req);
<a name="523" href="#523">523</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="524" href="#524">524</a>                     <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="525" href="#525">525</a>                     filterChain.fireMessageSent(req);
<a name="526" href="#526">526</a>                 }
<a name="527" href="#527">527</a>             } <strong class="jxr_keyword">else</strong> {
<a name="528" href="#528">528</a>                 failedRequests.add(req);
<a name="529" href="#529">529</a>             }
<a name="530" href="#530">530</a> 
<a name="531" href="#531">531</a>             <em class="jxr_comment">// Discard others.</em>
<a name="532" href="#532">532</a>             <strong class="jxr_keyword">while</strong> ((req = writeRequestQueue.poll(session)) != <strong class="jxr_keyword">null</strong>) {
<a name="533" href="#533">533</a>                 failedRequests.add(req);
<a name="534" href="#534">534</a>             }
<a name="535" href="#535">535</a>         }
<a name="536" href="#536">536</a> 
<a name="537" href="#537">537</a>         <em class="jxr_comment">// Create an exception and notify.</em>
<a name="538" href="#538">538</a>         <strong class="jxr_keyword">if</strong> (!failedRequests.isEmpty()) {
<a name="539" href="#539">539</a>             <a href="../../../../../org/apache/mina/core/write/WriteToClosedSessionException.html">WriteToClosedSessionException</a> cause = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/write/WriteToClosedSessionException.html">WriteToClosedSessionException</a>(failedRequests);
<a name="540" href="#540">540</a>             <strong class="jxr_keyword">for</strong> (WriteRequest r: failedRequests) {
<a name="541" href="#541">541</a>                 session.decreaseScheduledBytesAndMessages(r);
<a name="542" href="#542">542</a>                 r.getFuture().setException(cause);
<a name="543" href="#543">543</a>             }
<a name="544" href="#544">544</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="545" href="#545">545</a>             filterChain.fireExceptionCaught(cause);
<a name="546" href="#546">546</a>         }
<a name="547" href="#547">547</a>     }
<a name="548" href="#548">548</a> 
<a name="549" href="#549">549</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> process() <strong class="jxr_keyword">throws</strong> Exception {
<a name="550" href="#550">550</a>         <strong class="jxr_keyword">for</strong> (Iterator&lt;T&gt; i = selectedSessions(); i.hasNext();) {
<a name="551" href="#551">551</a>             T session = i.next();
<a name="552" href="#552">552</a>             process(session);
<a name="553" href="#553">553</a>             i.remove();
<a name="554" href="#554">554</a>         }
<a name="555" href="#555">555</a>     }
<a name="556" href="#556">556</a> 
<a name="557" href="#557">557</a>     <em class="jxr_javadoccomment">/**</em>
<a name="558" href="#558">558</a> <em class="jxr_javadoccomment">     * Deal with session ready for the read or write operations, or both.</em>
<a name="559" href="#559">559</a> <em class="jxr_javadoccomment">     */</em>
<a name="560" href="#560">560</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> process(T session) {
<a name="561" href="#561">561</a>         <em class="jxr_comment">// Process Reads</em>
<a name="562" href="#562">562</a>         <strong class="jxr_keyword">if</strong> (isReadable(session) &amp;&amp; !session.isReadSuspended()) {
<a name="563" href="#563">563</a>             read(session);
<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">// Process writes</em>
<a name="567" href="#567">567</a>         <strong class="jxr_keyword">if</strong> (isWritable(session) &amp;&amp; !session.isWriteSuspended()) {
<a name="568" href="#568">568</a>             scheduleFlush(session);
<a name="569" href="#569">569</a>         }
<a name="570" href="#570">570</a>     }
<a name="571" href="#571">571</a> 
<a name="572" href="#572">572</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> read(T session) {
<a name="573" href="#573">573</a>         <a href="../../../../../org/apache/mina/core/session/IoSessionConfig.html">IoSessionConfig</a> config = session.getConfig();
<a name="574" href="#574">574</a>         <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf = IoBuffer.allocate(config.getReadBufferSize());
<a name="575" href="#575">575</a> 
<a name="576" href="#576">576</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> hasFragmentation =
<a name="577" href="#577">577</a>             session.getTransportMetadata().hasFragmentation();
<a name="578" href="#578">578</a> 
<a name="579" href="#579">579</a>         <strong class="jxr_keyword">try</strong> {
<a name="580" href="#580">580</a>             <strong class="jxr_keyword">int</strong> readBytes = 0;
<a name="581" href="#581">581</a>             <strong class="jxr_keyword">int</strong> ret;
<a name="582" href="#582">582</a> 
<a name="583" href="#583">583</a>             <strong class="jxr_keyword">try</strong> {
<a name="584" href="#584">584</a>                 <strong class="jxr_keyword">if</strong> (hasFragmentation) {
<a name="585" href="#585">585</a>                     <strong class="jxr_keyword">while</strong> ((ret = read(session, buf)) &gt; 0) {
<a name="586" href="#586">586</a>                         readBytes += ret;
<a name="587" href="#587">587</a>                         <strong class="jxr_keyword">if</strong> (!buf.hasRemaining()) {
<a name="588" href="#588">588</a>                             <strong class="jxr_keyword">break</strong>;
<a name="589" href="#589">589</a>                         }
<a name="590" href="#590">590</a>                     }
<a name="591" href="#591">591</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="592" href="#592">592</a>                     ret = read(session, buf);
<a name="593" href="#593">593</a>                     <strong class="jxr_keyword">if</strong> (ret &gt; 0) {
<a name="594" href="#594">594</a>                         readBytes = ret;
<a name="595" href="#595">595</a>                     }
<a name="596" href="#596">596</a>                 }
<a name="597" href="#597">597</a>             } <strong class="jxr_keyword">finally</strong> {
<a name="598" href="#598">598</a>                 buf.flip();
<a name="599" href="#599">599</a>             }
<a name="600" href="#600">600</a> 
<a name="601" href="#601">601</a>             <strong class="jxr_keyword">if</strong> (readBytes &gt; 0) {
<a name="602" href="#602">602</a>                 <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="603" href="#603">603</a>                 filterChain.fireMessageReceived(buf);
<a name="604" href="#604">604</a>                 buf = <strong class="jxr_keyword">null</strong>;
<a name="605" href="#605">605</a> 
<a name="606" href="#606">606</a>                 <strong class="jxr_keyword">if</strong> (hasFragmentation) {
<a name="607" href="#607">607</a>                     <strong class="jxr_keyword">if</strong> (readBytes &lt;&lt; 1 &lt; config.getReadBufferSize()) {
<a name="608" href="#608">608</a>                         session.decreaseReadBufferSize();
<a name="609" href="#609">609</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (readBytes == config.getReadBufferSize()) {
<a name="610" href="#610">610</a>                         session.increaseReadBufferSize();
<a name="611" href="#611">611</a>                     }
<a name="612" href="#612">612</a>                 }
<a name="613" href="#613">613</a>             }
<a name="614" href="#614">614</a>             <strong class="jxr_keyword">if</strong> (ret &lt; 0) {
<a name="615" href="#615">615</a>                 scheduleRemove(session);
<a name="616" href="#616">616</a>             }
<a name="617" href="#617">617</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="618" href="#618">618</a>             <strong class="jxr_keyword">if</strong> (e instanceof IOException) {
<a name="619" href="#619">619</a>                 scheduleRemove(session);
<a name="620" href="#620">620</a>             }
<a name="621" href="#621">621</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="622" href="#622">622</a>             filterChain.fireExceptionCaught(e);
<a name="623" href="#623">623</a>         }
<a name="624" href="#624">624</a>     }
<a name="625" href="#625">625</a> 
<a name="626" href="#626">626</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> notifyIdleSessions(<strong class="jxr_keyword">long</strong> currentTime) <strong class="jxr_keyword">throws</strong> Exception {
<a name="627" href="#627">627</a>         <em class="jxr_comment">// process idle sessions</em>
<a name="628" href="#628">628</a>         <strong class="jxr_keyword">if</strong> (currentTime - lastIdleCheckTime &gt;= SELECT_TIMEOUT) {
<a name="629" href="#629">629</a>             lastIdleCheckTime = currentTime;
<a name="630" href="#630">630</a>             AbstractIoSession.notifyIdleness(allSessions(), currentTime);
<a name="631" href="#631">631</a>         }
<a name="632" href="#632">632</a>     }
<a name="633" href="#633">633</a> 
<a name="634" href="#634">634</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> flush(<strong class="jxr_keyword">long</strong> currentTime) {
<a name="635" href="#635">635</a>         <strong class="jxr_keyword">final</strong> T firstSession = flushingSessions.peek();
<a name="636" href="#636">636</a>         <strong class="jxr_keyword">if</strong> (firstSession == <strong class="jxr_keyword">null</strong>) {
<a name="637" href="#637">637</a>             <strong class="jxr_keyword">return</strong>;
<a name="638" href="#638">638</a>         }
<a name="639" href="#639">639</a> 
<a name="640" href="#640">640</a>         T session = flushingSessions.poll(); <em class="jxr_comment">// the same one with firstSession</em>
<a name="641" href="#641">641</a>         <strong class="jxr_keyword">for</strong> (; ;) {
<a name="642" href="#642">642</a>             session.setScheduledForFlush(false);
<a name="643" href="#643">643</a>             <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">SessionState</a> state = state(session);
<a name="644" href="#644">644</a>             
<a name="645" href="#645">645</a>             <strong class="jxr_keyword">switch</strong> (state) {
<a name="646" href="#646">646</a>             <strong class="jxr_keyword">case</strong> OPEN:
<a name="647" href="#647">647</a>                 <strong class="jxr_keyword">try</strong> {
<a name="648" href="#648">648</a>                     <strong class="jxr_keyword">boolean</strong> flushedAll = flushNow(session, currentTime);
<a name="649" href="#649">649</a>                     <strong class="jxr_keyword">if</strong> (flushedAll &amp;&amp; !session.getWriteRequestQueue().isEmpty(session) &amp;&amp;
<a name="650" href="#650">650</a>                         !session.isScheduledForFlush()) {
<a name="651" href="#651">651</a>                         scheduleFlush(session);
<a name="652" href="#652">652</a>                     }
<a name="653" href="#653">653</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="654" href="#654">654</a>                     scheduleRemove(session);
<a name="655" href="#655">655</a>                     <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="656" href="#656">656</a>                     filterChain.fireExceptionCaught(e);
<a name="657" href="#657">657</a>                 }
<a name="658" href="#658">658</a>                 <strong class="jxr_keyword">break</strong>;
<a name="659" href="#659">659</a>             <strong class="jxr_keyword">case</strong> CLOSED:
<a name="660" href="#660">660</a>                 <em class="jxr_comment">// Skip if the channel is already closed.</em>
<a name="661" href="#661">661</a>                 <strong class="jxr_keyword">break</strong>;
<a name="662" href="#662">662</a>             <strong class="jxr_keyword">case</strong> PREPARING:
<a name="663" href="#663">663</a>                 <em class="jxr_comment">// Retry later if session is not yet fully initialized.</em>
<a name="664" href="#664">664</a>                 <em class="jxr_comment">// (In case that Session.write() is called before addSession() is processed)</em>
<a name="665" href="#665">665</a>                 scheduleFlush(session);
<a name="666" href="#666">666</a>                 <strong class="jxr_keyword">return</strong>;
<a name="667" href="#667">667</a>             <strong class="jxr_keyword">default</strong>:
<a name="668" href="#668">668</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(String.valueOf(state));
<a name="669" href="#669">669</a>             }
<a name="670" href="#670">670</a> 
<a name="671" href="#671">671</a>             session = flushingSessions.peek();
<a name="672" href="#672">672</a>             <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong> || session == firstSession) {
<a name="673" href="#673">673</a>                 <strong class="jxr_keyword">break</strong>;
<a name="674" href="#674">674</a>             }
<a name="675" href="#675">675</a>             session = flushingSessions.poll();
<a name="676" href="#676">676</a>         }
<a name="677" href="#677">677</a>     }
<a name="678" href="#678">678</a> 
<a name="679" href="#679">679</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> flushNow(T session, <strong class="jxr_keyword">long</strong> currentTime) {
<a name="680" href="#680">680</a>         <strong class="jxr_keyword">if</strong> (!session.isConnected()) {
<a name="681" href="#681">681</a>             scheduleRemove(session);
<a name="682" href="#682">682</a>             <strong class="jxr_keyword">return</strong> false;
<a name="683" href="#683">683</a>         }
<a name="684" href="#684">684</a> 
<a name="685" href="#685">685</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> hasFragmentation =
<a name="686" href="#686">686</a>             session.getTransportMetadata().hasFragmentation();
<a name="687" href="#687">687</a> 
<a name="688" href="#688">688</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/write/WriteRequestQueue.html">WriteRequestQueue</a> writeRequestQueue = session.getWriteRequestQueue();
<a name="689" href="#689">689</a> 
<a name="690" href="#690">690</a>         <em class="jxr_comment">// Set limitation for the number of written bytes for read-write</em>
<a name="691" href="#691">691</a>         <em class="jxr_comment">// fairness.  I used maxReadBufferSize * 3 / 2, which yields best</em>
<a name="692" href="#692">692</a>         <em class="jxr_comment">// performance in my experience while not breaking fairness much.</em>
<a name="693" href="#693">693</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> maxWrittenBytes = session.getConfig().getMaxReadBufferSize() +
<a name="694" href="#694">694</a>                               (session.getConfig().getMaxReadBufferSize() &gt;&gt;&gt; 1);
<a name="695" href="#695">695</a>         <strong class="jxr_keyword">int</strong> writtenBytes = 0;
<a name="696" href="#696">696</a>         <strong class="jxr_keyword">try</strong> {
<a name="697" href="#697">697</a>             <em class="jxr_comment">// Clear OP_WRITE</em>
<a name="698" href="#698">698</a>             setInterestedInWrite(session, false);
<a name="699" href="#699">699</a>             <strong class="jxr_keyword">do</strong> {
<a name="700" href="#700">700</a>                 <em class="jxr_comment">// Check for pending writes.</em>
<a name="701" href="#701">701</a>                 <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> req = session.getCurrentWriteRequest();
<a name="702" href="#702">702</a>                 <strong class="jxr_keyword">if</strong> (req == <strong class="jxr_keyword">null</strong>) {
<a name="703" href="#703">703</a>                     req = writeRequestQueue.poll(session);
<a name="704" href="#704">704</a>                     <strong class="jxr_keyword">if</strong> (req == <strong class="jxr_keyword">null</strong>) {
<a name="705" href="#705">705</a>                         <strong class="jxr_keyword">break</strong>;
<a name="706" href="#706">706</a>                     }
<a name="707" href="#707">707</a>                     session.setCurrentWriteRequest(req);
<a name="708" href="#708">708</a>                 }
<a name="709" href="#709">709</a> 
<a name="710" href="#710">710</a>                 <strong class="jxr_keyword">int</strong> localWrittenBytes = 0;
<a name="711" href="#711">711</a>                 Object message = req.getMessage();
<a name="712" href="#712">712</a>                 <strong class="jxr_keyword">if</strong> (message instanceof IoBuffer) {
<a name="713" href="#713">713</a>                     localWrittenBytes = writeBuffer(
<a name="714" href="#714">714</a>                             session, req, hasFragmentation,
<a name="715" href="#715">715</a>                             maxWrittenBytes - writtenBytes,
<a name="716" href="#716">716</a>                             currentTime);
<a name="717" href="#717">717</a>                     <strong class="jxr_keyword">if</strong> (localWrittenBytes &gt; 0 &amp;&amp; ((IoBuffer)message).hasRemaining() ) {
<a name="718" href="#718">718</a>                         <em class="jxr_comment">// the buffer isn't empty, we re-interest it in writing </em>
<a name="719" href="#719">719</a>                         writtenBytes += localWrittenBytes;    
<a name="720" href="#720">720</a>                         setInterestedInWrite(session, <strong class="jxr_keyword">true</strong>);
<a name="721" href="#721">721</a>                         <strong class="jxr_keyword">return</strong> false;
<a name="722" href="#722">722</a>                     }
<a name="723" href="#723">723</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (message instanceof FileRegion) {
<a name="724" href="#724">724</a>                     localWrittenBytes = writeFile(
<a name="725" href="#725">725</a>                             session, req, hasFragmentation,
<a name="726" href="#726">726</a>                             maxWrittenBytes - writtenBytes,
<a name="727" href="#727">727</a>                             currentTime);
<a name="728" href="#728">728</a> 
<a name="729" href="#729">729</a>                     <em class="jxr_comment">// Fix for Java bug on Linux http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5103988</em>
<a name="730" href="#730">730</a>                     <em class="jxr_comment">// If there's still data to be written in the FileRegion, return 0 indicating that we need</em>
<a name="731" href="#731">731</a>                     <em class="jxr_comment">// to pause until writing may resume.</em>
<a name="732" href="#732">732</a>                     <strong class="jxr_keyword">if</strong> (localWrittenBytes &gt; 0 &amp;&amp; ((FileRegion) message).getRemainingBytes() &gt; 0) {
<a name="733" href="#733">733</a>                         writtenBytes += localWrittenBytes;
<a name="734" href="#734">734</a>                         setInterestedInWrite(session, <strong class="jxr_keyword">true</strong>);
<a name="735" href="#735">735</a>                         <strong class="jxr_keyword">return</strong> false;
<a name="736" href="#736">736</a>                     }
<a name="737" href="#737">737</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="738" href="#738">738</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Don't know how to handle message of type '"</span> + message.getClass().getName() + <span class="jxr_string">"'.  Are you missing a protocol encoder?"</span>);
<a name="739" href="#739">739</a>                 }
<a name="740" href="#740">740</a> 
<a name="741" href="#741">741</a>                 <strong class="jxr_keyword">if</strong> (localWrittenBytes == 0) {
<a name="742" href="#742">742</a>                     <em class="jxr_comment">// Kernel buffer is full.</em>
<a name="743" href="#743">743</a>                     setInterestedInWrite(session, <strong class="jxr_keyword">true</strong>);
<a name="744" href="#744">744</a>                     <strong class="jxr_keyword">return</strong> false;
<a name="745" href="#745">745</a>                 }
<a name="746" href="#746">746</a> 
<a name="747" href="#747">747</a>                 writtenBytes += localWrittenBytes;
<a name="748" href="#748">748</a> 
<a name="749" href="#749">749</a>                 <strong class="jxr_keyword">if</strong> (writtenBytes &gt;= maxWrittenBytes) {
<a name="750" href="#750">750</a>                     <em class="jxr_comment">// Wrote too much</em>
<a name="751" href="#751">751</a>                     scheduleFlush(session);
<a name="752" href="#752">752</a>                     <strong class="jxr_keyword">return</strong> false;
<a name="753" href="#753">753</a>                 }
<a name="754" href="#754">754</a>             } <strong class="jxr_keyword">while</strong> (writtenBytes &lt; maxWrittenBytes);
<a name="755" href="#755">755</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="756" href="#756">756</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="757" href="#757">757</a>             filterChain.fireExceptionCaught(e);
<a name="758" href="#758">758</a>             <strong class="jxr_keyword">return</strong> false;
<a name="759" href="#759">759</a>         }
<a name="760" href="#760">760</a> 
<a name="761" href="#761">761</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="762" href="#762">762</a>     }
<a name="763" href="#763">763</a> 
<a name="764" href="#764">764</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> writeBuffer(T session, <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> req,
<a name="765" href="#765">765</a>             <strong class="jxr_keyword">boolean</strong> hasFragmentation, <strong class="jxr_keyword">int</strong> maxLength, <strong class="jxr_keyword">long</strong> currentTime) <strong class="jxr_keyword">throws</strong> Exception {
<a name="766" href="#766">766</a>         <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) req.getMessage();
<a name="767" href="#767">767</a>         <strong class="jxr_keyword">int</strong> localWrittenBytes = 0;
<a name="768" href="#768">768</a>         <strong class="jxr_keyword">if</strong> (buf.hasRemaining()) {
<a name="769" href="#769">769</a>             <strong class="jxr_keyword">int</strong> length;
<a name="770" href="#770">770</a>             <strong class="jxr_keyword">if</strong> (hasFragmentation) {
<a name="771" href="#771">771</a>                 length = Math.min(buf.remaining(), maxLength);
<a name="772" href="#772">772</a>             } <strong class="jxr_keyword">else</strong> {
<a name="773" href="#773">773</a>                 length = buf.remaining();
<a name="774" href="#774">774</a>             }
<a name="775" href="#775">775</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = WRITE_SPIN_COUNT; i &gt; 0; i --) {
<a name="776" href="#776">776</a>                 localWrittenBytes = write(session, buf, length);
<a name="777" href="#777">777</a>                 <strong class="jxr_keyword">if</strong> (localWrittenBytes != 0) {
<a name="778" href="#778">778</a>                     <strong class="jxr_keyword">break</strong>;
<a name="779" href="#779">779</a>                 }
<a name="780" href="#780">780</a>             }
<a name="781" href="#781">781</a>         }
<a name="782" href="#782">782</a> 
<a name="783" href="#783">783</a>         session.increaseWrittenBytes(localWrittenBytes, currentTime);
<a name="784" href="#784">784</a> 
<a name="785" href="#785">785</a>         <strong class="jxr_keyword">if</strong> (!buf.hasRemaining() ||
<a name="786" href="#786">786</a>                 !hasFragmentation &amp;&amp; localWrittenBytes != 0) {
<a name="787" href="#787">787</a>             <em class="jxr_comment">// Buffer has been sent, clear the current request.</em>
<a name="788" href="#788">788</a>             buf.reset();
<a name="789" href="#789">789</a>             fireMessageSent(session, req);
<a name="790" href="#790">790</a>         }
<a name="791" href="#791">791</a>         <strong class="jxr_keyword">return</strong> localWrittenBytes;
<a name="792" href="#792">792</a>     }
<a name="793" href="#793">793</a> 
<a name="794" href="#794">794</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> writeFile(T session, <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> req,
<a name="795" href="#795">795</a>             <strong class="jxr_keyword">boolean</strong> hasFragmentation, <strong class="jxr_keyword">int</strong> maxLength, <strong class="jxr_keyword">long</strong> currentTime) <strong class="jxr_keyword">throws</strong> Exception {
<a name="796" href="#796">796</a>         <strong class="jxr_keyword">int</strong> localWrittenBytes;
<a name="797" href="#797">797</a>         <a href="../../../../../org/apache/mina/core/file/FileRegion.html">FileRegion</a> region = (FileRegion) req.getMessage();
<a name="798" href="#798">798</a>         <strong class="jxr_keyword">if</strong> (region.getRemainingBytes() &gt; 0) {
<a name="799" href="#799">799</a>             <strong class="jxr_keyword">int</strong> length;
<a name="800" href="#800">800</a>             <strong class="jxr_keyword">if</strong> (hasFragmentation) {
<a name="801" href="#801">801</a>                 length = (<strong class="jxr_keyword">int</strong>) Math.min(region.getRemainingBytes(), maxLength);
<a name="802" href="#802">802</a>             } <strong class="jxr_keyword">else</strong> {
<a name="803" href="#803">803</a>                 length = (<strong class="jxr_keyword">int</strong>) Math.min(Integer.MAX_VALUE, region.getRemainingBytes());
<a name="804" href="#804">804</a>             }
<a name="805" href="#805">805</a>             localWrittenBytes = transferFile(session, region, length);
<a name="806" href="#806">806</a>             region.update(localWrittenBytes);
<a name="807" href="#807">807</a>         } <strong class="jxr_keyword">else</strong> {
<a name="808" href="#808">808</a>             localWrittenBytes = 0;
<a name="809" href="#809">809</a>         }
<a name="810" href="#810">810</a> 
<a name="811" href="#811">811</a>         session.increaseWrittenBytes(localWrittenBytes, currentTime);
<a name="812" href="#812">812</a> 
<a name="813" href="#813">813</a>         <strong class="jxr_keyword">if</strong> (region.getRemainingBytes() &lt;= 0 ||
<a name="814" href="#814">814</a>                     !hasFragmentation &amp;&amp; localWrittenBytes != 0) {
<a name="815" href="#815">815</a>             fireMessageSent(session, req);
<a name="816" href="#816">816</a>         }
<a name="817" href="#817">817</a> 
<a name="818" href="#818">818</a>         <strong class="jxr_keyword">return</strong> localWrittenBytes;
<a name="819" href="#819">819</a>     }
<a name="820" href="#820">820</a> 
<a name="821" href="#821">821</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> fireMessageSent(T session, <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> req) {
<a name="822" href="#822">822</a>         session.setCurrentWriteRequest(<strong class="jxr_keyword">null</strong>);
<a name="823" href="#823">823</a>         <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="824" href="#824">824</a>         filterChain.fireMessageSent(req);
<a name="825" href="#825">825</a>     }
<a name="826" href="#826">826</a> 
<a name="827" href="#827">827</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateTrafficMask() {
<a name="828" href="#828">828</a>         <strong class="jxr_keyword">for</strong> (; ;) {
<a name="829" href="#829">829</a>             T session = trafficControllingSessions.poll();
<a name="830" href="#830">830</a> 
<a name="831" href="#831">831</a>             <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong>) {
<a name="832" href="#832">832</a>                 <strong class="jxr_keyword">break</strong>;
<a name="833" href="#833">833</a>             }
<a name="834" href="#834">834</a> 
<a name="835" href="#835">835</a>             <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">SessionState</a> state = state(session);
<a name="836" href="#836">836</a>             <strong class="jxr_keyword">switch</strong> (state) {
<a name="837" href="#837">837</a>             <strong class="jxr_keyword">case</strong> OPEN:
<a name="838" href="#838">838</a>                 updateTrafficControl(session);
<a name="839" href="#839">839</a>                 <strong class="jxr_keyword">break</strong>;
<a name="840" href="#840">840</a>             <strong class="jxr_keyword">case</strong> CLOSED:
<a name="841" href="#841">841</a>                 <strong class="jxr_keyword">break</strong>;
<a name="842" href="#842">842</a>             <strong class="jxr_keyword">case</strong> PREPARING:
<a name="843" href="#843">843</a>                 <em class="jxr_comment">// Retry later if session is not yet fully initialized.</em>
<a name="844" href="#844">844</a>                 <em class="jxr_comment">// (In case that Session.suspend??() or session.resume??() is</em>
<a name="845" href="#845">845</a>                 <em class="jxr_comment">// called before addSession() is processed)</em>
<a name="846" href="#846">846</a>                 scheduleTrafficControl(session);
<a name="847" href="#847">847</a>                 <strong class="jxr_keyword">return</strong>;
<a name="848" href="#848">848</a>             <strong class="jxr_keyword">default</strong>:
<a name="849" href="#849">849</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(String.valueOf(state));
<a name="850" href="#850">850</a>             }
<a name="851" href="#851">851</a>         }
<a name="852" href="#852">852</a>     }
<a name="853" href="#853">853</a> 
<a name="854" href="#854">854</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateTrafficControl(T session) {
<a name="855" href="#855">855</a>         <strong class="jxr_keyword">try</strong> {
<a name="856" href="#856">856</a>             setInterestedInRead(session, !session.isReadSuspended());
<a name="857" href="#857">857</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="858" href="#858">858</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="859" href="#859">859</a>             filterChain.fireExceptionCaught(e);
<a name="860" href="#860">860</a>         }
<a name="861" href="#861">861</a>         <strong class="jxr_keyword">try</strong> {
<a name="862" href="#862">862</a>             setInterestedInWrite(
<a name="863" href="#863">863</a>                     session,
<a name="864" href="#864">864</a>                     !session.getWriteRequestQueue().isEmpty(session) &amp;&amp;
<a name="865" href="#865">865</a>                             !session.isWriteSuspended());
<a name="866" href="#866">866</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="867" href="#867">867</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> filterChain = session.getFilterChain(); 
<a name="868" href="#868">868</a>             filterChain.fireExceptionCaught(e);
<a name="869" href="#869">869</a>         }
<a name="870" href="#870">870</a>     }
<a name="871" href="#871">871</a>         
<a name="872" href="#872">872</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">Processor</a> implements Runnable {
<a name="873" href="#873">873</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="874" href="#874">874</a>             <strong class="jxr_keyword">int</strong> nSessions = 0;
<a name="875" href="#875">875</a>             lastIdleCheckTime = System.currentTimeMillis();
<a name="876" href="#876">876</a> 
<a name="877" href="#877">877</a>             <strong class="jxr_keyword">for</strong> (;;) {
<a name="878" href="#878">878</a>                 <strong class="jxr_keyword">try</strong> {
<a name="879" href="#879">879</a>                     <em class="jxr_comment">// This select has a timeout so that we can manage</em>
<a name="880" href="#880">880</a>                     <em class="jxr_comment">// dile session when we get out of the select every</em>
<a name="881" href="#881">881</a>                     <em class="jxr_comment">// second. (note : this is a hack to avoid creating</em>
<a name="882" href="#882">882</a>                     <em class="jxr_comment">// a dedicated thread).</em>
<a name="883" href="#883">883</a>                     <strong class="jxr_keyword">int</strong> selected = select(SELECT_TIMEOUT);
<a name="884" href="#884">884</a> 
<a name="885" href="#885">885</a>                     nSessions += handleNewSessions();
<a name="886" href="#886">886</a>                     updateTrafficMask();
<a name="887" href="#887">887</a> 
<a name="888" href="#888">888</a>                     <em class="jxr_comment">// Now, if we have had some incoming or outgoing events,</em>
<a name="889" href="#889">889</a>                     <em class="jxr_comment">// deal with them</em>
<a name="890" href="#890">890</a>                     <strong class="jxr_keyword">if</strong> (selected &gt; 0) {
<a name="891" href="#891">891</a>                         process();
<a name="892" href="#892">892</a>                     }
<a name="893" href="#893">893</a> 
<a name="894" href="#894">894</a>                     <strong class="jxr_keyword">long</strong> currentTime = System.currentTimeMillis();
<a name="895" href="#895">895</a>                     flush(currentTime);
<a name="896" href="#896">896</a>                     nSessions -= remove();
<a name="897" href="#897">897</a>                     notifyIdleSessions(currentTime);
<a name="898" href="#898">898</a> 
<a name="899" href="#899">899</a>                     <strong class="jxr_keyword">if</strong> (nSessions == 0) {
<a name="900" href="#900">900</a>                         <strong class="jxr_keyword">synchronized</strong> (lock) {
<a name="901" href="#901">901</a>                             <strong class="jxr_keyword">if</strong> (newSessions.isEmpty() &amp;&amp; isSelectorEmpty()) {
<a name="902" href="#902">902</a>                                 processor = <strong class="jxr_keyword">null</strong>;
<a name="903" href="#903">903</a>                                 <strong class="jxr_keyword">break</strong>;
<a name="904" href="#904">904</a>                             }
<a name="905" href="#905">905</a>                         }
<a name="906" href="#906">906</a>                     }
<a name="907" href="#907">907</a> 
<a name="908" href="#908">908</a>                     <em class="jxr_comment">// Disconnect all sessions immediately if disposal has been</em>
<a name="909" href="#909">909</a>                     <em class="jxr_comment">// requested so that we exit this loop eventually.</em>
<a name="910" href="#910">910</a>                     <strong class="jxr_keyword">if</strong> (isDisposing()) {
<a name="911" href="#911">911</a>                         <strong class="jxr_keyword">for</strong> (Iterator&lt;T&gt; i = allSessions(); i.hasNext(); ) {
<a name="912" href="#912">912</a>                             scheduleRemove(i.next());
<a name="913" href="#913">913</a>                         }
<a name="914" href="#914">914</a>                         wakeup();
<a name="915" href="#915">915</a>                     }
<a name="916" href="#916">916</a>                 } <strong class="jxr_keyword">catch</strong> (Throwable t) {
<a name="917" href="#917">917</a>                     ExceptionMonitor.getInstance().exceptionCaught(t);
<a name="918" href="#918">918</a> 
<a name="919" href="#919">919</a>                     <strong class="jxr_keyword">try</strong> {
<a name="920" href="#920">920</a>                         Thread.sleep(1000);
<a name="921" href="#921">921</a>                     } <strong class="jxr_keyword">catch</strong> (InterruptedException e1) {
<a name="922" href="#922">922</a>                         ExceptionMonitor.getInstance().exceptionCaught(e1);
<a name="923" href="#923">923</a>                     }
<a name="924" href="#924">924</a>                 }
<a name="925" href="#925">925</a>             }
<a name="926" href="#926">926</a> 
<a name="927" href="#927">927</a>             <strong class="jxr_keyword">try</strong> {
<a name="928" href="#928">928</a>                 <strong class="jxr_keyword">synchronized</strong> (disposalLock) {
<a name="929" href="#929">929</a>                     <strong class="jxr_keyword">if</strong> (isDisposing()) {
<a name="930" href="#930">930</a>                         dispose0();
<a name="931" href="#931">931</a>                     }
<a name="932" href="#932">932</a>                 }
<a name="933" href="#933">933</a>             } <strong class="jxr_keyword">catch</strong> (Throwable t) {
<a name="934" href="#934">934</a>                 ExceptionMonitor.getInstance().exceptionCaught(t);
<a name="935" href="#935">935</a>             } <strong class="jxr_keyword">finally</strong> {
<a name="936" href="#936">936</a>                 disposalFuture.setValue(<strong class="jxr_keyword">true</strong>);
<a name="937" href="#937">937</a>             }
<a name="938" href="#938">938</a>         }
<a name="939" href="#939">939</a>     }
<a name="940" href="#940">940</a> 
<a name="941" href="#941">941</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> enum <a href="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html">SessionState</a> {
<a name="942" href="#942">942</a>         OPEN,
<a name="943" href="#943">943</a>         CLOSED,
<a name="944" href="#944">944</a>         PREPARING,
<a name="945" href="#945">945</a>     }
<a name="946" href="#946">946</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

