<!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>IdleStatus xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/common/IdleStatus.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: IdleStatus.java 327113 2005-10-21 06:59:15Z 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/common/package-summary.html">org.apache.mina.common</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.io.IoSession;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <em>/**<em>*</em></em>
<a name="25" href="#25">25</a>  <em> * Represents the type of idleness of {@link IoSession} or</em>
<a name="26" href="#26">26</a>  <em> * {@link ProtocolSession}.  There are three types of idleness:</em>
<a name="27" href="#27">27</a>  <em> * &lt;ul></em>
<a name="28" href="#28">28</a>  <em> *   &lt;li>{@link #READER_IDLE} - No data is coming from the remote peer.&lt;/li></em>
<a name="29" href="#29">29</a>  <em> *   &lt;li>{@link #WRITER_IDLE} - Session is not writing any data.&lt;/li></em>
<a name="30" href="#30">30</a>  <em> *   &lt;li>{@link #BOTH_IDLE} - Both {@link #READER_IDLE} and {@link #WRITER_IDLE}.&lt;/li></em>
<a name="31" href="#31">31</a>  <em> * &lt;/ul></em>
<a name="32" href="#32">32</a>  <em> * &lt;p></em>
<a name="33" href="#33">33</a>  <em> * Idle time settings are all disabled by default.  You can enable them</em>
<a name="34" href="#34">34</a>  <em> * using {@link SessionConfig#setIdleTime(IdleStatus,int)}.</em>
<a name="35" href="#35">35</a>  <em> * </em>
<a name="36" href="#36">36</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="37" href="#37">37</a>  <em> * @version $Rev: 327113 $, $Date: 2005-10-21 15:59:15 +0900 $</em>
<a name="38" href="#38">38</a>  <em> */</em>
<a name="39" href="#39">39</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a>
<a name="40" href="#40">40</a>  {
<a name="41" href="#41">41</a>      <em>/**<em>*</em></em>
<a name="42" href="#42">42</a>  <em>     * Represents the session status that no data is coming from the remote</em>
<a name="43" href="#43">43</a>  <em>     * peer.</em>
<a name="44" href="#44">44</a>  <em>     */</em>
<a name="45" href="#45">45</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a> READER_IDLE = <strong>new</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a>( <span class="string">"reader idle"</span> );
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>      <em>/**<em>*</em></em>
<a name="48" href="#48">48</a>  <em>     * Represents the session status that the session is not writing any data.</em>
<a name="49" href="#49">49</a>  <em>     */</em>
<a name="50" href="#50">50</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a> WRITER_IDLE = <strong>new</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a>( <span class="string">"writer idle"</span> );
<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>     * Represents both {@link #READER_IDLE} and {@link #WRITER_IDLE}.</em>
<a name="54" href="#54">54</a>  <em>     */</em>
<a name="55" href="#55">55</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a> BOTH_IDLE = <strong>new</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a>( <span class="string">"both idle"</span> );
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>      <strong>private</strong> <strong>final</strong> String strValue;
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>      <em>/**<em>*</em></em>
<a name="60" href="#60">60</a>  <em>     * Creates a new instance.</em>
<a name="61" href="#61">61</a>  <em>     */</em>
<a name="62" href="#62">62</a>      <strong>private</strong> <a href="../../../../org/apache/mina/common/IdleStatus.html">IdleStatus</a>( String strValue )
<a name="63" href="#63">63</a>      {
<a name="64" href="#64">64</a>          <strong>this</strong>.strValue = strValue;
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <em>/**<em>*</em></em>
<a name="68" href="#68">68</a>  <em>     * Returns the string representation of this status.</em>
<a name="69" href="#69">69</a>  <em>     * &lt;ul></em>
<a name="70" href="#70">70</a>  <em>     *   &lt;li>{@link #READER_IDLE} - &lt;tt>"reader idle"&lt;/tt>&lt;/li></em>
<a name="71" href="#71">71</a>  <em>     *   &lt;li>{@link #WRITER_IDLE} - &lt;tt>"writer idle"&lt;/tt>&lt;/li></em>
<a name="72" href="#72">72</a>  <em>     *   &lt;li>{@link #BOTH_IDLE} - &lt;tt>"both idle"&lt;/tt>&lt;/li></em>
<a name="73" href="#73">73</a>  <em>     * &lt;/ul></em>
<a name="74" href="#74">74</a>  <em>     */</em>
<a name="75" href="#75">75</a>      <strong>public</strong> String toString()
<a name="76" href="#76">76</a>      {
<a name="77" href="#77">77</a>          <strong>return</strong> strValue;
<a name="78" href="#78">78</a>      }
<a name="79" href="#79">79</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

