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

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.transport.socket.apr;
<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.nio.ByteBuffer;
<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.concurrent.Executor;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.RuntimeIoException;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.file.FileRegion;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.polling.AbstractPollingIoProcessor;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.SessionState;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.CircularQueue;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.tomcat.jni.Poll;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.tomcat.jni.Pool;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.tomcat.jni.Socket;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.tomcat.jni.Status;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">/**</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * The class in charge of processing socket level IO events for the {@link AprSocketConnector}</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> *</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="http://mina.apache.org" target="alexandria_uri">http://mina.apache.org</a>"&gt;Apache MINA Project&lt;/a&gt;</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/transport/socket/apr/AprIoProcessor.html">AprIoProcessor</a> <strong class="jxr_keyword">extends</strong> AbstractPollingIoProcessor&lt;AprSession&gt; {
<a name="47" href="#47">47</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> POLLSET_SIZE = 1024;
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Long, AprSession&gt; allSessions =
<a name="50" href="#50">50</a>          <strong class="jxr_keyword">new</strong> HashMap&lt;Long, AprSession&gt;(POLLSET_SIZE);
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Object wakeupLock = <strong class="jxr_keyword">new</strong> Object();
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> wakeupSocket;
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <strong class="jxr_keyword">boolean</strong> toBeWakenUp;
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> pool;
<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> bufferPool; <em class="jxr_comment">// memory pool</em>
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> pollset; <em class="jxr_comment">// socket poller</em>
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong>[] polledSockets = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">long</strong>[POLLSET_SIZE &lt;&lt; 1];
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;AprSession&gt; polledSessions =
<a name="61" href="#61">61</a>          <strong class="jxr_keyword">new</strong> CircularQueue&lt;AprSession&gt;(POLLSET_SIZE);
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <em class="jxr_javadoccomment">/**</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * Create a new instance of {@link AprIoProcessor} with a given Exector for </em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * handling I/Os events.</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * </em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * @param executor the {@link Executor} for handling I/O events</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/mina/transport/socket/apr/AprIoProcessor.html">AprIoProcessor</a>(Executor executor) {
<a name="70" href="#70">70</a>          <strong class="jxr_keyword">super</strong>(executor);
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>          <em class="jxr_comment">// initialize a memory pool for APR functions</em>
<a name="73" href="#73">73</a>          pool = Pool.create(AprLibrary.getInstance().getRootPool());
<a name="74" href="#74">74</a>          bufferPool = Pool.create(AprLibrary.getInstance().getRootPool());
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>          <strong class="jxr_keyword">try</strong> {
<a name="77" href="#77">77</a>              wakeupSocket = Socket.create(
<a name="78" href="#78">78</a>                      Socket.APR_INET, Socket.SOCK_DGRAM, Socket.APR_PROTO_UDP, pool);
<a name="79" href="#79">79</a>          } <strong class="jxr_keyword">catch</strong> (RuntimeException e) {
<a name="80" href="#80">80</a>              <strong class="jxr_keyword">throw</strong> e;
<a name="81" href="#81">81</a>          } <strong class="jxr_keyword">catch</strong> (Error e) {
<a name="82" href="#82">82</a>              <strong class="jxr_keyword">throw</strong> e;
<a name="83" href="#83">83</a>          } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="84" href="#84">84</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to create a wakeup socket."</span>, e);
<a name="85" href="#85">85</a>          }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">boolean</strong> success = false;
<a name="88" href="#88">88</a>          <strong class="jxr_keyword">long</strong> newPollset;
<a name="89" href="#89">89</a>          <strong class="jxr_keyword">try</strong> {
<a name="90" href="#90">90</a>              newPollset = Poll.create(
<a name="91" href="#91">91</a>                      POLLSET_SIZE,
<a name="92" href="#92">92</a>                      pool,
<a name="93" href="#93">93</a>                      Poll.APR_POLLSET_THREADSAFE,
<a name="94" href="#94">94</a>                      Long.MAX_VALUE);
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>              <strong class="jxr_keyword">if</strong> (newPollset == 0) {
<a name="97" href="#97">97</a>                  newPollset = Poll.create(
<a name="98" href="#98">98</a>                          62,
<a name="99" href="#99">99</a>                          pool,
<a name="100" href="#100">100</a>                         Poll.APR_POLLSET_THREADSAFE,
<a name="101" href="#101">101</a>                         Long.MAX_VALUE);
<a name="102" href="#102">102</a>             }
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>             pollset = newPollset;
<a name="105" href="#105">105</a>             <strong class="jxr_keyword">if</strong> (pollset &lt; 0) {
<a name="106" href="#106">106</a>                 <strong class="jxr_keyword">if</strong> (Status.APR_STATUS_IS_ENOTIMPL(- (<strong class="jxr_keyword">int</strong>) pollset)) {
<a name="107" href="#107">107</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(
<a name="108" href="#108">108</a>                             <span class="jxr_string">"Thread-safe pollset is not supported in this platform."</span>);
<a name="109" href="#109">109</a>                 }
<a name="110" href="#110">110</a>             }
<a name="111" href="#111">111</a>             success = <strong class="jxr_keyword">true</strong>;
<a name="112" href="#112">112</a>         } <strong class="jxr_keyword">catch</strong> (RuntimeException e) {
<a name="113" href="#113">113</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="114" href="#114">114</a>         } <strong class="jxr_keyword">catch</strong> (Error e) {
<a name="115" href="#115">115</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="116" href="#116">116</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="117" href="#117">117</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/mina/core/RuntimeIoException.html">RuntimeIoException</a>(<span class="jxr_string">"Failed to create a pollset."</span>, e);
<a name="118" href="#118">118</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="119" href="#119">119</a>             <strong class="jxr_keyword">if</strong> (!success) {
<a name="120" href="#120">120</a>                 dispose();
<a name="121" href="#121">121</a>             }
<a name="122" href="#122">122</a>         }
<a name="123" href="#123">123</a>     }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     */</em>
<a name="128" href="#128">128</a>     @Override
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> dispose0() {
<a name="130" href="#130">130</a>         Poll.destroy(pollset);
<a name="131" href="#131">131</a>         Socket.close(wakeupSocket);
<a name="132" href="#132">132</a>         Pool.destroy(bufferPool);
<a name="133" href="#133">133</a>         Pool.destroy(pool);
<a name="134" href="#134">134</a>     }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>     <em class="jxr_javadoccomment">/**</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     */</em>
<a name="139" href="#139">139</a>     @Override
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> select() <strong class="jxr_keyword">throws</strong> Exception {
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> select(Integer.MAX_VALUE);
<a name="142" href="#142">142</a>     }
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     */</em>
<a name="147" href="#147">147</a>      @Override
<a name="148" href="#148">148</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> select(<strong class="jxr_keyword">long</strong> timeout) <strong class="jxr_keyword">throws</strong> Exception {
<a name="149" href="#149">149</a>         <strong class="jxr_keyword">int</strong> rv = Poll.poll(pollset, 1000 * timeout, polledSockets, false);
<a name="150" href="#150">150</a>         <strong class="jxr_keyword">if</strong> (rv &lt;= 0) {
<a name="151" href="#151">151</a>             <strong class="jxr_keyword">if</strong> (rv != -120001) {
<a name="152" href="#152">152</a>                 throwException(rv);
<a name="153" href="#153">153</a>             }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>             rv = Poll.maintain(pollset, polledSockets, <strong class="jxr_keyword">true</strong>);
<a name="156" href="#156">156</a>             <strong class="jxr_keyword">if</strong> (rv &gt; 0) {
<a name="157" href="#157">157</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rv; i ++) {
<a name="158" href="#158">158</a>                     <strong class="jxr_keyword">long</strong> socket = polledSockets[i];
<a name="159" href="#159">159</a>                     <a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session = allSessions.get(socket);
<a name="160" href="#160">160</a>                     <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong>) {
<a name="161" href="#161">161</a>                         <strong class="jxr_keyword">continue</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">int</strong> flag = (session.isInterestedInRead()? Poll.APR_POLLIN : 0) |
<a name="165" href="#165">165</a>                                (session.isInterestedInWrite()? Poll.APR_POLLOUT : 0);
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>                     Poll.add(pollset, socket, flag);
<a name="168" href="#168">168</a>                 }
<a name="169" href="#169">169</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (rv &lt; 0) {
<a name="170" href="#170">170</a>                 throwException(rv);
<a name="171" href="#171">171</a>             }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>             <strong class="jxr_keyword">return</strong> 0;
<a name="174" href="#174">174</a>         } <strong class="jxr_keyword">else</strong> {
<a name="175" href="#175">175</a>             rv &lt;&lt;= 1;
<a name="176" href="#176">176</a>             <strong class="jxr_keyword">if</strong> (!polledSessions.isEmpty()) {
<a name="177" href="#177">177</a>                 polledSessions.clear();
<a name="178" href="#178">178</a>             }
<a name="179" href="#179">179</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rv; i ++) {
<a name="180" href="#180">180</a>                 <strong class="jxr_keyword">long</strong> flag = polledSockets[i];
<a name="181" href="#181">181</a>                 <strong class="jxr_keyword">long</strong> socket = polledSockets[++i];
<a name="182" href="#182">182</a>                 <strong class="jxr_keyword">if</strong> (socket == wakeupSocket) {
<a name="183" href="#183">183</a>                     <strong class="jxr_keyword">synchronized</strong> (wakeupLock) {
<a name="184" href="#184">184</a>                         Poll.remove(pollset, wakeupSocket);
<a name="185" href="#185">185</a>                         toBeWakenUp = false;
<a name="186" href="#186">186</a>                     }
<a name="187" href="#187">187</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="188" href="#188">188</a>                 }
<a name="189" href="#189">189</a>                 <a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session = allSessions.get(socket);
<a name="190" href="#190">190</a>                 <strong class="jxr_keyword">if</strong> (session == <strong class="jxr_keyword">null</strong>) {
<a name="191" href="#191">191</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="192" href="#192">192</a>                 }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>                 session.setReadable((flag &amp; Poll.APR_POLLIN) != 0);
<a name="195" href="#195">195</a>                 session.setWritable((flag &amp; Poll.APR_POLLOUT) != 0);
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>                 polledSessions.add(session);
<a name="198" href="#198">198</a>             }
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>             <strong class="jxr_keyword">return</strong> polledSessions.size();
<a name="201" href="#201">201</a>         }
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>      <em class="jxr_javadoccomment">/**</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     */</em>
<a name="207" href="#207">207</a>     @Override
<a name="208" href="#208">208</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSelectorEmpty() {
<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> allSessions.isEmpty();
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>     <em class="jxr_javadoccomment">/**</em>
<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     */</em>
<a name="215" href="#215">215</a>     @Override
<a name="216" href="#216">216</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> wakeup() {
<a name="217" href="#217">217</a>         <strong class="jxr_keyword">if</strong> (toBeWakenUp) {
<a name="218" href="#218">218</a>             <strong class="jxr_keyword">return</strong>;
<a name="219" href="#219">219</a>         }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>         <em class="jxr_comment">// Add a dummy socket to the pollset.</em>
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">synchronized</strong> (wakeupLock) {
<a name="223" href="#223">223</a>             toBeWakenUp = <strong class="jxr_keyword">true</strong>;
<a name="224" href="#224">224</a>             Poll.add(pollset, wakeupSocket, Poll.APR_POLLOUT);
<a name="225" href="#225">225</a>         }
<a name="226" href="#226">226</a>     }
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>     <em class="jxr_javadoccomment">/**</em>
<a name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     */</em>
<a name="231" href="#231">231</a>     @Override
<a name="232" href="#232">232</a>     <strong class="jxr_keyword">protected</strong> Iterator&lt;AprSession&gt; allSessions() {
<a name="233" href="#233">233</a>         <strong class="jxr_keyword">return</strong> allSessions.values().iterator();
<a name="234" href="#234">234</a>     }
<a name="235" href="#235">235</a> 
<a name="236" href="#236">236</a>     <em class="jxr_javadoccomment">/**</em>
<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     */</em>
<a name="239" href="#239">239</a>     @Override
<a name="240" href="#240">240</a>     <strong class="jxr_keyword">protected</strong> Iterator&lt;AprSession&gt; selectedSessions() {
<a name="241" href="#241">241</a>         <strong class="jxr_keyword">return</strong> polledSessions.iterator();
<a name="242" href="#242">242</a>     }
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>     @Override
<a name="245" href="#245">245</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> init(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="246" href="#246">246</a>         <strong class="jxr_keyword">long</strong> s = session.getDescriptor();
<a name="247" href="#247">247</a>         Socket.optSet(s, Socket.APR_SO_NONBLOCK, 1);
<a name="248" href="#248">248</a>         Socket.timeoutSet(s, 0);
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>         <strong class="jxr_keyword">int</strong> rv = Poll.add(pollset, s, Poll.APR_POLLIN);
<a name="251" href="#251">251</a>         <strong class="jxr_keyword">if</strong> (rv != Status.APR_SUCCESS) {
<a name="252" href="#252">252</a>             throwException(rv);
<a name="253" href="#253">253</a>         }
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>         session.setInterestedInRead(<strong class="jxr_keyword">true</strong>);
<a name="256" href="#256">256</a>         allSessions.put(s, session);
<a name="257" href="#257">257</a>     }
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>     <em class="jxr_javadoccomment">/**</em>
<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     */</em>
<a name="262" href="#262">262</a>     @Override
<a name="263" href="#263">263</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> destroy(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="264" href="#264">264</a>         <strong class="jxr_keyword">if</strong> (allSessions.remove(session.getDescriptor()) == <strong class="jxr_keyword">null</strong>) {
<a name="265" href="#265">265</a>             <em class="jxr_comment">// Already destroyed.</em>
<a name="266" href="#266">266</a>             <strong class="jxr_keyword">return</strong>;
<a name="267" href="#267">267</a>         }
<a name="268" href="#268">268</a> 
<a name="269" href="#269">269</a>         <strong class="jxr_keyword">int</strong> ret = Poll.remove(pollset, session.getDescriptor());
<a name="270" href="#270">270</a>         <strong class="jxr_keyword">try</strong> {
<a name="271" href="#271">271</a>             <strong class="jxr_keyword">if</strong> (ret != Status.APR_SUCCESS) {
<a name="272" href="#272">272</a>                 throwException(ret);
<a name="273" href="#273">273</a>             }
<a name="274" href="#274">274</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="275" href="#275">275</a>             ret = Socket.close(session.getDescriptor());
<a name="276" href="#276">276</a>             
<a name="277" href="#277">277</a>             <em class="jxr_comment">// destroying the session because it won't be reused </em>
<a name="278" href="#278">278</a>             <em class="jxr_comment">// after this point</em>
<a name="279" href="#279">279</a>             Socket.destroy(session.getDescriptor());
<a name="280" href="#280">280</a>             session.setDescriptor(0);
<a name="281" href="#281">281</a>             
<a name="282" href="#282">282</a>             <strong class="jxr_keyword">if</strong> (ret != Status.APR_SUCCESS) {
<a name="283" href="#283">283</a>                 throwException(ret);
<a name="284" href="#284">284</a>             }
<a name="285" href="#285">285</a>         }
<a name="286" href="#286">286</a>     }
<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">     * {@inheritDoc}</em>
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     */</em>
<a name="291" href="#291">291</a>     @Override
<a name="292" href="#292">292</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/mina/core/session/SessionState.html">SessionState</a> getState(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) {
<a name="293" href="#293">293</a>         <strong class="jxr_keyword">long</strong> socket = session.getDescriptor();
<a name="294" href="#294">294</a>         
<a name="295" href="#295">295</a>         <strong class="jxr_keyword">if</strong> (socket != 0) {
<a name="296" href="#296">296</a>             <strong class="jxr_keyword">return</strong> SessionState.OPENED;
<a name="297" href="#297">297</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (allSessions.get(socket) != <strong class="jxr_keyword">null</strong>) {
<a name="298" href="#298">298</a>             <strong class="jxr_keyword">return</strong> SessionState.OPENING; <em class="jxr_comment">// will occur ?</em>
<a name="299" href="#299">299</a>         } <strong class="jxr_keyword">else</strong> {
<a name="300" href="#300">300</a>             <strong class="jxr_keyword">return</strong> SessionState.CLOSING;
<a name="301" href="#301">301</a>         }
<a name="302" href="#302">302</a>     }
<a name="303" href="#303">303</a> 
<a name="304" href="#304">304</a>     <em class="jxr_javadoccomment">/**</em>
<a name="305" href="#305">305</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="306" href="#306">306</a> <em class="jxr_javadoccomment">     */</em>
<a name="307" href="#307">307</a>     @Override
<a name="308" href="#308">308</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isReadable(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) {
<a name="309" href="#309">309</a>         <strong class="jxr_keyword">return</strong> session.isReadable();
<a name="310" href="#310">310</a>     }
<a name="311" href="#311">311</a> 
<a name="312" href="#312">312</a>     <em class="jxr_javadoccomment">/**</em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     */</em>
<a name="315" href="#315">315</a>     @Override
<a name="316" href="#316">316</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isWritable(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) {
<a name="317" href="#317">317</a>         <strong class="jxr_keyword">return</strong> session.isWritable();
<a name="318" href="#318">318</a>     }
<a name="319" href="#319">319</a> 
<a name="320" href="#320">320</a>     <em class="jxr_javadoccomment">/**</em>
<a name="321" href="#321">321</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="322" href="#322">322</a> <em class="jxr_javadoccomment">     */</em>
<a name="323" href="#323">323</a>     @Override
<a name="324" href="#324">324</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isInterestedInRead(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) {
<a name="325" href="#325">325</a>         <strong class="jxr_keyword">return</strong> session.isInterestedInRead();
<a name="326" href="#326">326</a>     }
<a name="327" href="#327">327</a> 
<a name="328" href="#328">328</a>     <em class="jxr_javadoccomment">/**</em>
<a name="329" href="#329">329</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="330" href="#330">330</a> <em class="jxr_javadoccomment">     */</em>
<a name="331" href="#331">331</a>     @Override
<a name="332" href="#332">332</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isInterestedInWrite(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session) {
<a name="333" href="#333">333</a>         <strong class="jxr_keyword">return</strong> session.isInterestedInWrite();
<a name="334" href="#334">334</a>     }
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>     <em class="jxr_javadoccomment">/**</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="338" href="#338">338</a> <em class="jxr_javadoccomment">     */</em>
<a name="339" href="#339">339</a>     @Override
<a name="340" href="#340">340</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setInterestedInRead(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session, <strong class="jxr_keyword">boolean</strong> isInterested) <strong class="jxr_keyword">throws</strong> Exception {
<a name="341" href="#341">341</a>         <strong class="jxr_keyword">if</strong> (session.isInterestedInRead() == isInterested) {
<a name="342" href="#342">342</a>             <strong class="jxr_keyword">return</strong>;
<a name="343" href="#343">343</a>         }
<a name="344" href="#344">344</a> 
<a name="345" href="#345">345</a>         <strong class="jxr_keyword">int</strong> rv = Poll.remove(pollset, session.getDescriptor());
<a name="346" href="#346">346</a>         <strong class="jxr_keyword">if</strong> (rv != Status.APR_SUCCESS) {
<a name="347" href="#347">347</a>             throwException(rv);
<a name="348" href="#348">348</a>         }
<a name="349" href="#349">349</a> 
<a name="350" href="#350">350</a>         <strong class="jxr_keyword">int</strong> flags = (isInterested ? Poll.APR_POLLIN : 0)
<a name="351" href="#351">351</a>                 | (session.isInterestedInWrite() ? Poll.APR_POLLOUT : 0);
<a name="352" href="#352">352</a> 
<a name="353" href="#353">353</a>         rv = Poll.add(pollset, session.getDescriptor(), flags);
<a name="354" href="#354">354</a>         <strong class="jxr_keyword">if</strong> (rv == Status.APR_SUCCESS) {
<a name="355" href="#355">355</a>             session.setInterestedInRead(isInterested);
<a name="356" href="#356">356</a>         } <strong class="jxr_keyword">else</strong> {
<a name="357" href="#357">357</a>             throwException(rv);
<a name="358" href="#358">358</a>         }
<a name="359" href="#359">359</a>     }
<a name="360" href="#360">360</a> 
<a name="361" href="#361">361</a>     <em class="jxr_javadoccomment">/**</em>
<a name="362" href="#362">362</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="363" href="#363">363</a> <em class="jxr_javadoccomment">     */</em>
<a name="364" href="#364">364</a>     @Override
<a name="365" href="#365">365</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setInterestedInWrite(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session, <strong class="jxr_keyword">boolean</strong> isInterested) <strong class="jxr_keyword">throws</strong> Exception {
<a name="366" href="#366">366</a>         <strong class="jxr_keyword">if</strong> (session.isInterestedInWrite() == isInterested) {
<a name="367" href="#367">367</a>             <strong class="jxr_keyword">return</strong>;
<a name="368" href="#368">368</a>         }
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>         <strong class="jxr_keyword">int</strong> rv = Poll.remove(pollset, session.getDescriptor());
<a name="371" href="#371">371</a>         <strong class="jxr_keyword">if</strong> (rv != Status.APR_SUCCESS) {
<a name="372" href="#372">372</a>             throwException(rv);
<a name="373" href="#373">373</a>         }
<a name="374" href="#374">374</a> 
<a name="375" href="#375">375</a>         <strong class="jxr_keyword">int</strong> flags = (session.isInterestedInRead() ? Poll.APR_POLLIN : 0)
<a name="376" href="#376">376</a>                 | (isInterested ? Poll.APR_POLLOUT : 0);
<a name="377" href="#377">377</a> 
<a name="378" href="#378">378</a>         rv = Poll.add(pollset, session.getDescriptor(), flags);
<a name="379" href="#379">379</a>         <strong class="jxr_keyword">if</strong> (rv == Status.APR_SUCCESS) {
<a name="380" href="#380">380</a>             session.setInterestedInWrite(isInterested);
<a name="381" href="#381">381</a>         } <strong class="jxr_keyword">else</strong> {
<a name="382" href="#382">382</a>             throwException(rv);
<a name="383" href="#383">383</a>         }
<a name="384" href="#384">384</a>     }
<a name="385" href="#385">385</a> 
<a name="386" href="#386">386</a>     <em class="jxr_javadoccomment">/**</em>
<a name="387" href="#387">387</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">     */</em>
<a name="389" href="#389">389</a>     @Override
<a name="390" href="#390">390</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> read(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session, <a href="../../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buffer) <strong class="jxr_keyword">throws</strong> Exception {
<a name="391" href="#391">391</a>         <strong class="jxr_keyword">int</strong> bytes;
<a name="392" href="#392">392</a>         <strong class="jxr_keyword">int</strong> capacity = buffer.remaining();
<a name="393" href="#393">393</a>         <em class="jxr_comment">// Using Socket.recv() directly causes memory leak. :-(</em>
<a name="394" href="#394">394</a>         ByteBuffer b = Pool.alloc(bufferPool, capacity);
<a name="395" href="#395">395</a>         
<a name="396" href="#396">396</a>         <strong class="jxr_keyword">try</strong> {
<a name="397" href="#397">397</a>             bytes = Socket.recvb(
<a name="398" href="#398">398</a>                     session.getDescriptor(), b, 0, capacity);
<a name="399" href="#399">399</a>             
<a name="400" href="#400">400</a>             <strong class="jxr_keyword">if</strong> (bytes &gt; 0) {
<a name="401" href="#401">401</a>                 b.position(0);
<a name="402" href="#402">402</a>                 b.limit(bytes);
<a name="403" href="#403">403</a>                 buffer.put(b);
<a name="404" href="#404">404</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (bytes &lt; 0) {
<a name="405" href="#405">405</a>                 <strong class="jxr_keyword">if</strong> (Status.APR_STATUS_IS_EOF(-bytes)) {
<a name="406" href="#406">406</a>                     bytes = -1;
<a name="407" href="#407">407</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Status.APR_STATUS_IS_EAGAIN(-bytes)) {
<a name="408" href="#408">408</a>                     bytes = 0;
<a name="409" href="#409">409</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="410" href="#410">410</a>                     throwException(bytes);
<a name="411" href="#411">411</a>                 }
<a name="412" href="#412">412</a>             }
<a name="413" href="#413">413</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="414" href="#414">414</a>             Pool.clear(bufferPool);
<a name="415" href="#415">415</a>         }
<a name="416" href="#416">416</a>         
<a name="417" href="#417">417</a>         <strong class="jxr_keyword">return</strong> bytes;
<a name="418" href="#418">418</a>     }
<a name="419" href="#419">419</a> 
<a name="420" href="#420">420</a>     <em class="jxr_javadoccomment">/**</em>
<a name="421" href="#421">421</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="422" href="#422">422</a> <em class="jxr_javadoccomment">     */</em>
<a name="423" href="#423">423</a>     @Override
<a name="424" href="#424">424</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> write(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> 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="425" href="#425">425</a>         <strong class="jxr_keyword">int</strong> writtenBytes;
<a name="426" href="#426">426</a>         <strong class="jxr_keyword">if</strong> (buf.isDirect()) {
<a name="427" href="#427">427</a>             writtenBytes = Socket.sendb(
<a name="428" href="#428">428</a>                     session.getDescriptor(), buf.buf(), buf.position(), length);
<a name="429" href="#429">429</a>         } <strong class="jxr_keyword">else</strong> {
<a name="430" href="#430">430</a>             writtenBytes = Socket.send(
<a name="431" href="#431">431</a>                     session.getDescriptor(), buf.array(), buf.position(), length);
<a name="432" href="#432">432</a>             <strong class="jxr_keyword">if</strong> (writtenBytes &gt; 0) {
<a name="433" href="#433">433</a>                 buf.skip(writtenBytes);
<a name="434" href="#434">434</a>             }
<a name="435" href="#435">435</a>         }
<a name="436" href="#436">436</a> 
<a name="437" href="#437">437</a>         <strong class="jxr_keyword">if</strong> (writtenBytes &lt; 0) {
<a name="438" href="#438">438</a>             <strong class="jxr_keyword">if</strong> (Status.APR_STATUS_IS_EAGAIN(-writtenBytes)) {
<a name="439" href="#439">439</a>                 writtenBytes = 0;
<a name="440" href="#440">440</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Status.APR_STATUS_IS_EOF(-writtenBytes)) {
<a name="441" href="#441">441</a>                 writtenBytes = 0;
<a name="442" href="#442">442</a>             } <strong class="jxr_keyword">else</strong> {
<a name="443" href="#443">443</a>                 throwException(writtenBytes);
<a name="444" href="#444">444</a>             }
<a name="445" href="#445">445</a>         }
<a name="446" href="#446">446</a>         <strong class="jxr_keyword">return</strong> writtenBytes;
<a name="447" href="#447">447</a>     }
<a name="448" href="#448">448</a> 
<a name="449" href="#449">449</a>     <em class="jxr_javadoccomment">/**</em>
<a name="450" href="#450">450</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="451" href="#451">451</a> <em class="jxr_javadoccomment">     */</em>
<a name="452" href="#452">452</a>     @Override
<a name="453" href="#453">453</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> transferFile(<a href="../../../../../../org/apache/mina/transport/socket/apr/AprSession.html">AprSession</a> session, <a href="../../../../../../org/apache/mina/core/file/FileRegion.html">FileRegion</a> region, <strong class="jxr_keyword">int</strong> length)
<a name="454" href="#454">454</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="455" href="#455">455</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException();
<a name="456" href="#456">456</a>     }
<a name="457" href="#457">457</a> 
<a name="458" href="#458">458</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> throwException(<strong class="jxr_keyword">int</strong> code) <strong class="jxr_keyword">throws</strong> IOException {
<a name="459" href="#459">459</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(
<a name="460" href="#460">460</a>                 org.apache.tomcat.jni.Error.strerror(-code) +
<a name="461" href="#461">461</a>                 <span class="jxr_string">" (code: "</span> + code + <span class="jxr_string">")"</span>);
<a name="462" href="#462">462</a>     }
<a name="463" href="#463">463</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

