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);
+
}
}