blob: 062a79146d7ff9eb4e96f2ac978a96b6df302455 [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:48 CEST 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AbstractPollingIoProcessor (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="AbstractPollingIoProcessor (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/AbstractPollingIoProcessor.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;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoConnector.ConnectionRequest.html" title="class in org.apache.mina.core.polling"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/mina/core/polling/AbstractPollingIoProcessor.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractPollingIoProcessor.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.polling</FONT>
<BR>
Class AbstractPollingIoProcessor&lt;S extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.mina.core.polling.AbstractPollingIoProcessor&lt;S&gt;</B>
</PRE>
<DL>
<DT><DT><B>Type Parameters:</B><DD><CODE>S</CODE> - the type of the <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> this processor can handle</DL>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;S&gt;</DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/mina/transport/socket/apr/AprIoProcessor.html" title="class in org.apache.mina.transport.socket.apr">AprIoProcessor</A>, <A HREF="../../../../../org/apache/mina/transport/socket/nio/NioProcessor.html" title="class in org.apache.mina.transport.socket.nio">NioProcessor</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>AbstractPollingIoProcessor&lt;S extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;S&gt;</DL>
</PRE>
<P>
An abstract implementation of <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A> which helps transport
developers to write an <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A> easily. This class is in charge of
active polling a set of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> and trigger events when some I/O
operation is possible.
<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;java.util.concurrent.atomic.AtomicBoolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#wakeupCalled">wakeupCalled</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/polling/AbstractPollingIoProcessor.html#AbstractPollingIoProcessor(java.util.concurrent.Executor)">AbstractPollingIoProcessor</A></B>(java.util.concurrent.Executor&nbsp;executor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an <A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="class in org.apache.mina.core.polling"><CODE>AbstractPollingIoProcessor</CODE></A> with the given
<CODE>Executor</CODE> for handling I/Os events.</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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#add(S)">add</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified <code>session</code> to the I/O processor so that
the I/O processor starts to perform any I/O operations related
with the <code>session</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;java.util.Iterator&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#allSessions()">allSessions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an <CODE>Iterator</CODE> for the list of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> polled by this
<A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#destroy(S)">destroy</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroy the underlying client socket handle</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/polling/AbstractPollingIoProcessor.html#dispose()">dispose</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Releases any resources allocated by this processor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#doDispose()">doDispose</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dispose the resources used by this <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A> for polling the
client connections.</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/polling/AbstractPollingIoProcessor.html#flush(S)">flush</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flushes the internal write request queue of the specified
<code>session</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;<A HREF="../../../../../org/apache/mina/core/session/SessionState.html" title="enum in org.apache.mina.core.session">SessionState</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#getState(S)">getState</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the state of a session (preparing, open, closed)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#init(S)">init</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize the polling of a session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#isBrokenConnection()">isBrokenConnection</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check that the select() has not exited immediately just because of a
broken connection.</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/polling/AbstractPollingIoProcessor.html#isDisposed()">isDisposed</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if and if only all resources of this processor
have been disposed.</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/polling/AbstractPollingIoProcessor.html#isDisposing()">isDisposing</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if and if only <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#dispose()"><CODE>IoProcessor.dispose()</CODE></A> method has
been called.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#isInterestedInRead(S)">isInterestedInRead</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is this session registered for reading</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#isInterestedInWrite(S)">isInterestedInWrite</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is this session registered for writing</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#isReadable(S)">isReadable</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the session ready for reading</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#isSelectorEmpty()">isSelectorEmpty</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Say if the list of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> polled by this <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A>
is empty</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#isWritable(S)">isWritable</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the session ready for writing</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#read(S, org.apache.mina.core.buffer.IoBuffer)">read</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
<A HREF="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</A>&nbsp;buf)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads a sequence of bytes from a <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> into the given
<A HREF="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><CODE>IoBuffer</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#registerNewSelector()">registerNewSelector</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In the case we are using the java select() method, this method is used to
trash the buggy selector and create a new one, registring all the sockets
on it.</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/polling/AbstractPollingIoProcessor.html#remove(S)">remove</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes and closes the specified <code>session</code> from the I/O
processor so that the I/O processor closes the connection
associated with the <code>session</code> and releases any other related
resources.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#select()">select</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poll those sessions forever</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#select(long)">select</A></B>(long&nbsp;timeout)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poll those sessions for the given timeout</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;java.util.Iterator&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#selectedSessions()">selectedSessions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an <CODE>Iterator</CODE> for the list of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> found selected
by the last call of {@link AbstractPollingIoProcessor#select(int)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#setInterestedInRead(S, boolean)">setInterestedInRead</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
boolean&nbsp;isInterested)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register a session for reading</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#setInterestedInWrite(S, boolean)">setInterestedInWrite</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
boolean&nbsp;isInterested)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register a session for writing</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#transferFile(S, org.apache.mina.core.file.FileRegion, int)">transferFile</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
<A HREF="../../../../../org/apache/mina/core/file/FileRegion.html" title="interface in org.apache.mina.core.file">FileRegion</A>&nbsp;region,
int&nbsp;length)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write a part of a file to a <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>, if the underlying API
isn't supporting system calls like sendfile(), you can throw a
<CODE>UnsupportedOperationException</CODE> so the file will be send using
usual <A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#write(S, org.apache.mina.core.buffer.IoBuffer, int)"><CODE>write(AbstractIoSession, IoBuffer, int)</CODE></A> call.</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/polling/AbstractPollingIoProcessor.html#updateTrafficControl(S)">updateTrafficControl</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Controls the traffic of the specified <code>session</code> depending of the
<A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isReadSuspended()"><CODE>IoSession.isReadSuspended()</CODE></A> and <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isWriteSuspended()"><CODE>IoSession.isWriteSuspended()</CODE></A>
flags</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/polling/AbstractPollingIoProcessor.html#updateTrafficMask(S)">updateTrafficMask</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</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>protected abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#wakeup()">wakeup</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interrupt the {@link AbstractPollingIoProcessor#select(int) call.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#write(S, org.apache.mina.core.buffer.IoBuffer, int)">write</A></B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
<A HREF="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</A>&nbsp;buf,
int&nbsp;length)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write a sequence of bytes to a <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>, means to be called when
a session was found ready for writing.</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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="wakeupCalled"><!-- --></A><H3>
wakeupCalled</H3>
<PRE>
protected java.util.concurrent.atomic.AtomicBoolean <B>wakeupCalled</B></PRE>
<DL>
<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="AbstractPollingIoProcessor(java.util.concurrent.Executor)"><!-- --></A><H3>
AbstractPollingIoProcessor</H3>
<PRE>
protected <B>AbstractPollingIoProcessor</B>(java.util.concurrent.Executor&nbsp;executor)</PRE>
<DL>
<DD>Create an <A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="class in org.apache.mina.core.polling"><CODE>AbstractPollingIoProcessor</CODE></A> with the given
<CODE>Executor</CODE> for handling I/Os events.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>executor</CODE> - the <CODE>Executor</CODE> for handling I/O events</DL>
</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="isDisposing()"><!-- --></A><H3>
isDisposing</H3>
<PRE>
public final boolean <B>isDisposing</B>()</PRE>
<DL>
<DD>Returns <tt>true</tt> if and if only <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#dispose()"><CODE>IoProcessor.dispose()</CODE></A> method has
been called. Please note that this method will return <tt>true</tt>
even after all the related resources are released.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#isDisposing()">isDisposing</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isDisposed()"><!-- --></A><H3>
isDisposed</H3>
<PRE>
public final boolean <B>isDisposed</B>()</PRE>
<DL>
<DD>Returns <tt>true</tt> if and if only all resources of this processor
have been disposed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#isDisposed()">isDisposed</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="dispose()"><!-- --></A><H3>
dispose</H3>
<PRE>
public final void <B>dispose</B>()</PRE>
<DL>
<DD>Releases any resources allocated by this processor. Please note that
the resources might not be released as long as there are any sessions
managed by this processor. Most implementations will close all sessions
immediately and release the related resources.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#dispose()">dispose</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="doDispose()"><!-- --></A><H3>
doDispose</H3>
<PRE>
protected abstract void <B>doDispose</B>()
throws java.lang.Exception</PRE>
<DL>
<DD>Dispose the resources used by this <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A> for polling the
client connections. The implementing class doDispose method will be called.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - if some low level IO error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="select(long)"><!-- --></A><H3>
select</H3>
<PRE>
protected abstract int <B>select</B>(long&nbsp;timeout)
throws java.lang.Exception</PRE>
<DL>
<DD>poll those sessions for the given timeout
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>timeout</CODE> - milliseconds before the call timeout if no event appear
<DT><B>Returns:</B><DD>The number of session ready for read or for write
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - if some low level IO error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="select()"><!-- --></A><H3>
select</H3>
<PRE>
protected abstract int <B>select</B>()
throws java.lang.Exception</PRE>
<DL>
<DD>poll those sessions forever
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The number of session ready for read or for write
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - if some low level IO error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="isSelectorEmpty()"><!-- --></A><H3>
isSelectorEmpty</H3>
<PRE>
protected abstract boolean <B>isSelectorEmpty</B>()</PRE>
<DL>
<DD>Say if the list of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> polled by this <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A>
is empty
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if at least a session is managed by this <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="wakeup()"><!-- --></A><H3>
wakeup</H3>
<PRE>
protected abstract void <B>wakeup</B>()</PRE>
<DL>
<DD>Interrupt the {@link AbstractPollingIoProcessor#select(int) call.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="allSessions()"><!-- --></A><H3>
allSessions</H3>
<PRE>
protected abstract java.util.Iterator&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&gt; <B>allSessions</B>()</PRE>
<DL>
<DD>Get an <CODE>Iterator</CODE> for the list of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> polled by this
<A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><CODE>Iterator</CODE> of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="selectedSessions()"><!-- --></A><H3>
selectedSessions</H3>
<PRE>
protected abstract java.util.Iterator&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&gt; <B>selectedSessions</B>()</PRE>
<DL>
<DD>Get an <CODE>Iterator</CODE> for the list of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> found selected
by the last call of {@link AbstractPollingIoProcessor#select(int)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><CODE>Iterator</CODE> of <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> read for I/Os operation</DL>
</DD>
</DL>
<HR>
<A NAME="getState(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="getState(S)"><!-- --></A><H3>
getState</H3>
<PRE>
protected abstract <A HREF="../../../../../org/apache/mina/core/session/SessionState.html" title="enum in org.apache.mina.core.session">SessionState</A> <B>getState</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Get the state of a session (preparing, open, closed)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> to inspect
<DT><B>Returns:</B><DD>the state of the session</DL>
</DD>
</DL>
<HR>
<A NAME="isWritable(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="isWritable(S)"><!-- --></A><H3>
isWritable</H3>
<PRE>
protected abstract boolean <B>isWritable</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Is the session ready for writing
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session queried
<DT><B>Returns:</B><DD>true is ready, false if not ready</DL>
</DD>
</DL>
<HR>
<A NAME="isReadable(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="isReadable(S)"><!-- --></A><H3>
isReadable</H3>
<PRE>
protected abstract boolean <B>isReadable</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Is the session ready for reading
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session queried
<DT><B>Returns:</B><DD>true is ready, false if not ready</DL>
</DD>
</DL>
<HR>
<A NAME="setInterestedInWrite(org.apache.mina.core.session.AbstractIoSession,boolean)"><!-- --></A><A NAME="setInterestedInWrite(S, boolean)"><!-- --></A><H3>
setInterestedInWrite</H3>
<PRE>
protected abstract void <B>setInterestedInWrite</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
boolean&nbsp;isInterested)
throws java.lang.Exception</PRE>
<DL>
<DD>register a session for writing
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session registered<DD><CODE>isInterested</CODE> - true for registering, false for removing
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="setInterestedInRead(org.apache.mina.core.session.AbstractIoSession,boolean)"><!-- --></A><A NAME="setInterestedInRead(S, boolean)"><!-- --></A><H3>
setInterestedInRead</H3>
<PRE>
protected abstract void <B>setInterestedInRead</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
boolean&nbsp;isInterested)
throws java.lang.Exception</PRE>
<DL>
<DD>register a session for reading
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session registered<DD><CODE>isInterested</CODE> - true for registering, false for removing
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="isInterestedInRead(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="isInterestedInRead(S)"><!-- --></A><H3>
isInterestedInRead</H3>
<PRE>
protected abstract boolean <B>isInterestedInRead</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>is this session registered for reading
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session queried
<DT><B>Returns:</B><DD>true is registered for reading</DL>
</DD>
</DL>
<HR>
<A NAME="isInterestedInWrite(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="isInterestedInWrite(S)"><!-- --></A><H3>
isInterestedInWrite</H3>
<PRE>
protected abstract boolean <B>isInterestedInWrite</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>is this session registered for writing
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session queried
<DT><B>Returns:</B><DD>true is registered for writing</DL>
</DD>
</DL>
<HR>
<A NAME="init(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="init(S)"><!-- --></A><H3>
init</H3>
<PRE>
protected abstract void <B>init</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)
throws java.lang.Exception</PRE>
<DL>
<DD>Initialize the polling of a session. Add it to the polling process.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> to add to the polling
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - any exception thrown by the underlying system calls</DL>
</DD>
</DL>
<HR>
<A NAME="destroy(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="destroy(S)"><!-- --></A><H3>
destroy</H3>
<PRE>
protected abstract void <B>destroy</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)
throws java.lang.Exception</PRE>
<DL>
<DD>Destroy the underlying client socket handle
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - any exception thrown by the underlying system calls</DL>
</DD>
</DL>
<HR>
<A NAME="read(org.apache.mina.core.session.AbstractIoSession,org.apache.mina.core.buffer.IoBuffer)"><!-- --></A><A NAME="read(S, org.apache.mina.core.buffer.IoBuffer)"><!-- --></A><H3>
read</H3>
<PRE>
protected abstract int <B>read</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
<A HREF="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</A>&nbsp;buf)
throws java.lang.Exception</PRE>
<DL>
<DD>Reads a sequence of bytes from a <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A> into the given
<A HREF="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><CODE>IoBuffer</CODE></A>. Is called when the session was found ready for reading.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session to read<DD><CODE>buf</CODE> - the buffer to fill
<DT><B>Returns:</B><DD>the number of bytes read
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - any exception thrown by the underlying system calls</DL>
</DD>
</DL>
<HR>
<A NAME="write(org.apache.mina.core.session.AbstractIoSession,org.apache.mina.core.buffer.IoBuffer,int)"><!-- --></A><A NAME="write(S, org.apache.mina.core.buffer.IoBuffer, int)"><!-- --></A><H3>
write</H3>
<PRE>
protected abstract int <B>write</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
<A HREF="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</A>&nbsp;buf,
int&nbsp;length)
throws java.lang.Exception</PRE>
<DL>
<DD>Write a sequence of bytes to a <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>, means to be called when
a session was found ready for writing.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session to write<DD><CODE>buf</CODE> - the buffer to write<DD><CODE>length</CODE> - the number of bytes to write can be superior to the number of
bytes remaining in the buffer
<DT><B>Returns:</B><DD>the number of byte written
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - any exception thrown by the underlying system calls</DL>
</DD>
</DL>
<HR>
<A NAME="transferFile(org.apache.mina.core.session.AbstractIoSession,org.apache.mina.core.file.FileRegion,int)"><!-- --></A><A NAME="transferFile(S, org.apache.mina.core.file.FileRegion, int)"><!-- --></A><H3>
transferFile</H3>
<PRE>
protected abstract int <B>transferFile</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session,
<A HREF="../../../../../org/apache/mina/core/file/FileRegion.html" title="interface in org.apache.mina.core.file">FileRegion</A>&nbsp;region,
int&nbsp;length)
throws java.lang.Exception</PRE>
<DL>
<DD>Write a part of a file to a <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>, if the underlying API
isn't supporting system calls like sendfile(), you can throw a
<CODE>UnsupportedOperationException</CODE> so the file will be send using
usual <A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html#write(S, org.apache.mina.core.buffer.IoBuffer, int)"><CODE>write(AbstractIoSession, IoBuffer, int)</CODE></A> call.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the session to write<DD><CODE>region</CODE> - the file region to write<DD><CODE>length</CODE> - the length of the portion to send
<DT><B>Returns:</B><DD>the number of written bytes
<DT><B>Throws:</B>
<DD><CODE>java.lang.Exception</CODE> - any exception thrown by the underlying system calls</DL>
</DD>
</DL>
<HR>
<A NAME="add(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="add(S)"><!-- --></A><H3>
add</H3>
<PRE>
public final void <B>add</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Adds the specified <code>session</code> to the I/O processor so that
the I/O processor starts to perform any I/O operations related
with the <code>session</code>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#add(S)">add</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="remove(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="remove(S)"><!-- --></A><H3>
remove</H3>
<PRE>
public final void <B>remove</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Removes and closes the specified <code>session</code> from the I/O
processor so that the I/O processor closes the connection
associated with the <code>session</code> and releases any other related
resources.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#remove(S)">remove</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="flush(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="flush(S)"><!-- --></A><H3>
flush</H3>
<PRE>
public final void <B>flush</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Flushes the internal write request queue of the specified
<code>session</code>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#flush(S)">flush</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="updateTrafficMask(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="updateTrafficMask(S)"><!-- --></A><H3>
updateTrafficMask</H3>
<PRE>
public final void <B>updateTrafficMask</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="registerNewSelector()"><!-- --></A><H3>
registerNewSelector</H3>
<PRE>
protected abstract void <B>registerNewSelector</B>()
throws java.io.IOException</PRE>
<DL>
<DD>In the case we are using the java select() method, this method is used to
trash the buggy selector and create a new one, registring all the sockets
on it.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If we got an exception</DL>
</DD>
</DL>
<HR>
<A NAME="isBrokenConnection()"><!-- --></A><H3>
isBrokenConnection</H3>
<PRE>
protected abstract boolean <B>isBrokenConnection</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Check that the select() has not exited immediately just because of a
broken connection. In this case, this is a standard case, and we just
have to loop.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if a connection has been brutally closed.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If we got an exception</DL>
</DD>
</DL>
<HR>
<A NAME="updateTrafficControl(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="updateTrafficControl(S)"><!-- --></A><H3>
updateTrafficControl</H3>
<PRE>
public void <B>updateTrafficControl</B>(<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A>&nbsp;session)</PRE>
<DL>
<DD>Controls the traffic of the specified <code>session</code> depending of the
<A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isReadSuspended()"><CODE>IoSession.isReadSuspended()</CODE></A> and <A HREF="../../../../../org/apache/mina/core/session/IoSession.html#isWriteSuspended()"><CODE>IoSession.isWriteSuspended()</CODE></A>
flags
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html#updateTrafficControl(S)">updateTrafficControl</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service">IoProcessor</A>&lt;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoProcessor.html" title="type parameter in AbstractPollingIoProcessor">S</A> extends <A HREF="../../../../../org/apache/mina/core/session/AbstractIoSession.html" title="class in org.apache.mina.core.session">AbstractIoSession</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</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/AbstractPollingIoProcessor.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;<A HREF="../../../../../org/apache/mina/core/polling/AbstractPollingIoConnector.ConnectionRequest.html" title="class in org.apache.mina.core.polling"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/mina/core/polling/AbstractPollingIoProcessor.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AbstractPollingIoProcessor.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>