<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Mar 15 10:07:11 CET 2019 -->
<title>Session (Apache MINA API Documentation)</title>
<meta name="date" content="2019-03-15">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Session (Apache MINA API Documentation)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Session.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/mina/common/SessionConfig.html" title="interface in org.apache.mina.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/mina/common/Session.html" target="_top">Frames</a></li>
<li><a href="Session.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.mina.common</div>
<h2 title="Interface Session" class="title">Interface Session</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../../org/apache/mina/io/IoSession.html" title="interface in org.apache.mina.io">IoSession</a>, <a href="../../../../org/apache/mina/protocol/ProtocolSession.html" title="interface in org.apache.mina.protocol">ProtocolSession</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/mina/common/BaseSession.html" title="class in org.apache.mina.common">BaseSession</a>, <a href="../../../../org/apache/mina/protocol/io/IoProtocolSession.html" title="class in org.apache.mina.protocol.io">IoProtocolSession</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Session</span></pre>
<div class="block">A handle which represents connection between two endpoints regardless of 
 transport types.
 <p>
 Session provides user-defined attributes.  User-defined attributes are
 application-specific data which is associated with a session.
 It often contains objects that represents the state of a higher-level protocol
 and becomes a way to exchange data between filters and handlers.</div>
<dl>
<dt><span class="simpleTagLabel">Version:</span></dt>
<dd>$Rev: 326586 $, $Date: 2005-10-19 17:50:29 +0200 (Wed, 19 Oct 2005) $</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>The Apache Directory Project (dev@directory.apache.org)</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#close--">close</a></span>()</code>
<div class="block">Closes this session immediately.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#close-boolean-">close</a></span>(boolean&nbsp;wait)</code>
<div class="block">Closes this session immediately.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getAttachment--">getAttachment</a></span>()</code>
<div class="block">Returns an attachment of this session.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getAttribute-java.lang.String-">getAttribute</a></span>(java.lang.String&nbsp;key)</code>
<div class="block">Returns the value of user-defined attribute of this session.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.util.Set</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getAttributeKeys--">getAttributeKeys</a></span>()</code>
<div class="block">Returns the set of keys of all user-defined attributes.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/mina/common/SessionConfig.html" title="interface in org.apache.mina.common">SessionConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getConfig--">getConfig</a></span>()</code>
<div class="block">Returns the configuration of this session.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getCreationTime--">getCreationTime</a></span>()</code>
<div class="block">Returns the time in millis when this session is created.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getIdleCount-org.apache.mina.common.IdleStatus-">getIdleCount</a></span>(<a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common">IdleStatus</a>&nbsp;status)</code>
<div class="block">Returns the number of the fired continuous <tt>sessionIdle</tt> events
 for the specified <a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><code>IdleStatus</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getLastIdleTime-org.apache.mina.common.IdleStatus-">getLastIdleTime</a></span>(<a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common">IdleStatus</a>&nbsp;status)</code>
<div class="block">Returns the time in millis when the last <tt>sessionIdle</tt> event
 is fired for the specified <a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><code>IdleStatus</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getLastIoTime--">getLastIoTime</a></span>()</code>
<div class="block">Returns the time in millis when I/O occurred lastly.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getLastReadTime--">getLastReadTime</a></span>()</code>
<div class="block">Returns the time in millis when read operation occurred lastly.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getLastWriteTime--">getLastWriteTime</a></span>()</code>
<div class="block">Returns the time in millis when write operation occurred lastly.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.net.SocketAddress</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getLocalAddress--">getLocalAddress</a></span>()</code>
<div class="block">Returns the socket address of local machine which is associated with this
 session.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getReadBytes--">getReadBytes</a></span>()</code>
<div class="block">Returns the total number of bytes which were read from this session.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.net.SocketAddress</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getRemoteAddress--">getRemoteAddress</a></span>()</code>
<div class="block">Returns the socket address of remote peer.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getScheduledWriteRequests--">getScheduledWriteRequests</a></span>()</code>
<div class="block">Returns the number of write requests which are scheduled to be written
 to this session.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/mina/common/TransportType.html" title="class in org.apache.mina.common">TransportType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getTransportType--">getTransportType</a></span>()</code>
<div class="block">Returns transport type of this session.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getWrittenBytes--">getWrittenBytes</a></span>()</code>
<div class="block">Returns the total number of bytes which were written to this session.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#getWrittenWriteRequests--">getWrittenWriteRequests</a></span>()</code>
<div class="block">Returns the total number of write requests which were written to this session.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#isConnected--">isConnected</a></span>()</code>
<div class="block">Returns <code>true</code> if this session is connected with remote peer.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#isIdle-org.apache.mina.common.IdleStatus-">isIdle</a></span>(<a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common">IdleStatus</a>&nbsp;status)</code>
<div class="block">Returns <code>true</code> if this session is idle for the specified 
 <a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><code>IdleStatus</code></a>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#removeAttribute-java.lang.String-">removeAttribute</a></span>(java.lang.String&nbsp;key)</code>
<div class="block">Removes a user-defined attribute with the specified key.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#setAttachment-java.lang.Object-">setAttachment</a></span>(java.lang.Object&nbsp;attachment)</code>
<div class="block">Sets an attachment of this session.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/mina/common/Session.html#setAttribute-java.lang.String-java.lang.Object-">setAttribute</a></span>(java.lang.String&nbsp;key,
            java.lang.Object&nbsp;value)</code>
<div class="block">Sets a user-defined attribute.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="close--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()</pre>
<div class="block">Closes this session immediately.  Calling method is identical with
 calling <tt>close( false )</tt>.</div>
</li>
</ul>
<a name="close-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close(boolean&nbsp;wait)</pre>
<div class="block">Closes this session immediately.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wait</code> - <tt>true</tt> if you want to wait until closing process is
             complete.</dd>
</dl>
</li>
</ul>
<a name="getAttachment--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttachment</h4>
<pre>java.lang.Object&nbsp;getAttachment()</pre>
<div class="block">Returns an attachment of this session.
 This method is identical with <tt>getAttribute( "" )</tt>.</div>
</li>
</ul>
<a name="setAttachment-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttachment</h4>
<pre>java.lang.Object&nbsp;setAttachment(java.lang.Object&nbsp;attachment)</pre>
<div class="block">Sets an attachment of this session.
 This method is identical with <tt>setAttribute( "", attachment )</tt>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Old attachment.  <tt>null</tt> if it is new.</dd>
</dl>
</li>
</ul>
<a name="getAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre>java.lang.Object&nbsp;getAttribute(java.lang.String&nbsp;key)</pre>
<div class="block">Returns the value of user-defined attribute of this session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>null</tt> if there is no attribute with the specified key</dd>
</dl>
</li>
</ul>
<a name="setAttribute-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttribute</h4>
<pre>java.lang.Object&nbsp;setAttribute(java.lang.String&nbsp;key,
                              java.lang.Object&nbsp;value)</pre>
<div class="block">Sets a user-defined attribute.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the attribute</dd>
<dd><code>value</code> - the value of the attribute</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The old value of the attribute.  <tt>null</tt> if it is new.</dd>
</dl>
</li>
</ul>
<a name="removeAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAttribute</h4>
<pre>java.lang.Object&nbsp;removeAttribute(java.lang.String&nbsp;key)</pre>
<div class="block">Removes a user-defined attribute with the specified key.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The old value of the attribute.  <tt>null</tt> if not found.</dd>
</dl>
</li>
</ul>
<a name="getAttributeKeys--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributeKeys</h4>
<pre>java.util.Set&nbsp;getAttributeKeys()</pre>
<div class="block">Returns the set of keys of all user-defined attributes.</div>
</li>
</ul>
<a name="getTransportType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransportType</h4>
<pre><a href="../../../../org/apache/mina/common/TransportType.html" title="class in org.apache.mina.common">TransportType</a>&nbsp;getTransportType()</pre>
<div class="block">Returns transport type of this session.</div>
</li>
</ul>
<a name="isConnected--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConnected</h4>
<pre>boolean&nbsp;isConnected()</pre>
<div class="block">Returns <code>true</code> if this session is connected with remote peer.</div>
</li>
</ul>
<a name="getConfig--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfig</h4>
<pre><a href="../../../../org/apache/mina/common/SessionConfig.html" title="interface in org.apache.mina.common">SessionConfig</a>&nbsp;getConfig()</pre>
<div class="block">Returns the configuration of this session.</div>
</li>
</ul>
<a name="getRemoteAddress--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteAddress</h4>
<pre>java.net.SocketAddress&nbsp;getRemoteAddress()</pre>
<div class="block">Returns the socket address of remote peer.</div>
</li>
</ul>
<a name="getLocalAddress--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalAddress</h4>
<pre>java.net.SocketAddress&nbsp;getLocalAddress()</pre>
<div class="block">Returns the socket address of local machine which is associated with this
 session.</div>
</li>
</ul>
<a name="getReadBytes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReadBytes</h4>
<pre>long&nbsp;getReadBytes()</pre>
<div class="block">Returns the total number of bytes which were read from this session.</div>
</li>
</ul>
<a name="getWrittenBytes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWrittenBytes</h4>
<pre>long&nbsp;getWrittenBytes()</pre>
<div class="block">Returns the total number of bytes which were written to this session.</div>
</li>
</ul>
<a name="getWrittenWriteRequests--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWrittenWriteRequests</h4>
<pre>long&nbsp;getWrittenWriteRequests()</pre>
<div class="block">Returns the total number of write requests which were written to this session.</div>
</li>
</ul>
<a name="getScheduledWriteRequests--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScheduledWriteRequests</h4>
<pre>int&nbsp;getScheduledWriteRequests()</pre>
<div class="block">Returns the number of write requests which are scheduled to be written
 to this session.</div>
</li>
</ul>
<a name="getCreationTime--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCreationTime</h4>
<pre>long&nbsp;getCreationTime()</pre>
<div class="block">Returns the time in millis when this session is created.</div>
</li>
</ul>
<a name="getLastIoTime--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastIoTime</h4>
<pre>long&nbsp;getLastIoTime()</pre>
<div class="block">Returns the time in millis when I/O occurred lastly.</div>
</li>
</ul>
<a name="getLastReadTime--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastReadTime</h4>
<pre>long&nbsp;getLastReadTime()</pre>
<div class="block">Returns the time in millis when read operation occurred lastly.</div>
</li>
</ul>
<a name="getLastWriteTime--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastWriteTime</h4>
<pre>long&nbsp;getLastWriteTime()</pre>
<div class="block">Returns the time in millis when write operation occurred lastly.</div>
</li>
</ul>
<a name="isIdle-org.apache.mina.common.IdleStatus-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIdle</h4>
<pre>boolean&nbsp;isIdle(<a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common">IdleStatus</a>&nbsp;status)</pre>
<div class="block">Returns <code>true</code> if this session is idle for the specified 
 <a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><code>IdleStatus</code></a>.</div>
</li>
</ul>
<a name="getIdleCount-org.apache.mina.common.IdleStatus-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIdleCount</h4>
<pre>int&nbsp;getIdleCount(<a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common">IdleStatus</a>&nbsp;status)</pre>
<div class="block">Returns the number of the fired continuous <tt>sessionIdle</tt> events
 for the specified <a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><code>IdleStatus</code></a>.
 <p>
 If <tt>sessionIdle</tt> event is fired first after some time after I/O,
 <tt>idleCount</tt> becomes <tt>1</tt>.  <tt>idleCount</tt> resets to
 <tt>0</tt> if any I/O occurs again, otherwise it increases to
 <tt>2</tt> and so on if <tt>sessionIdle</tt> event is fired again without
 any I/O between two (or more) <tt>sessionIdle</tt> events.</div>
</li>
</ul>
<a name="getLastIdleTime-org.apache.mina.common.IdleStatus-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getLastIdleTime</h4>
<pre>long&nbsp;getLastIdleTime(<a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common">IdleStatus</a>&nbsp;status)</pre>
<div class="block">Returns the time in millis when the last <tt>sessionIdle</tt> event
 is fired for the specified <a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><code>IdleStatus</code></a>.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Session.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/mina/common/IdleStatus.html" title="class in org.apache.mina.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/mina/common/SessionConfig.html" title="interface in org.apache.mina.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/mina/common/Session.html" target="_top">Frames</a></li>
<li><a href="Session.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
