You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2009/03/22 13:33:54 UTC

svn commit: r757177 - in /mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr: AprIoProcessor.java AprSocketAcceptor.java AprSocketConnector.java

Author: jvermillard
Date: Sun Mar 22 12:33:54 2009
New Revision: 757177

URL: http://svn.apache.org/viewvc?rev=757177&view=rev
Log:
Added some APR transport javadoc

Modified:
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java?rev=757177&r1=757176&r2=757177&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java Sun Mar 22 12:33:54 2009
@@ -60,6 +60,12 @@
     private final List<AprSession> polledSessions =
         new CircularQueue<AprSession>(POLLSET_SIZE);
 
+    /**
+     * Create a new instance of {@link AprIoProcessor} with a given Exector for 
+     * handling I/Os events.
+     * 
+     * @param executor the {@link Executor} for handling I/O events
+     */
     public AprIoProcessor(Executor executor) {
         super(executor);
 
@@ -116,6 +122,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void dispose0() {
         Poll.destroy(pollset);
@@ -124,11 +133,17 @@
         Pool.destroy(pool);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected int select() throws Exception {
     	return select(Integer.MAX_VALUE);
     }
 
+    /**
+     * {@inheritDoc}
+     */
  	@Override
     protected int select(long timeout) throws Exception {
         int rv = Poll.poll(pollset, 1000 * timeout, polledSockets, false);
@@ -186,11 +201,17 @@
         }
     }
 
+ 	/**
+     * {@inheritDoc}
+     */
     @Override
     protected boolean isSelectorEmpty() {
         return allSessions.isEmpty();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void wakeup() {
         if (toBeWakenUp) {
@@ -204,11 +225,17 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected Iterator<AprSession> allSessions() {
         return allSessions.values().iterator();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected Iterator<AprSession> selectedSessions() {
         return polledSessions.iterator();
@@ -229,6 +256,9 @@
         allSessions.put(s, session);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void destroy(AprSession session) throws Exception {
         if (allSessions.remove(session.getDescriptor()) == null) {
@@ -255,6 +285,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected SessionState state(AprSession session) {
         long socket = session.getDescriptor();
@@ -267,26 +300,41 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected boolean isReadable(AprSession session) {
         return session.isReadable();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected boolean isWritable(AprSession session) {
         return session.isWritable();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected boolean isInterestedInRead(AprSession session) {
         return session.isInterestedInRead();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected boolean isInterestedInWrite(AprSession session) {
         return session.isInterestedInWrite();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void setInterestedInRead(AprSession session, boolean value) throws Exception {
         if (session.isInterestedInRead() == value) {
@@ -309,6 +357,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void setInterestedInWrite(AprSession session, boolean value) throws Exception {
         if (session.isInterestedInWrite() == value) {
@@ -331,6 +382,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected int read(AprSession session, IoBuffer buffer) throws Exception {
         int bytes;
@@ -359,6 +413,9 @@
         return bytes;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected int write(AprSession session, IoBuffer buf, int length) throws Exception {
         int writtenBytes;
@@ -385,6 +442,9 @@
         return writtenBytes;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected int transferFile(AprSession session, FileRegion region, int length)
             throws Exception {

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java?rev=757177&r1=757176&r2=757177&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java Sun Mar 22 12:33:54 2009
@@ -28,11 +28,15 @@
 
 import org.apache.mina.core.RuntimeIoException;
 import org.apache.mina.core.polling.AbstractPollingIoAcceptor;
+import org.apache.mina.core.service.IoAcceptor;
 import org.apache.mina.core.service.IoProcessor;
+import org.apache.mina.core.service.IoService;
+import org.apache.mina.core.service.SimpleIoProcessorPool;
 import org.apache.mina.core.service.TransportMetadata;
 import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.SocketSessionConfig;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
 import org.apache.mina.util.CircularQueue;
 import org.apache.tomcat.jni.Address;
 import org.apache.tomcat.jni.Poll;
@@ -41,7 +45,7 @@
 import org.apache.tomcat.jni.Status;
 
 /**
- * TODO Add documentation
+ * {@link IoAcceptor} for APR based socket transport (TCP/IP).
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
@@ -68,27 +72,53 @@
     private final List<Long> polledHandles =
         new CircularQueue<Long>(POLLSET_SIZE);
 
+    /**
+     * Constructor for {@link AprSocketAcceptor} using default parameters (multiple thread model).
+     */
     public AprSocketAcceptor() {
         super(new DefaultSocketSessionConfig(), AprIoProcessor.class);
         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
     }
 
+    /**
+     * Constructor for {@link AprSocketAcceptor} using default parameters, and 
+     * given number of {@link AprIoProcessor} for multithreading I/O operations.
+     * 
+     * @param processorCount the number of processor to create and place in a
+     * {@link SimpleIoProcessorPool} 
+     */
     public AprSocketAcceptor(int processorCount) {
         super(new DefaultSocketSessionConfig(), AprIoProcessor.class, processorCount);
         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
     }
 
+    /**
+     *  Constructor for {@link AprSocketAcceptor} with default configuration but a
+      *  specific {@link AprIoProcessor}, useful for sharing the same processor over multiple
+      *  {@link IoService} of the same type.
+      * @param processor the processor to use for managing I/O events
+      */
     public AprSocketAcceptor(IoProcessor<AprSession> processor) {
         super(new DefaultSocketSessionConfig(), processor);
         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
     }
 
+    /**
+     *  Constructor for {@link AprSocketAcceptor} with a given {@link Executor} for handling 
+     *  connection events and a given {@link AprIoProcessor} for handling I/O events, useful for 
+     *  sharing the same processor and executor over multiple {@link IoService} of the same type.
+     * @param executor the executor for connection
+     * @param processor the processor for I/O operations
+     */
     public AprSocketAcceptor(Executor executor,
             IoProcessor<AprSession> processor) {
         super(new DefaultSocketSessionConfig(), executor, processor);
         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected AprSession accept(IoProcessor<AprSession> processor, Long handle) throws Exception {
         long s = Socket.accept(handle);
@@ -104,6 +134,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected Long open(SocketAddress localAddress) throws Exception {
         InetSocketAddress la = (InetSocketAddress) localAddress;
@@ -165,6 +198,9 @@
         return handle;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void init() throws Exception {
         // initialize a memory pool for APR functions
@@ -195,6 +231,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void destroy() throws Exception {
         if (wakeupSocket > 0) {
@@ -208,12 +247,18 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected SocketAddress localAddress(Long handle) throws Exception {
         long la = Address.get(Socket.APR_LOCAL, handle);
         return new InetSocketAddress(Address.getip(la), Address.getInfo(la).port);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected int select() throws Exception {
         int rv = Poll.poll(pollset, Integer.MAX_VALUE, polledSockets, false);
@@ -260,11 +305,17 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected Iterator<Long> selectedHandles() {
         return polledHandles.iterator();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void close(Long handle) throws Exception {
         Poll.remove(pollset, handle);
@@ -274,6 +325,9 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     protected void wakeup() {
         if (toBeWakenUp) {
@@ -287,14 +341,23 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public int getBacklog() {
         return backlog;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public boolean isReuseAddress() {
         return reuseAddress;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setBacklog(int backlog) {
         synchronized (bindLock) {
             if (isActive()) {
@@ -306,16 +369,25 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public InetSocketAddress getLocalAddress() {
         return (InetSocketAddress) super.getLocalAddress();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public InetSocketAddress getDefaultLocalAddress() {
         return (InetSocketAddress) super.getDefaultLocalAddress();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public void setDefaultLocalAddress(InetSocketAddress localAddress) {
         super.setDefaultLocalAddress(localAddress);
     }
@@ -331,15 +403,26 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     public TransportMetadata getTransportMetadata() {
         return AprSocketSession.METADATA;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public SocketSessionConfig getSessionConfig() {
         return (SocketSessionConfig) super.getSessionConfig();
     }
 
+    /**
+     * Convert an APR code into an Exception with the corresponding message
+     * @param code error number
+     * @throws IOException the generated exception
+     */
     private void throwException(int code) throws IOException {
         throw new IOException(
                 org.apache.tomcat.jni.Error.strerror(-code) +

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java?rev=757177&r1=757176&r2=757177&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java Sun Mar 22 12:33:54 2009
@@ -33,7 +33,10 @@
 
 import org.apache.mina.core.RuntimeIoException;
 import org.apache.mina.core.polling.AbstractPollingIoConnector;
+import org.apache.mina.core.service.IoConnector;
 import org.apache.mina.core.service.IoProcessor;
+import org.apache.mina.core.service.IoService;
+import org.apache.mina.core.service.SimpleIoProcessorPool;
 import org.apache.mina.core.service.TransportMetadata;
 import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
 import org.apache.mina.transport.socket.SocketConnector;
@@ -46,7 +49,7 @@
 import org.apache.tomcat.jni.Status;
 
 /**
- * {@link IoConnector} for ABR based socket transport (TCP/IP).
+ * {@link IoConnector} for APR based socket transport (TCP/IP).
  * 
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
@@ -76,7 +79,7 @@
     private volatile ByteBuffer dummyBuffer;
 
     /**
-     * TODO : document superclass
+     * Create an {@link AprSocketConnector} with default configuration (multiple thread model).
      */
     public AprSocketConnector() {
         super(new DefaultSocketSessionConfig(), AprIoProcessor.class);
@@ -84,7 +87,10 @@
     }
 
     /**
-     * TODO : document superclass
+     * Constructor for {@link AprSocketConnector} with default configuration, and 
+     * given number of {@link AprIoProcessor} for multithreading I/O operations
+     * @param processorCount the number of processor to create and place in a
+     * {@link SimpleIoProcessorPool} 
      */
     public AprSocketConnector(int processorCount) {
         super(new DefaultSocketSessionConfig(), AprIoProcessor.class, processorCount);
@@ -92,7 +98,10 @@
     }
 
     /**
-     * TODO : document superclass
+     *  Constructor for {@link AprSocketConnector} with default configuration but a
+     *  specific {@link IoProcessor}, useful for sharing the same processor over multiple
+     *  {@link IoService} of the same type.
+     * @param processor the processor to use for managing I/O events
      */
     public AprSocketConnector(IoProcessor<AprSession> processor) {
         super(new DefaultSocketSessionConfig(), processor);
@@ -100,7 +109,11 @@
     }
 
     /**
-     * TODO : document superclass
+     *  Constructor for {@link AprSocketConnector} with a given {@link Executor} for handling 
+     *  connection events and a given {@link IoProcessor} for handling I/O events, useful for sharing 
+     *  the same processor and executor over multiple {@link IoService} of the same type.
+     * @param executor the executor for connection
+     * @param processor the processor for I/O operations
      */
     public AprSocketConnector(Executor executor, IoProcessor<AprSession> processor) {
         super(new DefaultSocketSessionConfig(), executor, processor);



Re: svn commit: r757177 - in /mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr: AprIoProcessor.java AprSocketAcceptor.java AprSocketConnector.java

Posted by Ashish <pa...@gmail.com>.
Thanks Julien!

I was also working on this. Anyways, shall see if I can add something on top.

- ashish

On Sun, Mar 22, 2009 at 6:03 PM,  <jv...@apache.org> wrote:
> Author: jvermillard
> Date: Sun Mar 22 12:33:54 2009
> New Revision: 757177
>
> URL: http://svn.apache.org/viewvc?rev=757177&view=rev
> Log:
> Added some APR transport javadoc
>
> Modified:
>    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
>    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
>    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java
>
> Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
> URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java?rev=757177&r1=757176&r2=757177&view=diff
> ==============================================================================
> --- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java (original)
> +++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java Sun Mar 22 12:33:54 2009
> @@ -60,6 +60,12 @@
>     private final List<AprSession> polledSessions =
>         new CircularQueue<AprSession>(POLLSET_SIZE);
>
> +    /**
> +     * Create a new instance of {@link AprIoProcessor} with a given Exector for
> +     * handling I/Os events.
> +     *
> +     * @param executor the {@link Executor} for handling I/O events
> +     */
>     public AprIoProcessor(Executor executor) {
>         super(executor);
>
> @@ -116,6 +122,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void dispose0() {
>         Poll.destroy(pollset);
> @@ -124,11 +133,17 @@
>         Pool.destroy(pool);
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected int select() throws Exception {
>        return select(Integer.MAX_VALUE);
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>        @Override
>     protected int select(long timeout) throws Exception {
>         int rv = Poll.poll(pollset, 1000 * timeout, polledSockets, false);
> @@ -186,11 +201,17 @@
>         }
>     }
>
> +       /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected boolean isSelectorEmpty() {
>         return allSessions.isEmpty();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void wakeup() {
>         if (toBeWakenUp) {
> @@ -204,11 +225,17 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected Iterator<AprSession> allSessions() {
>         return allSessions.values().iterator();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected Iterator<AprSession> selectedSessions() {
>         return polledSessions.iterator();
> @@ -229,6 +256,9 @@
>         allSessions.put(s, session);
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void destroy(AprSession session) throws Exception {
>         if (allSessions.remove(session.getDescriptor()) == null) {
> @@ -255,6 +285,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected SessionState state(AprSession session) {
>         long socket = session.getDescriptor();
> @@ -267,26 +300,41 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected boolean isReadable(AprSession session) {
>         return session.isReadable();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected boolean isWritable(AprSession session) {
>         return session.isWritable();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected boolean isInterestedInRead(AprSession session) {
>         return session.isInterestedInRead();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected boolean isInterestedInWrite(AprSession session) {
>         return session.isInterestedInWrite();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void setInterestedInRead(AprSession session, boolean value) throws Exception {
>         if (session.isInterestedInRead() == value) {
> @@ -309,6 +357,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void setInterestedInWrite(AprSession session, boolean value) throws Exception {
>         if (session.isInterestedInWrite() == value) {
> @@ -331,6 +382,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected int read(AprSession session, IoBuffer buffer) throws Exception {
>         int bytes;
> @@ -359,6 +413,9 @@
>         return bytes;
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected int write(AprSession session, IoBuffer buf, int length) throws Exception {
>         int writtenBytes;
> @@ -385,6 +442,9 @@
>         return writtenBytes;
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected int transferFile(AprSession session, FileRegion region, int length)
>             throws Exception {
>
> Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
> URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java?rev=757177&r1=757176&r2=757177&view=diff
> ==============================================================================
> --- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java (original)
> +++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java Sun Mar 22 12:33:54 2009
> @@ -28,11 +28,15 @@
>
>  import org.apache.mina.core.RuntimeIoException;
>  import org.apache.mina.core.polling.AbstractPollingIoAcceptor;
> +import org.apache.mina.core.service.IoAcceptor;
>  import org.apache.mina.core.service.IoProcessor;
> +import org.apache.mina.core.service.IoService;
> +import org.apache.mina.core.service.SimpleIoProcessorPool;
>  import org.apache.mina.core.service.TransportMetadata;
>  import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
>  import org.apache.mina.transport.socket.SocketAcceptor;
>  import org.apache.mina.transport.socket.SocketSessionConfig;
> +import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
>  import org.apache.mina.util.CircularQueue;
>  import org.apache.tomcat.jni.Address;
>  import org.apache.tomcat.jni.Poll;
> @@ -41,7 +45,7 @@
>  import org.apache.tomcat.jni.Status;
>
>  /**
> - * TODO Add documentation
> + * {@link IoAcceptor} for APR based socket transport (TCP/IP).
>  *
>  * @author The Apache MINA Project (dev@mina.apache.org)
>  * @version $Rev$, $Date$
> @@ -68,27 +72,53 @@
>     private final List<Long> polledHandles =
>         new CircularQueue<Long>(POLLSET_SIZE);
>
> +    /**
> +     * Constructor for {@link AprSocketAcceptor} using default parameters (multiple thread model).
> +     */
>     public AprSocketAcceptor() {
>         super(new DefaultSocketSessionConfig(), AprIoProcessor.class);
>         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
>     }
>
> +    /**
> +     * Constructor for {@link AprSocketAcceptor} using default parameters, and
> +     * given number of {@link AprIoProcessor} for multithreading I/O operations.
> +     *
> +     * @param processorCount the number of processor to create and place in a
> +     * {@link SimpleIoProcessorPool}
> +     */
>     public AprSocketAcceptor(int processorCount) {
>         super(new DefaultSocketSessionConfig(), AprIoProcessor.class, processorCount);
>         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
>     }
>
> +    /**
> +     *  Constructor for {@link AprSocketAcceptor} with default configuration but a
> +      *  specific {@link AprIoProcessor}, useful for sharing the same processor over multiple
> +      *  {@link IoService} of the same type.
> +      * @param processor the processor to use for managing I/O events
> +      */
>     public AprSocketAcceptor(IoProcessor<AprSession> processor) {
>         super(new DefaultSocketSessionConfig(), processor);
>         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
>     }
>
> +    /**
> +     *  Constructor for {@link AprSocketAcceptor} with a given {@link Executor} for handling
> +     *  connection events and a given {@link AprIoProcessor} for handling I/O events, useful for
> +     *  sharing the same processor and executor over multiple {@link IoService} of the same type.
> +     * @param executor the executor for connection
> +     * @param processor the processor for I/O operations
> +     */
>     public AprSocketAcceptor(Executor executor,
>             IoProcessor<AprSession> processor) {
>         super(new DefaultSocketSessionConfig(), executor, processor);
>         ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected AprSession accept(IoProcessor<AprSession> processor, Long handle) throws Exception {
>         long s = Socket.accept(handle);
> @@ -104,6 +134,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected Long open(SocketAddress localAddress) throws Exception {
>         InetSocketAddress la = (InetSocketAddress) localAddress;
> @@ -165,6 +198,9 @@
>         return handle;
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void init() throws Exception {
>         // initialize a memory pool for APR functions
> @@ -195,6 +231,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void destroy() throws Exception {
>         if (wakeupSocket > 0) {
> @@ -208,12 +247,18 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected SocketAddress localAddress(Long handle) throws Exception {
>         long la = Address.get(Socket.APR_LOCAL, handle);
>         return new InetSocketAddress(Address.getip(la), Address.getInfo(la).port);
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected int select() throws Exception {
>         int rv = Poll.poll(pollset, Integer.MAX_VALUE, polledSockets, false);
> @@ -260,11 +305,17 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected Iterator<Long> selectedHandles() {
>         return polledHandles.iterator();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void close(Long handle) throws Exception {
>         Poll.remove(pollset, handle);
> @@ -274,6 +325,9 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     protected void wakeup() {
>         if (toBeWakenUp) {
> @@ -287,14 +341,23 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     public int getBacklog() {
>         return backlog;
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     public boolean isReuseAddress() {
>         return reuseAddress;
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     public void setBacklog(int backlog) {
>         synchronized (bindLock) {
>             if (isActive()) {
> @@ -306,16 +369,25 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     public InetSocketAddress getLocalAddress() {
>         return (InetSocketAddress) super.getLocalAddress();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     public InetSocketAddress getDefaultLocalAddress() {
>         return (InetSocketAddress) super.getDefaultLocalAddress();
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     public void setDefaultLocalAddress(InetSocketAddress localAddress) {
>         super.setDefaultLocalAddress(localAddress);
>     }
> @@ -331,15 +403,26 @@
>         }
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     public TransportMetadata getTransportMetadata() {
>         return AprSocketSession.METADATA;
>     }
>
> +    /**
> +     * {@inheritDoc}
> +     */
>     @Override
>     public SocketSessionConfig getSessionConfig() {
>         return (SocketSessionConfig) super.getSessionConfig();
>     }
>
> +    /**
> +     * Convert an APR code into an Exception with the corresponding message
> +     * @param code error number
> +     * @throws IOException the generated exception
> +     */
>     private void throwException(int code) throws IOException {
>         throw new IOException(
>                 org.apache.tomcat.jni.Error.strerror(-code) +
>
> Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java
> URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java?rev=757177&r1=757176&r2=757177&view=diff
> ==============================================================================
> --- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java (original)
> +++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketConnector.java Sun Mar 22 12:33:54 2009
> @@ -33,7 +33,10 @@
>
>  import org.apache.mina.core.RuntimeIoException;
>  import org.apache.mina.core.polling.AbstractPollingIoConnector;
> +import org.apache.mina.core.service.IoConnector;
>  import org.apache.mina.core.service.IoProcessor;
> +import org.apache.mina.core.service.IoService;
> +import org.apache.mina.core.service.SimpleIoProcessorPool;
>  import org.apache.mina.core.service.TransportMetadata;
>  import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
>  import org.apache.mina.transport.socket.SocketConnector;
> @@ -46,7 +49,7 @@
>  import org.apache.tomcat.jni.Status;
>
>  /**
> - * {@link IoConnector} for ABR based socket transport (TCP/IP).
> + * {@link IoConnector} for APR based socket transport (TCP/IP).
>  *
>  * @author The Apache MINA Project (dev@mina.apache.org)
>  * @version $Rev$, $Date$
> @@ -76,7 +79,7 @@
>     private volatile ByteBuffer dummyBuffer;
>
>     /**
> -     * TODO : document superclass
> +     * Create an {@link AprSocketConnector} with default configuration (multiple thread model).
>      */
>     public AprSocketConnector() {
>         super(new DefaultSocketSessionConfig(), AprIoProcessor.class);
> @@ -84,7 +87,10 @@
>     }
>
>     /**
> -     * TODO : document superclass
> +     * Constructor for {@link AprSocketConnector} with default configuration, and
> +     * given number of {@link AprIoProcessor} for multithreading I/O operations
> +     * @param processorCount the number of processor to create and place in a
> +     * {@link SimpleIoProcessorPool}
>      */
>     public AprSocketConnector(int processorCount) {
>         super(new DefaultSocketSessionConfig(), AprIoProcessor.class, processorCount);
> @@ -92,7 +98,10 @@
>     }
>
>     /**
> -     * TODO : document superclass
> +     *  Constructor for {@link AprSocketConnector} with default configuration but a
> +     *  specific {@link IoProcessor}, useful for sharing the same processor over multiple
> +     *  {@link IoService} of the same type.
> +     * @param processor the processor to use for managing I/O events
>      */
>     public AprSocketConnector(IoProcessor<AprSession> processor) {
>         super(new DefaultSocketSessionConfig(), processor);
> @@ -100,7 +109,11 @@
>     }
>
>     /**
> -     * TODO : document superclass
> +     *  Constructor for {@link AprSocketConnector} with a given {@link Executor} for handling
> +     *  connection events and a given {@link IoProcessor} for handling I/O events, useful for sharing
> +     *  the same processor and executor over multiple {@link IoService} of the same type.
> +     * @param executor the executor for connection
> +     * @param processor the processor for I/O operations
>      */
>     public AprSocketConnector(Executor executor, IoProcessor<AprSession> processor) {
>         super(new DefaultSocketSessionConfig(), executor, processor);
>
>
>



-- 
thanks
ashish

Blog: http://www.ashishpaliwal.com/blog
My Photo Galleries: http://www.pbase.com/ashishpaliwal