<!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>VmPipeIdleStatusChecker xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/protocol/vmpipe/VmPipeIdleStatusChecker.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: VmPipeIdleStatusChecker.java 165129 2005-04-28 11:28:41Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> */</em>
<a name="4" href="#4">4</a>   <strong>package</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/package-summary.html">org.apache.mina.protocol.vmpipe</a>;
<a name="5" href="#5">5</a>   
<a name="6" href="#6">6</a>   <strong>import</strong> java.util.IdentityHashMap;
<a name="7" href="#7">7</a>   <strong>import</strong> java.util.Iterator;
<a name="8" href="#8">8</a>   <strong>import</strong> java.util.Map;
<a name="9" href="#9">9</a>   
<a name="10" href="#10">10</a>  <strong>import</strong> org.apache.mina.common.IdleStatus;
<a name="11" href="#11">11</a>  <strong>import</strong> org.apache.mina.common.SessionConfig;
<a name="12" href="#12">12</a>  
<a name="13" href="#13">13</a>  <em>/**<em>*</em></em>
<a name="14" href="#14">14</a>  <em> * Dectects idle sessions and fires &lt;tt>sessionIdle&lt;/tt> events to them. </em>
<a name="15" href="#15">15</a>  <em> * </em>
<a name="16" href="#16">16</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="17" href="#17">17</a>  <em> * @version $Rev: 165129 $, $Date: 2005-04-28 20:28:41 +0900 (?, 28  4? 2005) $</em>
<a name="18" href="#18">18</a>  <em> */</em>
<a name="19" href="#19">19</a>  <strong>class</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeIdleStatusChecker.html">VmPipeIdleStatusChecker</a>
<a name="20" href="#20">20</a>  {
<a name="21" href="#21">21</a>      <strong>static</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeIdleStatusChecker.html">VmPipeIdleStatusChecker</a> INSTANCE = <strong>new</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeIdleStatusChecker.html">VmPipeIdleStatusChecker</a>();
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>      <strong>private</strong> <strong>final</strong> Map sessions = <strong>new</strong> IdentityHashMap(); <em class="comment">// will use as a set</em>
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>      <strong>private</strong> <strong>final</strong> Worker worker = <strong>new</strong> Worker();
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>      <strong>private</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeIdleStatusChecker.html">VmPipeIdleStatusChecker</a>()
<a name="28" href="#28">28</a>      {
<a name="29" href="#29">29</a>          worker.start();
<a name="30" href="#30">30</a>      }
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>      <strong>void</strong> addSession( VmPipeSession session )
<a name="33" href="#33">33</a>      {
<a name="34" href="#34">34</a>          <strong>synchronized</strong>( sessions )
<a name="35" href="#35">35</a>          {
<a name="36" href="#36">36</a>              sessions.put( session, session );
<a name="37" href="#37">37</a>          }
<a name="38" href="#38">38</a>      }
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>      <strong>private</strong> <strong>class</strong> Worker <strong>extends</strong> Thread
<a name="41" href="#41">41</a>      {
<a name="42" href="#42">42</a>          <strong>private</strong> Worker()
<a name="43" href="#43">43</a>          {
<a name="44" href="#44">44</a>              <strong>super</strong>( <span class="string">"VmPipeIdleStatusChecker"</span> );
<a name="45" href="#45">45</a>              setDaemon( <strong>true</strong> );
<a name="46" href="#46">46</a>          }
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>          <strong>public</strong> <strong>void</strong> run()
<a name="49" href="#49">49</a>          {
<a name="50" href="#50">50</a>              <strong>for</strong>( ;; )
<a name="51" href="#51">51</a>              {
<a name="52" href="#52">52</a>                  <strong>try</strong>
<a name="53" href="#53">53</a>                  {
<a name="54" href="#54">54</a>                      Thread.sleep( 1000 );
<a name="55" href="#55">55</a>                  }
<a name="56" href="#56">56</a>                  <strong>catch</strong>( InterruptedException e )
<a name="57" href="#57">57</a>                  {
<a name="58" href="#58">58</a>                  }
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>                  <strong>long</strong> currentTime = System.currentTimeMillis();
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>                  <strong>synchronized</strong>( sessions )
<a name="63" href="#63">63</a>                  {
<a name="64" href="#64">64</a>                      Iterator it = sessions.keySet().iterator();
<a name="65" href="#65">65</a>                      <strong>while</strong>( it.hasNext() )
<a name="66" href="#66">66</a>                      {
<a name="67" href="#67">67</a>                          <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSession.html">VmPipeSession</a> session = ( VmPipeSession ) it.next();
<a name="68" href="#68">68</a>                          <strong>if</strong>( !session.isConnected() )
<a name="69" href="#69">69</a>                          {
<a name="70" href="#70">70</a>                              it.remove();
<a name="71" href="#71">71</a>                          }
<a name="72" href="#72">72</a>                          <strong>else</strong>
<a name="73" href="#73">73</a>                          {
<a name="74" href="#74">74</a>                              <strong>long</strong> idleTime;
<a name="75" href="#75">75</a>                              <a href="../../../../../org/apache/mina/common/SessionConfig.html">SessionConfig</a> config = session.getConfig();
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>                              <strong>if</strong>( !session.isIdle( IdleStatus.BOTH_IDLE ) )
<a name="78" href="#78">78</a>                              {
<a name="79" href="#79">79</a>                                  idleTime = config
<a name="80" href="#80">80</a>                                          .getIdleTimeInMillis( IdleStatus.BOTH_IDLE );
<a name="81" href="#81">81</a>                                  session.setIdle( IdleStatus.BOTH_IDLE,
<a name="82" href="#82">82</a>                                                   idleTime > 0L
<a name="83" href="#83">83</a>                                                   &amp;&amp; ( currentTime - session.getLastIoTime() ) > idleTime );
<a name="84" href="#84">84</a>                                  <strong>if</strong>( session.isIdle( IdleStatus.BOTH_IDLE ) )
<a name="85" href="#85">85</a>                                      session.getManagerFilterChain()
<a name="86" href="#86">86</a>                                              .sessionIdle( session,
<a name="87" href="#87">87</a>                                                            IdleStatus.BOTH_IDLE );
<a name="88" href="#88">88</a>                              }
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>                              <strong>if</strong>( !session.isIdle( IdleStatus.READER_IDLE ) )
<a name="91" href="#91">91</a>                              {
<a name="92" href="#92">92</a>                                  idleTime = config
<a name="93" href="#93">93</a>                                          .getIdleTimeInMillis( IdleStatus.READER_IDLE );
<a name="94" href="#94">94</a>                                  session.setIdle( IdleStatus.READER_IDLE,
<a name="95" href="#95">95</a>                                                   idleTime > 0L
<a name="96" href="#96">96</a>                                                   &amp;&amp; ( currentTime - session.getLastReadTime() ) > idleTime );
<a name="97" href="#97">97</a>                                  <strong>if</strong>( session.isIdle( IdleStatus.READER_IDLE ) )
<a name="98" href="#98">98</a>                                      session.getManagerFilterChain()
<a name="99" href="#99">99</a>                                              .sessionIdle( session,
<a name="100" href="#100">100</a>                                                           IdleStatus.READER_IDLE );
<a name="101" href="#101">101</a>                             }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>                             <strong>if</strong>( !session.isIdle( IdleStatus.WRITER_IDLE ) )
<a name="104" href="#104">104</a>                             {
<a name="105" href="#105">105</a>                                 idleTime = config
<a name="106" href="#106">106</a>                                         .getIdleTimeInMillis( IdleStatus.WRITER_IDLE );
<a name="107" href="#107">107</a>                                 session.setIdle( IdleStatus.WRITER_IDLE,
<a name="108" href="#108">108</a>                                                  idleTime > 0L
<a name="109" href="#109">109</a>                                                  &amp;&amp; ( currentTime - session.getLastWriteTime() ) > idleTime );
<a name="110" href="#110">110</a>                                 <strong>if</strong>( session.isIdle( IdleStatus.WRITER_IDLE ) )
<a name="111" href="#111">111</a>                                     session.getManagerFilterChain()
<a name="112" href="#112">112</a>                                             .sessionIdle( session,
<a name="113" href="#113">113</a>                                                           IdleStatus.WRITER_IDLE );
<a name="114" href="#114">114</a>                             }
<a name="115" href="#115">115</a>                         }
<a name="116" href="#116">116</a>                     }
<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>     }
<a name="121" href="#121">121</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

