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 2012/12/22 09:57:15 UTC

svn commit: r1425261 - /mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/

Author: jvermillard
Date: Sat Dec 22 08:57:15 2012
New Revision: 1425261

URL: http://svn.apache.org/viewvc?rev=1425261&view=rev
Log:
Javadoc for IoHandlerExecutor

Modified:
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/CloseEvent.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/Event.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/EventVisitor.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/HandlerCaller.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IdleEvent.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/InOrderHandlerExecutor.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IoHandlerExecutor.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/OpenEvent.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/ReceiveEvent.java
    mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/SentEvent.java

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/CloseEvent.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/CloseEvent.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/CloseEvent.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/CloseEvent.java Sat Dec 22 08:57:15 2012
@@ -21,6 +21,11 @@ package org.apache.mina.service.executor
 
 import org.apache.mina.api.IoSession;
 
+/**
+ * A session was closed event.
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public class CloseEvent implements Event {
     private final IoSession session;
 

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/Event.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/Event.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/Event.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/Event.java Sat Dec 22 08:57:15 2012
@@ -19,11 +19,30 @@
  */
 package org.apache.mina.service.executor;
 
+import org.apache.mina.api.IoHandler;
 import org.apache.mina.api.IoSession;
 
+/**
+ * A {@link IoHandler} event to be submitted to an {@link IoHandlerExecutor}.
+ * 
+ * Use the visitor pattern for implementing different behaviour for different events : <a
+ * href="http://en.wikipedia.org/wiki/Visitor_pattern">visitor pattern"</a>
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public interface Event {
 
+    /**
+     * The session of this event.
+     * 
+     * @return the session (cannot be null)
+     */
     IoSession getSession();
 
+    /**
+     * Call the visitor method for this kind of event.
+     * 
+     * @param visitor the vistor to call
+     */
     void visit(EventVisitor visitor);
 }

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/EventVisitor.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/EventVisitor.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/EventVisitor.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/EventVisitor.java Sat Dec 22 08:57:15 2012
@@ -19,7 +19,13 @@
  */
 package org.apache.mina.service.executor;
 
+/**
+ * Implement this interface for implementing different behavior on different {@link Event}.
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public interface EventVisitor {
+
     void visit(OpenEvent event);
 
     void visit(CloseEvent event);

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/HandlerCaller.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/HandlerCaller.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/HandlerCaller.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/HandlerCaller.java Sat Dec 22 08:57:15 2012
@@ -1,7 +1,13 @@
 package org.apache.mina.service.executor;
 
+import org.apache.mina.api.IoHandler;
 import org.apache.mina.api.IoSession;
 
+/**
+ * In charge of calling the {@link IoHandler} for a given {@link Event}
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 class HandlerCaller implements EventVisitor {
 
     @Override

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IdleEvent.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IdleEvent.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IdleEvent.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IdleEvent.java Sat Dec 22 08:57:15 2012
@@ -22,6 +22,11 @@ package org.apache.mina.service.executor
 import org.apache.mina.api.IdleStatus;
 import org.apache.mina.api.IoSession;
 
+/**
+ * An {@link IoSession} is idle (no sent or receive events)
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public class IdleEvent implements Event {
 
     private final IoSession session;

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/InOrderHandlerExecutor.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/InOrderHandlerExecutor.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/InOrderHandlerExecutor.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/InOrderHandlerExecutor.java Sat Dec 22 08:57:15 2012
@@ -22,15 +22,28 @@ package org.apache.mina.service.executor
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
 
+import org.apache.mina.api.IoHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * Use this executor if you want the {@link IoHandler} events of a session to be executed in order and on the same
+ * thread. In your {@link IoHandler} code you don't need to care about session level concurrency.
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public class InOrderHandlerExecutor implements IoHandlerExecutor {
 
     private static final Logger LOG = LoggerFactory.getLogger(InOrderHandlerExecutor.class);
 
     private Worker[] workers;
 
+    /**
+     * Create an {@link InOrderHandlerExecutor} with a given number of thread and a given queue size.
+     * 
+     * @param workerThreadCount the worker thread count
+     * @param queueSize the size of the queue for each worker thread
+     */
     public InOrderHandlerExecutor(int workerThreadCount, int queueSize) {
         LOG.debug("creating InOrderHandlerExecutor workerThreadCount = {} queueSize = {}", workerThreadCount, queueSize);
         workers = new Worker[workerThreadCount];
@@ -59,6 +72,7 @@ public class InOrderHandlerExecutor impl
         }
     }
 
+    /** thread in charge of gathering events from a queue and running them */
     private static class Worker extends Thread {
 
         private static HandlerCaller caller = new HandlerCaller();

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IoHandlerExecutor.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IoHandlerExecutor.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IoHandlerExecutor.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/IoHandlerExecutor.java Sat Dec 22 08:57:15 2012
@@ -19,7 +19,19 @@
  */
 package org.apache.mina.service.executor;
 
+import org.apache.mina.api.IoHandler;
+
+/**
+ * A class in charge of executing {@link IoHandler} related events.
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public interface IoHandlerExecutor {
 
-    void execute(Event command);
+    /**
+     * execute a given event
+     * 
+     * @param event the event to execute
+     */
+    void execute(Event event);
 }

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/OpenEvent.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/OpenEvent.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/OpenEvent.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/OpenEvent.java Sat Dec 22 08:57:15 2012
@@ -21,6 +21,11 @@ package org.apache.mina.service.executor
 
 import org.apache.mina.api.IoSession;
 
+/**
+ * An {@link IoSession} open {@link Event}
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public class OpenEvent implements Event {
     private final IoSession session;
 

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/ReceiveEvent.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/ReceiveEvent.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/ReceiveEvent.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/ReceiveEvent.java Sat Dec 22 08:57:15 2012
@@ -21,6 +21,11 @@ package org.apache.mina.service.executor
 
 import org.apache.mina.api.IoSession;
 
+/**
+ * A {@link IoSession} received a message {@link Event}.
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public class ReceiveEvent implements Event {
     private final IoSession session;
     private final Object message;

Modified: mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/SentEvent.java
URL: http://svn.apache.org/viewvc/mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/SentEvent.java?rev=1425261&r1=1425260&r2=1425261&view=diff
==============================================================================
--- mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/SentEvent.java (original)
+++ mina/mina/trunk/core/src/main/java/org/apache/mina/service/executor/SentEvent.java Sat Dec 22 08:57:15 2012
@@ -21,6 +21,11 @@ package org.apache.mina.service.executor
 
 import org.apache.mina.api.IoSession;
 
+/**
+ * An {@link IoSession} sent a message {@link Event}
+ * 
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
 public class SentEvent implements Event {
     private final IoSession session;
     private final Object message;