<!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>ProtocolThreadPoolFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/protocol/filter/ProtocolThreadPoolFilter.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: ProtocolThreadPoolFilter.java 264677 2005-08-30 02:44:35Z 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/protocol/filter/package-summary.html">org.apache.mina.protocol.filter</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.IdleStatus;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.common.Session;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolHandler;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolFilter;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.util.BaseThreadPool;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.util.EventType;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.util.ThreadPool;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em>/**<em>*</em></em>
<a name="31" href="#31">31</a>  <em> * A Thread-pooling filter.  This filter forwards {@link ProtocolHandler} events</em>
<a name="32" href="#32">32</a>  <em> * to its thread pool.</em>
<a name="33" href="#33">33</a>  <em> * </em>
<a name="34" href="#34">34</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="35" href="#35">35</a>  <em> * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $</em>
<a name="36" href="#36">36</a>  <em> * </em>
<a name="37" href="#37">37</a>  <em> * @see ThreadPool</em>
<a name="38" href="#38">38</a>  <em> * @see BaseThreadPool</em>
<a name="39" href="#39">39</a>  <em> */</em>
<a name="40" href="#40">40</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/protocol/filter/ProtocolThreadPoolFilter.html">ProtocolThreadPoolFilter</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/util/BaseThreadPool.html">BaseThreadPool</a> implements ThreadPool, <a href="../../../../../org/apache/mina/protocol/ProtocolFilter.html">ProtocolFilter</a>
<a name="41" href="#41">41</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/protocol/filter/ProtocolThreadPoolFilter.html">ProtocolThreadPoolFilter</a>()
<a name="48" href="#48">48</a>      {
<a name="49" href="#49">49</a>          <strong>this</strong>( <span class="string">"ProtocolThreadPool"</span> );
<a name="50" href="#50">50</a>      }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <em>/**<em>*</em></em>
<a name="53" href="#53">53</a>  <em>     * Creates a new instance of this filter with default thread pool settings.</em>
<a name="54" href="#54">54</a>  <em>     * You'll have to invoke {@link #start()} method to start threads actually.</em>
<a name="55" href="#55">55</a>  <em>     * </em>
<a name="56" href="#56">56</a>  <em>     * @param threadNamePrefix the prefix of the thread names this pool will create.</em>
<a name="57" href="#57">57</a>  <em>     */</em>
<a name="58" href="#58">58</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/filter/ProtocolThreadPoolFilter.html">ProtocolThreadPoolFilter</a>( String threadNamePrefix )
<a name="59" href="#59">59</a>      {
<a name="60" href="#60">60</a>          <strong>super</strong>( threadNamePrefix );
<a name="61" href="#61">61</a>      }
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <strong>public</strong> <strong>void</strong> sessionOpened( NextFilter nextFilter,
<a name="64" href="#64">64</a>                                <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session )
<a name="65" href="#65">65</a>      {
<a name="66" href="#66">66</a>          fireEvent( nextFilter, session, EventType.OPENED, <strong>null</strong> );
<a name="67" href="#67">67</a>      }
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>      <strong>public</strong> <strong>void</strong> sessionClosed( NextFilter nextFilter,
<a name="70" href="#70">70</a>                                <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session )
<a name="71" href="#71">71</a>      {
<a name="72" href="#72">72</a>          fireEvent( nextFilter, session, EventType.CLOSED, <strong>null</strong> );
<a name="73" href="#73">73</a>      }
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>      <strong>public</strong> <strong>void</strong> sessionIdle( NextFilter nextFilter,
<a name="76" href="#76">76</a>                              <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session, <a href="../../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a> status )
<a name="77" href="#77">77</a>      {
<a name="78" href="#78">78</a>          fireEvent( nextFilter, session, EventType.IDLE, status );
<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> exceptionCaught( NextFilter nextFilter,
<a name="82" href="#82">82</a>                                  <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session, Throwable cause )
<a name="83" href="#83">83</a>      {
<a name="84" href="#84">84</a>          fireEvent( nextFilter, session, EventType.EXCEPTION, cause );
<a name="85" href="#85">85</a>      }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <strong>public</strong> <strong>void</strong> messageReceived( NextFilter nextFilter,
<a name="88" href="#88">88</a>                                  <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session, Object message )
<a name="89" href="#89">89</a>      {
<a name="90" href="#90">90</a>          fireEvent( nextFilter, session, EventType.RECEIVED, message );
<a name="91" href="#91">91</a>      }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>      <strong>public</strong> <strong>void</strong> messageSent( NextFilter nextFilter,
<a name="94" href="#94">94</a>                              <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session, Object message )
<a name="95" href="#95">95</a>      {
<a name="96" href="#96">96</a>          fireEvent( nextFilter, session, EventType.SENT, message );
<a name="97" href="#97">97</a>      }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>      <strong>protected</strong> <strong>void</strong> processEvent( Object nextFilter0,
<a name="100" href="#100">100</a>                                <a href="../../../../../org/apache/mina/common/Session.html">Session</a> session0, <a href="../../../../../org/apache/mina/util/EventType.html">EventType</a> type,
<a name="101" href="#101">101</a>                                Object data )
<a name="102" href="#102">102</a>     {
<a name="103" href="#103">103</a>         NextFilter nextFilter = ( NextFilter ) nextFilter0;
<a name="104" href="#104">104</a>         <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a> session = ( ProtocolSession ) session0;
<a name="105" href="#105">105</a> 
<a name="106" href="#106">106</a>         <strong>if</strong>( type == EventType.RECEIVED )
<a name="107" href="#107">107</a>         {
<a name="108" href="#108">108</a>             nextFilter.messageReceived( session, data );
<a name="109" href="#109">109</a>         }
<a name="110" href="#110">110</a>         <strong>else</strong> <strong>if</strong>( type == EventType.SENT )
<a name="111" href="#111">111</a>         {
<a name="112" href="#112">112</a>             nextFilter.messageSent( session, data );
<a name="113" href="#113">113</a>         }
<a name="114" href="#114">114</a>         <strong>else</strong> <strong>if</strong>( type == EventType.EXCEPTION )
<a name="115" href="#115">115</a>         {
<a name="116" href="#116">116</a>             nextFilter.exceptionCaught( session, ( Throwable ) data );
<a name="117" href="#117">117</a>         }
<a name="118" href="#118">118</a>         <strong>else</strong> <strong>if</strong>( type == EventType.IDLE )
<a name="119" href="#119">119</a>         {
<a name="120" href="#120">120</a>             nextFilter.sessionIdle( session, ( IdleStatus ) data );
<a name="121" href="#121">121</a>         }
<a name="122" href="#122">122</a>         <strong>else</strong> <strong>if</strong>( type == EventType.OPENED )
<a name="123" href="#123">123</a>         {
<a name="124" href="#124">124</a>             nextFilter.sessionOpened( session );
<a name="125" href="#125">125</a>         }
<a name="126" href="#126">126</a>         <strong>else</strong> <strong>if</strong>( type == EventType.CLOSED )
<a name="127" href="#127">127</a>         {
<a name="128" href="#128">128</a>             nextFilter.sessionClosed( session );
<a name="129" href="#129">129</a>         }
<a name="130" href="#130">130</a>     }
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>     <strong>public</strong> <strong>void</strong> filterWrite( NextFilter nextFilter, ProtocolSession session, Object message )
<a name="133" href="#133">133</a>     {
<a name="134" href="#134">134</a>         nextFilter.filterWrite( session, message );
<a name="135" href="#135">135</a>     }
<a name="136" href="#136">136</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

