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 2011/07/16 09:38:42 UTC

svn commit: r1147373 - in /mina/branches/3.0/core/src/main/java/org/apache/mina: api/IoFilterChain.java filterchain/DefaultIoFilterChain.java session/AbstractIoSession.java transport/tcp/NioSelectorProcessor.java

Author: jvermillard
Date: Sat Jul 16 07:38:42 2011
New Revision: 1147373

URL: http://svn.apache.org/viewvc?rev=1147373&view=rev
Log:
session closed and message writing events

Modified:
    mina/branches/3.0/core/src/main/java/org/apache/mina/api/IoFilterChain.java
    mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java
    mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
    mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java

Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/api/IoFilterChain.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/api/IoFilterChain.java?rev=1147373&r1=1147372&r2=1147373&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/api/IoFilterChain.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/api/IoFilterChain.java Sat Jul 16 07:38:42 2011
@@ -80,6 +80,12 @@ public interface IoFilterChain {
     void processSessionOpen(IoSession session);
 
     /**
+     * Call this method for processing a session closed event using the chain.
+     * @param session {@link IoSession} the closed session
+     */
+    void processSessionClosed(IoSession session);
+
+    /**
      * Call this method for processing a received message using this chain.
      * This processing is done in reverse order.
      * @param session {@link IoSession} associated with this message

Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java?rev=1147373&r1=1147372&r2=1147373&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/filterchain/DefaultIoFilterChain.java Sat Jul 16 07:38:42 2011
@@ -74,6 +74,13 @@ public class DefaultIoFilterChain implem
     }
 
     @Override
+    public void processSessionClosed(IoSession session) {
+        for (IoFilter filter : chain) {
+            filter.sessionClosed(session);
+        }
+    }
+
+    @Override
     public Object processMessageReceived(IoSession session, Object message) {
         for (IoFilter filter : chain) {
             message = filter.messageReceived(session, message);

Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java?rev=1147373&r1=1147372&r2=1147373&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java Sat Jul 16 07:38:42 2011
@@ -227,6 +227,10 @@ public abstract class AbstractIoSession 
             LOG.error("writing to closed or closing session");
             return;
         }
+
+        // process the queue
+        message = getFilterChain().processMessageWriting(this, message);
+
         writeQueue.add(new DefaultWriteRequest(message));
 
         // If it wasn't, we register this session as interested to write.

Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1147373&r1=1147372&r2=1147373&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java Sat Jul 16 07:38:42 2011
@@ -248,7 +248,9 @@ public class NioSelectorProcessor implem
                             // needed ?
                             session.getSocketChannel().close();
                             // fire the event
+                            session.getFilterChain().processSessionClosed(session);
                             ((AbstractIoService) session.getService()).fireSessionDestroyed(session);
+
                         }
                     }