blob: c09493aa4e5dd96101681890c9c8292eaa3c6f12 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_24) on Mon Apr 11 23:10:50 CEST 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AbstractIoSession (Apache MINA 2.0.3 API)
</TITLE>
<META NAME="date" CONTENT="2011-04-11">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractIoSession (Apache MINA 2.0.3 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AbstractIoSession.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../org/apache/mina/core/session/AbstractIoSessionConfig.html" title="class in org.apache.mina.core.session"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/mina/core/session/AbstractIoSession.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractIoSession.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.mina.core.session</FONT>
<BR>
Class AbstractIoSession</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.mina.core.session.AbstractIoSession</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/mina/transport/socket/apr/AprSession.html" title="class in org.apache.mina.transport.socket.apr">AprSession</A>, <A HREF="../../../../../org/apache/mina/core/session/DummySession.html" title="class in org.apache.mina.core.session">DummySession</A>, <A HREF="../../../../../org/apache/mina/transport/socket/nio/NioSession.html" title="class in org.apache.mina.transport.socket.nio">NioSession</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>AbstractIoSession</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></DL>
</PRE>
<P>
Base implementation of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD><a href="http://mina.apache.org">Apache MINA Project</a></DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/mina/core/session/IoSessionConfig.html" title="interface in org.apache.mina.core.session">IoSessionConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#config">config</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The session config</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#AbstractIoSession(org.apache.mina.core.service.IoService)">AbstractIoSession</A></B>(<A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service">IoService</A>&nbsp;service)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future">CloseFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#close()">close</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closes this session after all queued write requests
are flushed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future">CloseFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#close(boolean)">close</A></B>(boolean&nbsp;rightNow)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closes this session immediately or after all queued write requests
are flushed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#containsAttribute(java.lang.Object)">containsAttribute</A></B>(java.lang.Object&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if this session contains the attribute with
the specified <tt>key</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#decreaseReadBufferSize()">decreaseReadBufferSize</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#decreaseScheduledBytesAndMessages(org.apache.mina.core.write.WriteRequest)">decreaseScheduledBytesAndMessages</A></B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A>&nbsp;request)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TODO This is a ridiculous implementation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getAttachment()">getAttachment</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an attachment of this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getAttribute(java.lang.Object)">getAttribute</A></B>(java.lang.Object&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the user-defined attribute of this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getAttribute(java.lang.Object, java.lang.Object)">getAttribute</A></B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;defaultValue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of user defined attribute associated with the
specified key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Set&lt;java.lang.Object&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getAttributeKeys()">getAttributeKeys</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the set of keys of all user-defined attributes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/session/IoSessionAttributeMap.html" title="interface in org.apache.mina.core.session">IoSessionAttributeMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getAttributeMap()">getAttributeMap</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getBothIdleCount()">getBothIdleCount</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of the fired continuous <tt>sessionIdle</tt> events
for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#BOTH_IDLE"><CODE>IdleStatus.BOTH_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future">CloseFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getCloseFuture()">getCloseFuture</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future"><CODE>CloseFuture</CODE></A> of this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/session/IoSessionConfig.html" title="interface in org.apache.mina.core.session">IoSessionConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getConfig()">getConfig</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getCreationTime()">getCreationTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getCurrentWriteMessage()">getCurrentWriteMessage</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the message which is being written by <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getCurrentWriteRequest()">getCurrentWriteRequest</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write"><CODE>WriteRequest</CODE></A> which is being processed by
<A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/service/IoHandler.html" title="interface in org.apache.mina.core.service">IoHandler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getHandler()">getHandler</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getId()">getId</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
We use an AtomicLong to guarantee that the session ID are unique.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getIdleCount(org.apache.mina.core.session.IdleStatus)">getIdleCount</A></B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of the fired continuous <tt>sessionIdle</tt> events
for the specified <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session"><CODE>IdleStatus</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastBothIdleTime()">getLastBothIdleTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#BOTH_IDLE"><CODE>IdleStatus.BOTH_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastIdleTime(org.apache.mina.core.session.IdleStatus)">getLastIdleTime</A></B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for the specified <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session"><CODE>IdleStatus</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastIoTime()">getLastIoTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in millis when I/O occurred lastly.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastReaderIdleTime()">getLastReaderIdleTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#READER_IDLE"><CODE>IdleStatus.READER_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastReadTime()">getLastReadTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in millis when read operation occurred lastly.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastWriterIdleTime()">getLastWriterIdleTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#WRITER_IDLE"><CODE>IdleStatus.WRITER_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getLastWriteTime()">getLastWriteTime</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time in millis when write operation occurred lastly.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getProcessor()">getProcessor</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getReadBytes()">getReadBytes</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the total number of bytes which were read from this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getReadBytesThroughput()">getReadBytesThroughput</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of read bytes per second.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getReaderIdleCount()">getReaderIdleCount</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of the fired continuous <tt>sessionIdle</tt> events
for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#READER_IDLE"><CODE>IdleStatus.READER_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getReadMessages()">getReadMessages</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the total number of messages which were read and decoded from this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getReadMessagesThroughput()">getReadMessagesThroughput</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of read messages per second.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getScheduledWriteBytes()">getScheduledWriteBytes</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of bytes which are scheduled to be written to this
session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getScheduledWriteMessages()">getScheduledWriteMessages</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of messages which are scheduled to be written to this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service">IoService</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getService()">getService</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.net.SocketAddress</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getServiceAddress()">getServiceAddress</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the socket address of the <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A> listens to to manage
this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/write/WriteRequestQueue.html" title="interface in org.apache.mina.core.write">WriteRequestQueue</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getWriteRequestQueue()">getWriteRequestQueue</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getWriterIdleCount()">getWriterIdleCount</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of the fired continuous <tt>sessionIdle</tt> events
for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#WRITER_IDLE"><CODE>IdleStatus.WRITER_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getWrittenBytes()">getWrittenBytes</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the total number of bytes which were written to this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getWrittenBytesThroughput()">getWrittenBytesThroughput</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of written bytes per second.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getWrittenMessages()">getWrittenMessages</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the total number of messages which were written and encoded by this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#getWrittenMessagesThroughput()">getWrittenMessagesThroughput</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of written messages per second.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#hashCode()">hashCode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseIdleCount(org.apache.mina.core.session.IdleStatus, long)">increaseIdleCount</A></B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status,
long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseReadBufferSize()">increaseReadBufferSize</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseReadBytes(long, long)">increaseReadBytes</A></B>(long&nbsp;increment,
long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseReadMessages(long)">increaseReadMessages</A></B>(long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseScheduledWriteBytes(int)">increaseScheduledWriteBytes</A></B>(int&nbsp;increment)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseScheduledWriteMessages()">increaseScheduledWriteMessages</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseWrittenBytes(int, long)">increaseWrittenBytes</A></B>(int&nbsp;increment,
long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#increaseWrittenMessages(org.apache.mina.core.write.WriteRequest, long)">increaseWrittenMessages</A></B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A>&nbsp;request,
long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isBothIdle()">isBothIdle</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this session is <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#BOTH_IDLE"><CODE>IdleStatus.BOTH_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isClosing()">isClosing</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</tt> if and only if this session is being closed
(but not disconnected yet) or is closed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isConnected()">isConnected</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this session is connected with remote peer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isIdle(org.apache.mina.core.session.IdleStatus)">isIdle</A></B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this session is idle for the specified
<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session"><CODE>IdleStatus</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isReaderIdle()">isReaderIdle</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this session is <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#READER_IDLE"><CODE>IdleStatus.READER_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isReadSuspended()">isReadSuspended</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is read operation is suspended for this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isScheduledForFlush()">isScheduledForFlush</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells if the session is scheduled for flushed</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isWriterIdle()">isWriterIdle</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this session is <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#WRITER_IDLE"><CODE>IdleStatus.WRITER_IDLE</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#isWriteSuspended()">isWriteSuspended</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is write operation is suspended for this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#notifyIdleness(java.util.Iterator, long)">notifyIdleness</A></B>(java.util.Iterator&lt;? extends <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A>&gt;&nbsp;sessions,
long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a <A HREF="../../../../../org/apache/mina/core/session/IoEventType.html#SESSION_IDLE"><CODE>IoEventType.SESSION_IDLE</CODE></A> event to any applicable sessions
in the specified collection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#notifyIdleSession(org.apache.mina.core.session.IoSession, long)">notifyIdleSession</A></B>(<A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A>&nbsp;session,
long&nbsp;currentTime)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fires a <A HREF="../../../../../org/apache/mina/core/session/IoEventType.html#SESSION_IDLE"><CODE>IoEventType.SESSION_IDLE</CODE></A> event if applicable for the
specified <code>session</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#offerClosedReadFuture()">offerClosedReadFuture</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#offerFailedReadFuture(java.lang.Throwable)">offerFailedReadFuture</A></B>(java.lang.Throwable&nbsp;exception)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#offerReadFuture(java.lang.Object)">offerReadFuture</A></B>(java.lang.Object&nbsp;message)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/future/ReadFuture.html" title="interface in org.apache.mina.core.future">ReadFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#read()">read</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO This javadoc is wrong.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#removeAttribute(java.lang.Object)">removeAttribute</A></B>(java.lang.Object&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a user-defined attribute with the specified key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#removeAttribute(java.lang.Object, java.lang.Object)">removeAttribute</A></B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a user defined attribute with the specified key if the current
attribute value is equal to the specified value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#replaceAttribute(java.lang.Object, java.lang.Object, java.lang.Object)">replaceAttribute</A></B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;oldValue,
java.lang.Object&nbsp;newValue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replaces a user defined attribute with the specified key if the
value of the attribute is equals to the specified old value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#resumeRead()">resumeRead</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resumes read operations for this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#resumeWrite()">resumeWrite</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resumes write operations for this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#scheduledForFlush()">scheduledForFlush</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedule the session for flushed</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setAttachment(java.lang.Object)">setAttachment</A></B>(java.lang.Object&nbsp;attachment)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets an attachment of this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setAttribute(java.lang.Object)">setAttribute</A></B>(java.lang.Object&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a user defined attribute without a value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setAttribute(java.lang.Object, java.lang.Object)">setAttribute</A></B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a user-defined attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setAttributeIfAbsent(java.lang.Object)">setAttributeIfAbsent</A></B>(java.lang.Object&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a user defined attribute without a value if the attribute with
the specified key is not set yet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setAttributeIfAbsent(java.lang.Object, java.lang.Object)">setAttributeIfAbsent</A></B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a user defined attribute if the attribute with the specified key
is not set yet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setAttributeMap(org.apache.mina.core.session.IoSessionAttributeMap)">setAttributeMap</A></B>(<A HREF="../../../../../org/apache/mina/core/session/IoSessionAttributeMap.html" title="interface in org.apache.mina.core.session">IoSessionAttributeMap</A>&nbsp;attributes)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setCurrentWriteRequest(org.apache.mina.core.write.WriteRequest)">setCurrentWriteRequest</A></B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A>&nbsp;currentWriteRequest)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO setWriteRequestQueue.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setScheduledForFlush(boolean)">setScheduledForFlush</A></B>(boolean&nbsp;schedule)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the scheduledForFLush flag.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setScheduledWriteBytes(int)">setScheduledWriteBytes</A></B>(int&nbsp;byteCount)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setScheduledWriteMessages(int)">setScheduledWriteMessages</A></B>(int&nbsp;messages)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO Add method documentation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#setWriteRequestQueue(org.apache.mina.core.write.WriteRequestQueue)">setWriteRequestQueue</A></B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequestQueue.html" title="interface in org.apache.mina.core.write">WriteRequestQueue</A>&nbsp;writeRequestQueue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new close aware write queue, based on the given write queue.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#suspendRead()">suspendRead</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suspends read operations for this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#suspendWrite()">suspendWrite</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suspends write operations for this session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#toString()">toString</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#unscheduledForFlush()">unscheduledForFlush</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the session's status : it's not anymore scheduled for flush</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#updateThroughput(long, boolean)">updateThroughput</A></B>(long&nbsp;currentTime,
boolean&nbsp;force)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Update all statistical properties related with throughput assuming
the specified time is the current time.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/future/WriteFuture.html" title="interface in org.apache.mina.core.future">WriteFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#write(java.lang.Object)">write</A></B>(java.lang.Object&nbsp;message)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the specified <code>message</code> to remote peer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/mina/core/future/WriteFuture.html" title="interface in org.apache.mina.core.future">WriteFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html#write(java.lang.Object, java.net.SocketAddress)">write</A></B>(java.lang.Object&nbsp;message,
java.net.SocketAddress&nbsp;remoteAddress)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Optional) Writes the specified <tt>message</tt> to the specified <tt>destination</tt>.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.mina.core.session.IoSession"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.apache.mina.core.session.<A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getFilterChain()">getFilterChain</A>, <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLocalAddress()">getLocalAddress</A>, <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getRemoteAddress()">getRemoteAddress</A>, <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getTransportMetadata()">getTransportMetadata</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="config"><!-- --></A><H3>
config</H3>
<PRE>
protected <A HREF="../../../../../org/apache/mina/core/session/IoSessionConfig.html" title="interface in org.apache.mina.core.session">IoSessionConfig</A> <B>config</B></PRE>
<DL>
<DD>The session config
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="AbstractIoSession(org.apache.mina.core.service.IoService)"><!-- --></A><H3>
AbstractIoSession</H3>
<PRE>
protected <B>AbstractIoSession</B>(<A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service">IoService</A>&nbsp;service)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getId()"><!-- --></A><H3>
getId</H3>
<PRE>
public final long <B>getId</B>()</PRE>
<DL>
<DD>
We use an AtomicLong to guarantee that the session ID are unique.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getId()">getId</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>a unique identifier for this session. Every session has its own
ID which is different from each other.
TODO : The way it's implemented does not guarantee that the contract is
respected. It uses the HashCode() method which don't guarantee the key
unicity.</DL>
</DD>
</DL>
<HR>
<A NAME="getProcessor()"><!-- --></A><H3>
getProcessor</H3>
<PRE>
public abstract <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A> <B>getProcessor</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The associated IoProcessor for this session</DL>
</DD>
</DL>
<HR>
<A NAME="isConnected()"><!-- --></A><H3>
isConnected</H3>
<PRE>
public final boolean <B>isConnected</B>()</PRE>
<DL>
<DD>Returns <code>true</code> if this session is connected with remote peer.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isConnected()">isConnected</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isClosing()"><!-- --></A><H3>
isClosing</H3>
<PRE>
public final boolean <B>isClosing</B>()</PRE>
<DL>
<DD>Returns <code>true</tt> if and only if this session is being closed
(but not disconnected yet) or is closed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isClosing()">isClosing</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getCloseFuture()"><!-- --></A><H3>
getCloseFuture</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future">CloseFuture</A> <B>getCloseFuture</B>()</PRE>
<DL>
<DD>Returns the <A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future"><CODE>CloseFuture</CODE></A> of this session. This method returns
the same instance whenever user calls it.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getCloseFuture()">getCloseFuture</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isScheduledForFlush()"><!-- --></A><H3>
isScheduledForFlush</H3>
<PRE>
public final boolean <B>isScheduledForFlush</B>()</PRE>
<DL>
<DD>Tells if the session is scheduled for flushed
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>true</CODE> - if the session is scheduled for flush</DL>
</DD>
</DL>
<HR>
<A NAME="scheduledForFlush()"><!-- --></A><H3>
scheduledForFlush</H3>
<PRE>
public final void <B>scheduledForFlush</B>()</PRE>
<DL>
<DD>Schedule the session for flushed
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="unscheduledForFlush()"><!-- --></A><H3>
unscheduledForFlush</H3>
<PRE>
public final void <B>unscheduledForFlush</B>()</PRE>
<DL>
<DD>Change the session's status : it's not anymore scheduled for flush
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setScheduledForFlush(boolean)"><!-- --></A><H3>
setScheduledForFlush</H3>
<PRE>
public final boolean <B>setScheduledForFlush</B>(boolean&nbsp;schedule)</PRE>
<DL>
<DD>Set the scheduledForFLush flag. As we may have concurrent access to this
flag, we compare and set it in one call.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>schedule</CODE> - the new value to set if not already set.
<DT><B>Returns:</B><DD>true if the session flag has been set, and if it wasn't set
already.</DL>
</DD>
</DL>
<HR>
<A NAME="close(boolean)"><!-- --></A><H3>
close</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future">CloseFuture</A> <B>close</B>(boolean&nbsp;rightNow)</PRE>
<DL>
<DD>Closes this session immediately or after all queued write requests
are flushed. This operation is asynchronous. Wait for the returned
<A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future"><CODE>CloseFuture</CODE></A> if you want to wait for the session actually closed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#close(boolean)">close</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rightNow</CODE> - <code>true</code> to close this session immediately
(i.e. <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#close()"><CODE>IoSession.close()</CODE></A>). The pending write requests
will simply be discarded.
<code>false</code> to close this session after all queued
write requests are flushed (i.e. <CODE>#closeOnFlush()</CODE>).</DL>
</DD>
</DL>
<HR>
<A NAME="close()"><!-- --></A><H3>
close</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future">CloseFuture</A> <B>close</B>()</PRE>
<DL>
<DD>Closes this session after all queued write requests
are flushed. This operation is asynchronous. Wait for the returned
<A HREF="../../../../../org/apache/mina/core/future/CloseFuture.html" title="interface in org.apache.mina.core.future"><CODE>CloseFuture</CODE></A> if you want to wait for the session actually closed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getHandler()"><!-- --></A><H3>
getHandler</H3>
<PRE>
public <A HREF="../../../../../org/apache/mina/core/service/IoHandler.html" title="interface in org.apache.mina.core.service">IoHandler</A> <B>getHandler</B>()</PRE>
<DL>
<DD>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getHandler()">getHandler</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the <A HREF="../../../../../org/apache/mina/core/service/IoHandler.html" title="interface in org.apache.mina.core.service"><CODE>IoHandler</CODE></A> which handles this session.</DL>
</DD>
</DL>
<HR>
<A NAME="getConfig()"><!-- --></A><H3>
getConfig</H3>
<PRE>
public <A HREF="../../../../../org/apache/mina/core/session/IoSessionConfig.html" title="interface in org.apache.mina.core.session">IoSessionConfig</A> <B>getConfig</B>()</PRE>
<DL>
<DD>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getConfig()">getConfig</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the configuration of this session.</DL>
</DD>
</DL>
<HR>
<A NAME="read()"><!-- --></A><H3>
read</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/future/ReadFuture.html" title="interface in org.apache.mina.core.future">ReadFuture</A> <B>read</B>()</PRE>
<DL>
<DD>TODO This javadoc is wrong. The return tag should be short.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#read()">read</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>a <A HREF="../../../../../org/apache/mina/core/future/ReadFuture.html" title="interface in org.apache.mina.core.future"><CODE>ReadFuture</CODE></A> which is notified when a new message is
received, the connection is closed or an exception is caught. This
operation is especially useful when you implement a client application.
TODO : Describe here how we enable this feature.
However, please note that this operation is disabled by default and
throw <CODE>IllegalStateException</CODE> because all received events must be
queued somewhere to support this operation, possibly leading to memory
leak. This means you have to keep calling <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#read()"><CODE>IoSession.read()</CODE></A> once you
enabled this operation. To enable this operation, please call
<A HREF="../../../../../org/apache/mina/core/session/IoSessionConfig.html#setUseReadOperation(boolean)"><CODE>IoSessionConfig.setUseReadOperation(boolean)</CODE></A> with <tt>true</tt>.</DL>
</DD>
</DL>
<HR>
<A NAME="offerReadFuture(java.lang.Object)"><!-- --></A><H3>
offerReadFuture</H3>
<PRE>
public final void <B>offerReadFuture</B>(java.lang.Object&nbsp;message)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="offerFailedReadFuture(java.lang.Throwable)"><!-- --></A><H3>
offerFailedReadFuture</H3>
<PRE>
public final void <B>offerFailedReadFuture</B>(java.lang.Throwable&nbsp;exception)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="offerClosedReadFuture()"><!-- --></A><H3>
offerClosedReadFuture</H3>
<PRE>
public final void <B>offerClosedReadFuture</B>()</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="write(java.lang.Object)"><!-- --></A><H3>
write</H3>
<PRE>
public <A HREF="../../../../../org/apache/mina/core/future/WriteFuture.html" title="interface in org.apache.mina.core.future">WriteFuture</A> <B>write</B>(java.lang.Object&nbsp;message)</PRE>
<DL>
<DD>Writes the specified <code>message</code> to remote peer. This
operation is asynchronous; <A HREF="../../../../../org/apache/mina/core/service/IoHandler.html#messageSent(org.apache.mina.core.session.IoSession, java.lang.Object)"><CODE>IoHandler.messageSent(IoSession,Object)</CODE></A>
will be invoked when the message is actually sent to remote peer.
You can also wait for the returned <A HREF="../../../../../org/apache/mina/core/future/WriteFuture.html" title="interface in org.apache.mina.core.future"><CODE>WriteFuture</CODE></A> if you want
to wait for the message actually written.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#write(java.lang.Object)">write</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="write(java.lang.Object, java.net.SocketAddress)"><!-- --></A><H3>
write</H3>
<PRE>
public <A HREF="../../../../../org/apache/mina/core/future/WriteFuture.html" title="interface in org.apache.mina.core.future">WriteFuture</A> <B>write</B>(java.lang.Object&nbsp;message,
java.net.SocketAddress&nbsp;remoteAddress)</PRE>
<DL>
<DD>(Optional) Writes the specified <tt>message</tt> to the specified <tt>destination</tt>.
This operation is asynchronous; <A HREF="../../../../../org/apache/mina/core/service/IoHandler.html#messageSent(org.apache.mina.core.session.IoSession, java.lang.Object)"><CODE>IoHandler.messageSent(IoSession, Object)</CODE></A>
will be invoked when the message is actually sent to remote peer. You can
also wait for the returned <A HREF="../../../../../org/apache/mina/core/future/WriteFuture.html" title="interface in org.apache.mina.core.future"><CODE>WriteFuture</CODE></A> if you want to wait for
the message actually written.
<p>
When you implement a client that receives a broadcast message from a server
such as DHCP server, the client might need to send a response message for the
broadcast message the server sent. Because the remote address of the session
is not the address of the server in case of broadcasting, there should be a
way to specify the destination when you write the response message.
This interface provides <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#write(java.lang.Object, java.net.SocketAddress)"><CODE>IoSession.write(Object, SocketAddress)</CODE></A> method so you
can specify the destination.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#write(java.lang.Object, java.net.SocketAddress)">write</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DD><CODE>remoteAddress</CODE> - <tt>null</tt> if you want the message sent to the
default remote address</DL>
</DD>
</DL>
<HR>
<A NAME="getAttachment()"><!-- --></A><H3>
getAttachment</H3>
<PRE>
public final java.lang.Object <B>getAttachment</B>()</PRE>
<DL>
<DD>Returns an attachment of this session.
This method is identical with <tt>getAttribute( "" )</tt>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getAttachment()">getAttachment</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setAttachment(java.lang.Object)"><!-- --></A><H3>
setAttachment</H3>
<PRE>
public final java.lang.Object <B>setAttachment</B>(java.lang.Object&nbsp;attachment)</PRE>
<DL>
<DD>Sets an attachment of this session.
This method is identical with <tt>setAttribute( "", attachment )</tt>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#setAttachment(java.lang.Object)">setAttachment</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>Old attachment. <tt>null</tt> if it is new.</DL>
</DD>
</DL>
<HR>
<A NAME="getAttribute(java.lang.Object)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public final java.lang.Object <B>getAttribute</B>(java.lang.Object&nbsp;key)</PRE>
<DL>
<DD>Returns the value of the user-defined attribute of this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getAttribute(java.lang.Object)">getAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - the key of the attribute
<DT><B>Returns:</B><DD><tt>null</tt> if there is no attribute with the specified key</DL>
</DD>
</DL>
<HR>
<A NAME="getAttribute(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public final java.lang.Object <B>getAttribute</B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;defaultValue)</PRE>
<DL>
<DD>Returns the value of user defined attribute associated with the
specified key. If there's no such attribute, the specified default
value is associated with the specified key, and the default value is
returned. This method is same with the following code except that the
operation is performed atomically.
<pre>
if (containsAttribute(key)) {
return getAttribute(key);
} else {
setAttribute(key, defaultValue);
return defaultValue;
}
</pre>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getAttribute(java.lang.Object, java.lang.Object)">getAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setAttribute(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
setAttribute</H3>
<PRE>
public final java.lang.Object <B>setAttribute</B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>Sets a user-defined attribute.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#setAttribute(java.lang.Object, java.lang.Object)">setAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - the key of the attribute<DD><CODE>value</CODE> - the value of the attribute
<DT><B>Returns:</B><DD>The old value of the attribute. <tt>null</tt> if it is new.</DL>
</DD>
</DL>
<HR>
<A NAME="setAttribute(java.lang.Object)"><!-- --></A><H3>
setAttribute</H3>
<PRE>
public final java.lang.Object <B>setAttribute</B>(java.lang.Object&nbsp;key)</PRE>
<DL>
<DD>Sets a user defined attribute without a value. This is useful when
you just want to put a 'mark' attribute. Its value is set to
<CODE>Boolean.TRUE</CODE>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#setAttribute(java.lang.Object)">setAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - the key of the attribute
<DT><B>Returns:</B><DD>The old value of the attribute. <tt>null</tt> if it is new.</DL>
</DD>
</DL>
<HR>
<A NAME="setAttributeIfAbsent(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
setAttributeIfAbsent</H3>
<PRE>
public final java.lang.Object <B>setAttributeIfAbsent</B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>Sets a user defined attribute if the attribute with the specified key
is not set yet. This method is same with the following code except
that the operation is performed atomically.
<pre>
if (containsAttribute(key)) {
return getAttribute(key);
} else {
return setAttribute(key, value);
}
</pre>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#setAttributeIfAbsent(java.lang.Object, java.lang.Object)">setAttributeIfAbsent</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setAttributeIfAbsent(java.lang.Object)"><!-- --></A><H3>
setAttributeIfAbsent</H3>
<PRE>
public final java.lang.Object <B>setAttributeIfAbsent</B>(java.lang.Object&nbsp;key)</PRE>
<DL>
<DD>Sets a user defined attribute without a value if the attribute with
the specified key is not set yet. This is useful when you just want to
put a 'mark' attribute. Its value is set to <CODE>Boolean.TRUE</CODE>.
This method is same with the following code except that the operation
is performed atomically.
<pre>
if (containsAttribute(key)) {
return getAttribute(key); // might not always be Boolean.TRUE.
} else {
return setAttribute(key);
}
</pre>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#setAttributeIfAbsent(java.lang.Object)">setAttributeIfAbsent</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeAttribute(java.lang.Object)"><!-- --></A><H3>
removeAttribute</H3>
<PRE>
public final java.lang.Object <B>removeAttribute</B>(java.lang.Object&nbsp;key)</PRE>
<DL>
<DD>Removes a user-defined attribute with the specified key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#removeAttribute(java.lang.Object)">removeAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The old value of the attribute. <tt>null</tt> if not found.</DL>
</DD>
</DL>
<HR>
<A NAME="removeAttribute(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
removeAttribute</H3>
<PRE>
public final boolean <B>removeAttribute</B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>Removes a user defined attribute with the specified key if the current
attribute value is equal to the specified value. This method is same
with the following code except that the operation is performed
atomically.
<pre>
if (containsAttribute(key) && getAttribute(key).equals(value)) {
removeAttribute(key);
return true;
} else {
return false;
}
</pre>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#removeAttribute(java.lang.Object, java.lang.Object)">removeAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="replaceAttribute(java.lang.Object, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
replaceAttribute</H3>
<PRE>
public final boolean <B>replaceAttribute</B>(java.lang.Object&nbsp;key,
java.lang.Object&nbsp;oldValue,
java.lang.Object&nbsp;newValue)</PRE>
<DL>
<DD>Replaces a user defined attribute with the specified key if the
value of the attribute is equals to the specified old value.
This method is same with the following code except that the operation
is performed atomically.
<pre>
if (containsAttribute(key) && getAttribute(key).equals(oldValue)) {
setAttribute(key, newValue);
return true;
} else {
return false;
}
</pre>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#replaceAttribute(java.lang.Object, java.lang.Object, java.lang.Object)">replaceAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="containsAttribute(java.lang.Object)"><!-- --></A><H3>
containsAttribute</H3>
<PRE>
public final boolean <B>containsAttribute</B>(java.lang.Object&nbsp;key)</PRE>
<DL>
<DD>Returns <tt>true</tt> if this session contains the attribute with
the specified <tt>key</tt>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#containsAttribute(java.lang.Object)">containsAttribute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getAttributeKeys()"><!-- --></A><H3>
getAttributeKeys</H3>
<PRE>
public final java.util.Set&lt;java.lang.Object&gt; <B>getAttributeKeys</B>()</PRE>
<DL>
<DD>Returns the set of keys of all user-defined attributes.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getAttributeKeys()">getAttributeKeys</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getAttributeMap()"><!-- --></A><H3>
getAttributeMap</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/session/IoSessionAttributeMap.html" title="interface in org.apache.mina.core.session">IoSessionAttributeMap</A> <B>getAttributeMap</B>()</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setAttributeMap(org.apache.mina.core.session.IoSessionAttributeMap)"><!-- --></A><H3>
setAttributeMap</H3>
<PRE>
public final void <B>setAttributeMap</B>(<A HREF="../../../../../org/apache/mina/core/session/IoSessionAttributeMap.html" title="interface in org.apache.mina.core.session">IoSessionAttributeMap</A>&nbsp;attributes)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setWriteRequestQueue(org.apache.mina.core.write.WriteRequestQueue)"><!-- --></A><H3>
setWriteRequestQueue</H3>
<PRE>
public final void <B>setWriteRequestQueue</B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequestQueue.html" title="interface in org.apache.mina.core.write">WriteRequestQueue</A>&nbsp;writeRequestQueue)</PRE>
<DL>
<DD>Create a new close aware write queue, based on the given write queue.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>writeRequestQueue</CODE> - The write request queue</DL>
</DD>
</DL>
<HR>
<A NAME="suspendRead()"><!-- --></A><H3>
suspendRead</H3>
<PRE>
public final void <B>suspendRead</B>()</PRE>
<DL>
<DD>Suspends read operations for this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#suspendRead()">suspendRead</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="suspendWrite()"><!-- --></A><H3>
suspendWrite</H3>
<PRE>
public final void <B>suspendWrite</B>()</PRE>
<DL>
<DD>Suspends write operations for this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#suspendWrite()">suspendWrite</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="resumeRead()"><!-- --></A><H3>
resumeRead</H3>
<PRE>
public final void <B>resumeRead</B>()</PRE>
<DL>
<DD>Resumes read operations for this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#resumeRead()">resumeRead</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="resumeWrite()"><!-- --></A><H3>
resumeWrite</H3>
<PRE>
public final void <B>resumeWrite</B>()</PRE>
<DL>
<DD>Resumes write operations for this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#resumeWrite()">resumeWrite</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isReadSuspended()"><!-- --></A><H3>
isReadSuspended</H3>
<PRE>
public boolean <B>isReadSuspended</B>()</PRE>
<DL>
<DD>Is read operation is suspended for this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isReadSuspended()">isReadSuspended</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if suspended</DL>
</DD>
</DL>
<HR>
<A NAME="isWriteSuspended()"><!-- --></A><H3>
isWriteSuspended</H3>
<PRE>
public boolean <B>isWriteSuspended</B>()</PRE>
<DL>
<DD>Is write operation is suspended for this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isWriteSuspended()">isWriteSuspended</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if suspended</DL>
</DD>
</DL>
<HR>
<A NAME="getReadBytes()"><!-- --></A><H3>
getReadBytes</H3>
<PRE>
public final long <B>getReadBytes</B>()</PRE>
<DL>
<DD>Returns the total number of bytes which were read from this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getReadBytes()">getReadBytes</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getWrittenBytes()"><!-- --></A><H3>
getWrittenBytes</H3>
<PRE>
public final long <B>getWrittenBytes</B>()</PRE>
<DL>
<DD>Returns the total number of bytes which were written to this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getWrittenBytes()">getWrittenBytes</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getReadMessages()"><!-- --></A><H3>
getReadMessages</H3>
<PRE>
public final long <B>getReadMessages</B>()</PRE>
<DL>
<DD>Returns the total number of messages which were read and decoded from this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getReadMessages()">getReadMessages</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getWrittenMessages()"><!-- --></A><H3>
getWrittenMessages</H3>
<PRE>
public final long <B>getWrittenMessages</B>()</PRE>
<DL>
<DD>Returns the total number of messages which were written and encoded by this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getWrittenMessages()">getWrittenMessages</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getReadBytesThroughput()"><!-- --></A><H3>
getReadBytesThroughput</H3>
<PRE>
public final double <B>getReadBytesThroughput</B>()</PRE>
<DL>
<DD>Returns the number of read bytes per second.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getReadBytesThroughput()">getReadBytesThroughput</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getWrittenBytesThroughput()"><!-- --></A><H3>
getWrittenBytesThroughput</H3>
<PRE>
public final double <B>getWrittenBytesThroughput</B>()</PRE>
<DL>
<DD>Returns the number of written bytes per second.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getWrittenBytesThroughput()">getWrittenBytesThroughput</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getReadMessagesThroughput()"><!-- --></A><H3>
getReadMessagesThroughput</H3>
<PRE>
public final double <B>getReadMessagesThroughput</B>()</PRE>
<DL>
<DD>Returns the number of read messages per second.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getReadMessagesThroughput()">getReadMessagesThroughput</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getWrittenMessagesThroughput()"><!-- --></A><H3>
getWrittenMessagesThroughput</H3>
<PRE>
public final double <B>getWrittenMessagesThroughput</B>()</PRE>
<DL>
<DD>Returns the number of written messages per second.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getWrittenMessagesThroughput()">getWrittenMessagesThroughput</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="updateThroughput(long, boolean)"><!-- --></A><H3>
updateThroughput</H3>
<PRE>
public final void <B>updateThroughput</B>(long&nbsp;currentTime,
boolean&nbsp;force)</PRE>
<DL>
<DD>Update all statistical properties related with throughput assuming
the specified time is the current time. By default this method returns
silently without updating the throughput properties if they were
calculated already within last
<A HREF="../../../../../org/apache/mina/core/session/IoSessionConfig.html#getThroughputCalculationInterval()"><CODE>calculation interval</CODE></A>.
If, however, <tt>force</tt> is specified as <tt>true</tt>, this method
updates the throughput properties immediately.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#updateThroughput(long, boolean)">updateThroughput</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>currentTime</CODE> - the current time in milliseconds</DL>
</DD>
</DL>
<HR>
<A NAME="getScheduledWriteBytes()"><!-- --></A><H3>
getScheduledWriteBytes</H3>
<PRE>
public final long <B>getScheduledWriteBytes</B>()</PRE>
<DL>
<DD>Returns the number of bytes which are scheduled to be written to this
session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getScheduledWriteBytes()">getScheduledWriteBytes</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getScheduledWriteMessages()"><!-- --></A><H3>
getScheduledWriteMessages</H3>
<PRE>
public final int <B>getScheduledWriteMessages</B>()</PRE>
<DL>
<DD>Returns the number of messages which are scheduled to be written to this session.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getScheduledWriteMessages()">getScheduledWriteMessages</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setScheduledWriteBytes(int)"><!-- --></A><H3>
setScheduledWriteBytes</H3>
<PRE>
protected void <B>setScheduledWriteBytes</B>(int&nbsp;byteCount)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setScheduledWriteMessages(int)"><!-- --></A><H3>
setScheduledWriteMessages</H3>
<PRE>
protected void <B>setScheduledWriteMessages</B>(int&nbsp;messages)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseReadBytes(long, long)"><!-- --></A><H3>
increaseReadBytes</H3>
<PRE>
public final void <B>increaseReadBytes</B>(long&nbsp;increment,
long&nbsp;currentTime)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseReadMessages(long)"><!-- --></A><H3>
increaseReadMessages</H3>
<PRE>
public final void <B>increaseReadMessages</B>(long&nbsp;currentTime)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseWrittenBytes(int, long)"><!-- --></A><H3>
increaseWrittenBytes</H3>
<PRE>
public final void <B>increaseWrittenBytes</B>(int&nbsp;increment,
long&nbsp;currentTime)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseWrittenMessages(org.apache.mina.core.write.WriteRequest, long)"><!-- --></A><H3>
increaseWrittenMessages</H3>
<PRE>
public final void <B>increaseWrittenMessages</B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A>&nbsp;request,
long&nbsp;currentTime)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseScheduledWriteBytes(int)"><!-- --></A><H3>
increaseScheduledWriteBytes</H3>
<PRE>
public final void <B>increaseScheduledWriteBytes</B>(int&nbsp;increment)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseScheduledWriteMessages()"><!-- --></A><H3>
increaseScheduledWriteMessages</H3>
<PRE>
public final void <B>increaseScheduledWriteMessages</B>()</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="decreaseScheduledBytesAndMessages(org.apache.mina.core.write.WriteRequest)"><!-- --></A><H3>
decreaseScheduledBytesAndMessages</H3>
<PRE>
public final void <B>decreaseScheduledBytesAndMessages</B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A>&nbsp;request)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getWriteRequestQueue()"><!-- --></A><H3>
getWriteRequestQueue</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/write/WriteRequestQueue.html" title="interface in org.apache.mina.core.write">WriteRequestQueue</A> <B>getWriteRequestQueue</B>()</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getWriteRequestQueue()">getWriteRequestQueue</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getCurrentWriteRequest()"><!-- --></A><H3>
getCurrentWriteRequest</H3>
<PRE>
public final <A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A> <B>getCurrentWriteRequest</B>()</PRE>
<DL>
<DD>Returns the <A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write"><CODE>WriteRequest</CODE></A> which is being processed by
<A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getCurrentWriteRequest()">getCurrentWriteRequest</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><tt>null</tt> if and if only no message is being written</DL>
</DD>
</DL>
<HR>
<A NAME="getCurrentWriteMessage()"><!-- --></A><H3>
getCurrentWriteMessage</H3>
<PRE>
public final java.lang.Object <B>getCurrentWriteMessage</B>()</PRE>
<DL>
<DD>Returns the message which is being written by <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getCurrentWriteMessage()">getCurrentWriteMessage</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><tt>null</tt> if and if only no message is being written</DL>
</DD>
</DL>
<HR>
<A NAME="setCurrentWriteRequest(org.apache.mina.core.write.WriteRequest)"><!-- --></A><H3>
setCurrentWriteRequest</H3>
<PRE>
public final void <B>setCurrentWriteRequest</B>(<A HREF="../../../../../org/apache/mina/core/write/WriteRequest.html" title="interface in org.apache.mina.core.write">WriteRequest</A>&nbsp;currentWriteRequest)</PRE>
<DL>
<DD>TODO setWriteRequestQueue.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#setCurrentWriteRequest(org.apache.mina.core.write.WriteRequest)">setCurrentWriteRequest</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseReadBufferSize()"><!-- --></A><H3>
increaseReadBufferSize</H3>
<PRE>
public final void <B>increaseReadBufferSize</B>()</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="decreaseReadBufferSize()"><!-- --></A><H3>
decreaseReadBufferSize</H3>
<PRE>
public final void <B>decreaseReadBufferSize</B>()</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getCreationTime()"><!-- --></A><H3>
getCreationTime</H3>
<PRE>
public final long <B>getCreationTime</B>()</PRE>
<DL>
<DD>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getCreationTime()">getCreationTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the session's creation time in milliseconds</DL>
</DD>
</DL>
<HR>
<A NAME="getLastIoTime()"><!-- --></A><H3>
getLastIoTime</H3>
<PRE>
public final long <B>getLastIoTime</B>()</PRE>
<DL>
<DD>Returns the time in millis when I/O occurred lastly.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastIoTime()">getLastIoTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLastReadTime()"><!-- --></A><H3>
getLastReadTime</H3>
<PRE>
public final long <B>getLastReadTime</B>()</PRE>
<DL>
<DD>Returns the time in millis when read operation occurred lastly.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastReadTime()">getLastReadTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLastWriteTime()"><!-- --></A><H3>
getLastWriteTime</H3>
<PRE>
public final long <B>getLastWriteTime</B>()</PRE>
<DL>
<DD>Returns the time in millis when write operation occurred lastly.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastWriteTime()">getLastWriteTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isIdle(org.apache.mina.core.session.IdleStatus)"><!-- --></A><H3>
isIdle</H3>
<PRE>
public final boolean <B>isIdle</B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status)</PRE>
<DL>
<DD>Returns <code>true</code> if this session is idle for the specified
<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session"><CODE>IdleStatus</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isIdle(org.apache.mina.core.session.IdleStatus)">isIdle</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isBothIdle()"><!-- --></A><H3>
isBothIdle</H3>
<PRE>
public final boolean <B>isBothIdle</B>()</PRE>
<DL>
<DD>Returns <code>true</code> if this session is <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#BOTH_IDLE"><CODE>IdleStatus.BOTH_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isBothIdle()">isBothIdle</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isIdle(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.isIdle(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isReaderIdle()"><!-- --></A><H3>
isReaderIdle</H3>
<PRE>
public final boolean <B>isReaderIdle</B>()</PRE>
<DL>
<DD>Returns <code>true</code> if this session is <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#READER_IDLE"><CODE>IdleStatus.READER_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isReaderIdle()">isReaderIdle</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isIdle(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.isIdle(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isWriterIdle()"><!-- --></A><H3>
isWriterIdle</H3>
<PRE>
public final boolean <B>isWriterIdle</B>()</PRE>
<DL>
<DD>Returns <code>true</code> if this session is <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#WRITER_IDLE"><CODE>IdleStatus.WRITER_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isWriterIdle()">isWriterIdle</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isIdle(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.isIdle(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getIdleCount(org.apache.mina.core.session.IdleStatus)"><!-- --></A><H3>
getIdleCount</H3>
<PRE>
public final int <B>getIdleCount</B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status)</PRE>
<DL>
<DD>Returns the number of the fired continuous <tt>sessionIdle</tt> events
for the specified <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session"><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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getIdleCount(org.apache.mina.core.session.IdleStatus)">getIdleCount</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLastIdleTime(org.apache.mina.core.session.IdleStatus)"><!-- --></A><H3>
getLastIdleTime</H3>
<PRE>
public final long <B>getLastIdleTime</B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status)</PRE>
<DL>
<DD>Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for the specified <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session"><CODE>IdleStatus</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastIdleTime(org.apache.mina.core.session.IdleStatus)">getLastIdleTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="increaseIdleCount(org.apache.mina.core.session.IdleStatus, long)"><!-- --></A><H3>
increaseIdleCount</H3>
<PRE>
public final void <B>increaseIdleCount</B>(<A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html" title="class in org.apache.mina.core.session">IdleStatus</A>&nbsp;status,
long&nbsp;currentTime)</PRE>
<DL>
<DD>TODO Add method documentation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getBothIdleCount()"><!-- --></A><H3>
getBothIdleCount</H3>
<PRE>
public final int <B>getBothIdleCount</B>()</PRE>
<DL>
<DD>Returns the number of the fired continuous <tt>sessionIdle</tt> events
for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#BOTH_IDLE"><CODE>IdleStatus.BOTH_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getBothIdleCount()">getBothIdleCount</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getIdleCount(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.getIdleCount(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getLastBothIdleTime()"><!-- --></A><H3>
getLastBothIdleTime</H3>
<PRE>
public final long <B>getLastBothIdleTime</B>()</PRE>
<DL>
<DD>Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#BOTH_IDLE"><CODE>IdleStatus.BOTH_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastBothIdleTime()">getLastBothIdleTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastIdleTime(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.getLastIdleTime(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getLastReaderIdleTime()"><!-- --></A><H3>
getLastReaderIdleTime</H3>
<PRE>
public final long <B>getLastReaderIdleTime</B>()</PRE>
<DL>
<DD>Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#READER_IDLE"><CODE>IdleStatus.READER_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastReaderIdleTime()">getLastReaderIdleTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastIdleTime(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.getLastIdleTime(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getLastWriterIdleTime()"><!-- --></A><H3>
getLastWriterIdleTime</H3>
<PRE>
public final long <B>getLastWriterIdleTime</B>()</PRE>
<DL>
<DD>Returns the time in milliseconds when the last <tt>sessionIdle</tt> event
is fired for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#WRITER_IDLE"><CODE>IdleStatus.WRITER_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastWriterIdleTime()">getLastWriterIdleTime</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getLastIdleTime(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.getLastIdleTime(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getReaderIdleCount()"><!-- --></A><H3>
getReaderIdleCount</H3>
<PRE>
public final int <B>getReaderIdleCount</B>()</PRE>
<DL>
<DD>Returns the number of the fired continuous <tt>sessionIdle</tt> events
for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#READER_IDLE"><CODE>IdleStatus.READER_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getReaderIdleCount()">getReaderIdleCount</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getIdleCount(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.getIdleCount(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getWriterIdleCount()"><!-- --></A><H3>
getWriterIdleCount</H3>
<PRE>
public final int <B>getWriterIdleCount</B>()</PRE>
<DL>
<DD>Returns the number of the fired continuous <tt>sessionIdle</tt> events
for <A HREF="../../../../../org/apache/mina/core/session/IdleStatus.html#WRITER_IDLE"><CODE>IdleStatus.WRITER_IDLE</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getWriterIdleCount()">getWriterIdleCount</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getIdleCount(org.apache.mina.core.session.IdleStatus)"><CODE>IoSession.getIdleCount(IdleStatus)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getServiceAddress()"><!-- --></A><H3>
getServiceAddress</H3>
<PRE>
public java.net.SocketAddress <B>getServiceAddress</B>()</PRE>
<DL>
<DD>Returns the socket address of the <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A> listens to to manage
this session. If this session is managed by <A HREF="../../../../../org/apache/mina/core/service/IoAcceptor.html" title="interface in org.apache.mina.core.service"><CODE>IoAcceptor</CODE></A>, it
returns the <CODE>SocketAddress</CODE> which is specified as a parameter of
<A HREF="../../../../../org/apache/mina/core/service/IoAcceptor.html#bind()"><CODE>IoAcceptor.bind()</CODE></A>. If this session is managed by
<A HREF="../../../../../org/apache/mina/core/service/IoConnector.html" title="interface in org.apache.mina.core.service"><CODE>IoConnector</CODE></A>, this method returns the same address with
that of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getRemoteAddress()"><CODE>IoSession.getRemoteAddress()</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getServiceAddress()">getServiceAddress</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public final int <B>hashCode</B>()</PRE>
<DL>
<DD>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public final boolean <B>equals</B>(java.lang.Object&nbsp;o)</PRE>
<DL>
<DD> TODO This is a ridiculous implementation. Need to be
replaced.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getService()"><!-- --></A><H3>
getService</H3>
<PRE>
public <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service">IoService</A> <B>getService</B>()</PRE>
<DL>
<DD>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html#getService()">getService</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A> which provides I/O service to this session.</DL>
</DD>
</DL>
<HR>
<A NAME="notifyIdleness(java.util.Iterator, long)"><!-- --></A><H3>
notifyIdleness</H3>
<PRE>
public static void <B>notifyIdleness</B>(java.util.Iterator&lt;? extends <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A>&gt;&nbsp;sessions,
long&nbsp;currentTime)</PRE>
<DL>
<DD>Fires a <A HREF="../../../../../org/apache/mina/core/session/IoEventType.html#SESSION_IDLE"><CODE>IoEventType.SESSION_IDLE</CODE></A> event to any applicable sessions
in the specified collection.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>currentTime</CODE> - the current time (i.e. <CODE>System.currentTimeMillis()</CODE>)</DL>
</DD>
</DL>
<HR>
<A NAME="notifyIdleSession(org.apache.mina.core.session.IoSession, long)"><!-- --></A><H3>
notifyIdleSession</H3>
<PRE>
public static void <B>notifyIdleSession</B>(<A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session">IoSession</A>&nbsp;session,
long&nbsp;currentTime)</PRE>
<DL>
<DD>Fires a <A HREF="../../../../../org/apache/mina/core/session/IoEventType.html#SESSION_IDLE"><CODE>IoEventType.SESSION_IDLE</CODE></A> event if applicable for the
specified <code>session</code>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>currentTime</CODE> - the current time (i.e. <CODE>System.currentTimeMillis()</CODE>)</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AbstractIoSession.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../org/apache/mina/core/session/AbstractIoSessionConfig.html" title="class in org.apache.mina.core.session"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/mina/core/session/AbstractIoSession.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractIoSession.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2004-2011 <a href="http://mina.apache.org/">Apache MINA Project</a>. All Rights Reserved.
</BODY>
</HTML>