<!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>
SimpleIoProcessorPool (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="SimpleIoProcessorPool (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/SimpleIoProcessorPool.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/service/IoServiceStatistics.html" title="class in org.apache.mina.core.service"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/mina/core/service/TransportMetadata.html" title="interface in org.apache.mina.core.service"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/mina/core/service/SimpleIoProcessorPool.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="SimpleIoProcessorPool.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;FIELD&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;FIELD&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.service</FONT>
<BR>
Class SimpleIoProcessorPool&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.service.SimpleIoProcessorPool&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> to be managed by the specified
            <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A>.</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>
<HR>
<DL>
<DT><PRE>public class <B>SimpleIoProcessorPool&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 <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A> pool that distributes <A HREF="../../../../../org/apache/mina/core/session/IoSession.html" title="interface in org.apache.mina.core.session"><CODE>IoSession</CODE></A>s into one or more
 <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A>s. Most current transport implementations use this pool internally
 to perform better in a multi-core environment, and therefore, you won't need to 
 use this pool directly unless you are running multiple <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A>s in the
 same JVM.
 <p>
 If you are running multiple <A HREF="../../../../../org/apache/mina/core/service/IoService.html" title="interface in org.apache.mina.core.service"><CODE>IoService</CODE></A>s, you could want to share the pool
 among all services.  To do so, you can create a new <A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html" title="class in org.apache.mina.core.service"><CODE>SimpleIoProcessorPool</CODE></A>
 instance by yourself and provide the pool as a constructor parameter when you
 create the services.
 <p>
 This pool uses Java reflection API to create multiple <A HREF="../../../../../org/apache/mina/core/service/IoProcessor.html" title="interface in org.apache.mina.core.service"><CODE>IoProcessor</CODE></A> instances.
 It tries to instantiate the processor in the following order:
 <ol>
 <li>A public constructor with one <CODE>ExecutorService</CODE> parameter.</li>
 <li>A public constructor with one <CODE>Executor</CODE> parameter.</li>
 <li>A public default constructor</li>
 </ol>
 The following is an example for the NIO socket transport:
 <pre><code>
 // Create a shared pool.
 SimpleIoProcessorPool&lt;NioSession&gt; pool = 
         new SimpleIoProcessorPool&lt;NioSession&gt;(NioProcessor.class, 16);
 
 // Create two services that share the same pool.
 SocketAcceptor acceptor = new NioSocketAcceptor(pool);
 SocketConnector connector = new NioSocketConnector(pool);
 
 ...
 
 // Release related resources.
 connector.dispose();
 acceptor.dispose();
 pool.dispose();
 </code></pre>
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD><a href="http://mina.apache.org">Apache MINA Project</a></DD>
</DL>
<HR>

<P>

<!-- ======== 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><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#SimpleIoProcessorPool(java.lang.Class)">SimpleIoProcessorPool</A></B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of SimpleIoProcessorPool with a default
 size of NbCPUs +1.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#SimpleIoProcessorPool(java.lang.Class, java.util.concurrent.Executor)">SimpleIoProcessorPool</A></B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType,
                      java.util.concurrent.Executor&nbsp;executor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of SimpleIoProcessorPool with an executor</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#SimpleIoProcessorPool(java.lang.Class, java.util.concurrent.Executor, int)">SimpleIoProcessorPool</A></B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType,
                      java.util.concurrent.Executor&nbsp;executor,
                      int&nbsp;size)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of SimpleIoProcessorPool with an executor</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#SimpleIoProcessorPool(java.lang.Class, int)">SimpleIoProcessorPool</A></B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType,
                      int&nbsp;size)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of SimpleIoProcessorPool with a defined
 number of IoProcessors in the pool</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/service/SimpleIoProcessorPool.html#add(S)">add</A></B>(<A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#flush(S)">flush</A></B>(<A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.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/service/SimpleIoProcessorPool.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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#remove(S)">remove</A></B>(<A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html#updateTrafficControl(S)">updateTrafficControl</A></B>(<A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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>
</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>

<!-- ========= 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="SimpleIoProcessorPool(java.lang.Class)"><!-- --></A><H3>
SimpleIoProcessorPool</H3>
<PRE>
public <B>SimpleIoProcessorPool</B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType)</PRE>
<DL>
<DD>Creates a new instance of SimpleIoProcessorPool with a default
 size of NbCPUs +1.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>processorType</CODE> - The type of IoProcessor to use</DL>
</DL>
<HR>

<A NAME="SimpleIoProcessorPool(java.lang.Class, int)"><!-- --></A><H3>
SimpleIoProcessorPool</H3>
<PRE>
public <B>SimpleIoProcessorPool</B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType,
                             int&nbsp;size)</PRE>
<DL>
<DD>Creates a new instance of SimpleIoProcessorPool with a defined
 number of IoProcessors in the pool
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>processorType</CODE> - The type of IoProcessor to use<DD><CODE>size</CODE> - The number of IoProcessor in the pool</DL>
</DL>
<HR>

<A NAME="SimpleIoProcessorPool(java.lang.Class, java.util.concurrent.Executor)"><!-- --></A><H3>
SimpleIoProcessorPool</H3>
<PRE>
public <B>SimpleIoProcessorPool</B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType,
                             java.util.concurrent.Executor&nbsp;executor)</PRE>
<DL>
<DD>Creates a new instance of SimpleIoProcessorPool with an executor
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>processorType</CODE> - The type of IoProcessor to use<DD><CODE>executor</CODE> - The <CODE>Executor</CODE></DL>
</DL>
<HR>

<A NAME="SimpleIoProcessorPool(java.lang.Class, java.util.concurrent.Executor, int)"><!-- --></A><H3>
SimpleIoProcessorPool</H3>
<PRE>
public <B>SimpleIoProcessorPool</B>(java.lang.Class&lt;? extends <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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">S</A>&gt;&gt;&nbsp;processorType,
                             java.util.concurrent.Executor&nbsp;executor,
                             int&nbsp;size)</PRE>
<DL>
<DD>Creates a new instance of SimpleIoProcessorPool with an executor
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>processorType</CODE> - The type of IoProcessor to use<DD><CODE>executor</CODE> - The <CODE>Executor</CODE><DD><CODE>size</CODE> - The number of IoProcessor in the pool</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="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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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="updateTrafficControl(org.apache.mina.core.session.AbstractIoSession)"><!-- --></A><A NAME="updateTrafficControl(S)"><!-- --></A><H3>
updateTrafficControl</H3>
<PRE>
public final void <B>updateTrafficControl</B>(<A HREF="../../../../../org/apache/mina/core/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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 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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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="isDisposing()"><!-- --></A><H3>
isDisposing</H3>
<PRE>
public 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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/service/SimpleIoProcessorPool.html" title="type parameter in SimpleIoProcessorPool">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/SimpleIoProcessorPool.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/service/IoServiceStatistics.html" title="class in org.apache.mina.core.service"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/mina/core/service/TransportMetadata.html" title="interface in org.apache.mina.core.service"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/mina/core/service/SimpleIoProcessorPool.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="SimpleIoProcessorPool.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;FIELD&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;FIELD&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>
