<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>IoThreadPoolFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/io/filter/IoThreadPoolFilter.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: IoThreadPoolFilter.java 165586 2005-05-02 06:27:27Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/io/filter/package-summary.html">org.apache.mina.io.filter</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.common.IdleStatus;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.common.Session;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.io.IoHandler;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.io.IoFilter;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.io.IoSession;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.util.BaseThreadPool;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.util.EventType;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.mina.util.ThreadPool;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <em>/**<em>*</em></em>
<a name="32" href="#32">32</a>  <em> * A Thread-pooling filter.  This filter forwards {@link IoHandler} events </em>
<a name="33" href="#33">33</a>  <em> * to its thread pool.</em>
<a name="34" href="#34">34</a>  <em> * </em>
<a name="35" href="#35">35</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="36" href="#36">36</a>  <em> * @version $Rev: 165586 $, $Date: 2005-05-02 15:27:27 +0900 (?, 02  5? 2005) $</em>
<a name="37" href="#37">37</a>  <em> * </em>
<a name="38" href="#38">38</a>  <em> * @see ThreadPool</em>
<a name="39" href="#39">39</a>  <em> * @see BaseThreadPool</em>
<a name="40" href="#40">40</a>  <em> */</em>
<a name="41" href="#41">41</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/io/filter/IoThreadPoolFilter.html">IoThreadPoolFilter</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/util/BaseThreadPool.html">BaseThreadPool</a> implements ThreadPool, <a href="../../../../../org/apache/mina/io/IoFilter.html">IoFilter</a>
<a name="42" href="#42">42</a>  {
<a name="43" href="#43">43</a>      <em>/**<em>*</em></em>
<a name="44" href="#44">44</a>  <em>     * Creates a new instanceof this filter with default thread pool settings.</em>
<a name="45" href="#45">45</a>  <em>     * You'll have to invoke {@link #start()} method to start threads actually.</em>
<a name="46" href="#46">46</a>  <em>     */</em>
<a name="47" href="#47">47</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/io/filter/IoThreadPoolFilter.html">IoThreadPoolFilter</a>()
<a name="48" href="#48">48</a>      {
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong>public</strong> <strong>void</strong> sessionOpened( NextFilter nextFilter, IoSession session )
<a name="52" href="#52">52</a>      {
<a name="53" href="#53">53</a>          fireEvent( nextFilter, session, EventType.OPENED, <strong>null</strong> );
<a name="54" href="#54">54</a>      }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong>public</strong> <strong>void</strong> sessionClosed( NextFilter nextFilter, IoSession session )
<a name="57" href="#57">57</a>      {
<a name="58" href="#58">58</a>          fireEvent( nextFilter, session, EventType.CLOSED, <strong>null</strong> );
<a name="59" href="#59">59</a>      }
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>      <strong>public</strong> <strong>void</strong> sessionIdle( NextFilter nextFilter, IoSession session,
<a name="62" href="#62">62</a>                              <a href="../../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a> status )
<a name="63" href="#63">63</a>      {
<a name="64" href="#64">64</a>          fireEvent( nextFilter, session, EventType.IDLE, status );
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <strong>public</strong> <strong>void</strong> exceptionCaught( NextFilter nextFilter, IoSession session,
<a name="68" href="#68">68</a>                                  Throwable cause )
<a name="69" href="#69">69</a>      {
<a name="70" href="#70">70</a>          fireEvent( nextFilter, session, EventType.EXCEPTION, cause );
<a name="71" href="#71">71</a>      }
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>      <strong>public</strong> <strong>void</strong> dataRead( NextFilter nextFilter, IoSession session,
<a name="74" href="#74">74</a>                            <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> buf )
<a name="75" href="#75">75</a>      {
<a name="76" href="#76">76</a>          <em class="comment">// MINA will release the buffer if this method returns.</em>
<a name="77" href="#77">77</a>          buf.acquire();
<a name="78" href="#78">78</a>          fireEvent( nextFilter, session, EventType.READ, buf );
<a name="79" href="#79">79</a>      }
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>      <strong>public</strong> <strong>void</strong> dataWritten( NextFilter nextFilter, IoSession session,
<a name="82" href="#82">82</a>                              Object marker )
<a name="83" href="#83">83</a>      {
<a name="84" href="#84">84</a>          fireEvent( nextFilter, session, EventType.WRITTEN, marker );
<a name="85" href="#85">85</a>      }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <strong>protected</strong> <strong>void</strong> processEvent( Object nextFilter0, Session session0,
<a name="88" href="#88">88</a>                                   <a href="../../../../../org/apache/mina/util/EventType.html">EventType</a> type, Object data )
<a name="89" href="#89">89</a>      {
<a name="90" href="#90">90</a>          NextFilter nextFilter = ( NextFilter ) nextFilter0;
<a name="91" href="#91">91</a>          <a href="../../../../../org/apache/mina/io/IoSession.html">IoSession</a> session = ( IoSession ) session0;
<a name="92" href="#92">92</a>          <strong>if</strong>( type == EventType.READ )
<a name="93" href="#93">93</a>          {
<a name="94" href="#94">94</a>              <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> buf = ( ByteBuffer ) data;
<a name="95" href="#95">95</a>              nextFilter.dataRead( session, buf );
<a name="96" href="#96">96</a>              buf.release();
<a name="97" href="#97">97</a>          }
<a name="98" href="#98">98</a>          <strong>else</strong> <strong>if</strong>( type == EventType.WRITTEN )
<a name="99" href="#99">99</a>          {
<a name="100" href="#100">100</a>             nextFilter.dataWritten( session, data );
<a name="101" href="#101">101</a>         }
<a name="102" href="#102">102</a>         <strong>else</strong> <strong>if</strong>( type == EventType.EXCEPTION )
<a name="103" href="#103">103</a>         {
<a name="104" href="#104">104</a>             nextFilter.exceptionCaught( session, ( Throwable ) data );
<a name="105" href="#105">105</a>         }
<a name="106" href="#106">106</a>         <strong>else</strong> <strong>if</strong>( type == EventType.IDLE )
<a name="107" href="#107">107</a>         {
<a name="108" href="#108">108</a>             nextFilter.sessionIdle( session, ( IdleStatus ) data );
<a name="109" href="#109">109</a>         }
<a name="110" href="#110">110</a>         <strong>else</strong> <strong>if</strong>( type == EventType.OPENED )
<a name="111" href="#111">111</a>         {
<a name="112" href="#112">112</a>             nextFilter.sessionOpened( session );
<a name="113" href="#113">113</a>         }
<a name="114" href="#114">114</a>         <strong>else</strong> <strong>if</strong>( type == EventType.CLOSED )
<a name="115" href="#115">115</a>         {
<a name="116" href="#116">116</a>             nextFilter.sessionClosed( session );
<a name="117" href="#117">117</a>         }
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     <strong>public</strong> <strong>void</strong> filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker ) throws Exception
<a name="121" href="#121">121</a>     {
<a name="122" href="#122">122</a>         nextFilter.filterWrite( session, buf, marker );
<a name="123" href="#123">123</a>     }
<a name="124" href="#124">124</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

