Author: jvermillard
Date: Thu Nov  6 07:43:46 2008
New Revision: 711883

URL: http://svn.apache.org/viewvc?rev=711883&view=rev
Log:
removed TrafficMask and replaced with suspend/resumeRead/Write in IoSession

Removed:
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/TrafficMask.java
Modified:
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterEvent.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/IoProcessor.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/SimpleIoProcessorPool.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/DummySession.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEvent.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEventType.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoSession.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/filter/util/ReferenceCountingFilter.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
    
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
    
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/AbstractProxyIoHandler.java
    
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java
    
mina/sandbox/jvermillard/mina-cleaning/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionImpl.java

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
 Thu Nov  6 07:43:46 2008
@@ -526,23 +526,6 @@
         }
     }
 
-    public void fireFilterSetTrafficMask(TrafficMask trafficMask) {
-        Entry tail = this.tail;
-        callPreviousFilterSetTrafficMask(tail, session, trafficMask);
-    }
-
-    private void callPreviousFilterSetTrafficMask(Entry entry,
-            IoSession session, TrafficMask trafficMask) {
-        try {
-            IoFilter filter = entry.getFilter();
-            NextFilter nextFilter = entry.getNextFilter();
-            filter.filterSetTrafficMask(nextFilter,
-                    session, trafficMask);
-        } catch (Throwable e) {
-            fireExceptionCaught(e);
-        }
-    }
-
     public List<Entry> getAll() {
         List<Entry> list = new ArrayList<Entry>();
         EntryImpl e = head.nextEntry;
@@ -646,7 +629,7 @@
             }
 
             s.getWriteRequestQueue().offer(s, writeRequest);
-            if (s.getTrafficMask().isWritable()) {
+            if (!s.isWriteSuspended()) {
                 s.getProcessor().flush(s);
             }
         }
@@ -655,18 +638,8 @@
         @Override
         public void filterClose(NextFilter nextFilter, IoSession session)
                 throws Exception {
-            ((AbstractIoSession) session).getProcessor().remove(session);
+            ((AbstractIoSession) 
session).getProcessor().remove(((AbstractIoSession) session));
         }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public void filterSetTrafficMask(NextFilter nextFilter,
-                IoSession session, TrafficMask trafficMask) throws Exception {
-            AbstractIoSession s = (AbstractIoSession) session;
-            s.setTrafficMaskNow(trafficMask);
-            s.getProcessor().updateTrafficMask(s);
-        }
-
     }
 
     private static class TailFilter extends IoFilterAdapter {
@@ -846,13 +819,6 @@
                     Entry nextEntry = EntryImpl.this.prevEntry;
                     callPreviousFilterClose(nextEntry, session);
                 }
-
-                public void filterSetTrafficMask(IoSession session,
-                        TrafficMask trafficMask) {
-                    Entry nextEntry = EntryImpl.this.prevEntry;
-                    callPreviousFilterSetTrafficMask(nextEntry, session,
-                            trafficMask);
-                }
                 
                 public String toString() {
                        return EntryImpl.this.nextEntry.name;

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilter.java
 Thu Nov  6 07:43:46 2008
@@ -209,12 +209,6 @@
             WriteRequest writeRequest) throws Exception;
     
     /**
-     * Filters [EMAIL PROTECTED] IoSession#setTrafficMask(TrafficMask)} method 
invocation.
-     */
-    void filterSetTrafficMask(
-            NextFilter nextFilter, IoSession session, TrafficMask trafficMask) 
throws Exception;
-
-    /**
      * Represents the next [EMAIL PROTECTED] IoFilter} in [EMAIL PROTECTED] 
IoFilterChain}.
      */
     public interface NextFilter {
@@ -263,9 +257,5 @@
          */
         void filterClose(IoSession session);
         
-        /**
-         * Forwards <tt>filterSetTrafficMask</tt> event to next filter.
-         */
-        void filterSetTrafficMask(IoSession session, TrafficMask trafficMask);
     }
 }

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterAdapter.java
 Thu Nov  6 07:43:46 2008
@@ -144,14 +144,6 @@
             throws Exception {
         nextFilter.filterClose(session);
     }
-
-    /**
-     * [EMAIL PROTECTED]
-     */
-    public void filterSetTrafficMask(NextFilter nextFilter, IoSession session,
-            TrafficMask trafficMask) throws Exception {
-        nextFilter.filterSetTrafficMask(session, trafficMask);
-    }
     
     public String toString() {
        return this.getClass().getSimpleName();

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterChain.java
 Thu Nov  6 07:43:46 2008
@@ -281,13 +281,6 @@
     public void fireFilterClose();
 
     /**
-     * Fires a [EMAIL PROTECTED] IoSession#setTrafficMask(TrafficMask)} event. 
 Most users don't need to call this method at
-     * all.  Please use this method only when you implement a new transport or 
fire a virtual
-     * event.
-     */
-    public void fireFilterSetTrafficMask(TrafficMask trafficMask);
-
-    /**
      * Represents a name-filter pair that an [EMAIL PROTECTED] IoFilterChain} 
contains.
      *
      * @author The Apache MINA Project ([EMAIL PROTECTED])

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterEvent.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterEvent.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterEvent.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/filterchain/IoFilterEvent.java
 Thu Nov  6 07:43:46 2008
@@ -24,7 +24,6 @@
 import org.apache.mina.core.session.IoEvent;
 import org.apache.mina.core.session.IoEventType;
 import org.apache.mina.core.session.IoSession;
-import org.apache.mina.core.session.TrafficMask;
 import org.apache.mina.core.write.WriteRequest;
 
 /**
@@ -65,9 +64,6 @@
         case WRITE:
             getNextFilter().filterWrite(getSession(), (WriteRequest) 
getParameter());
             break;
-        case SET_TRAFFIC_MASK:
-            getNextFilter().filterSetTrafficMask(getSession(), (TrafficMask) 
getParameter());
-            break;
         case CLOSE:
             getNextFilter().filterClose(getSession());
             break;

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java
 Thu Nov  6 07:43:46 2008
@@ -282,7 +282,7 @@
             getListeners().fireSessionDestroyed(session);
         }
 
-        public void updateTrafficMask(T session) {
+        public void updateTrafficControl(T session) {
             throw new UnsupportedOperationException();
         }
 

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
 Thu Nov  6 07:43:46 2008
@@ -20,7 +20,6 @@
 package org.apache.mina.core.polling;
 
 import java.io.IOException;
-import java.nio.channels.SelectionKey;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -38,7 +37,6 @@
 import org.apache.mina.core.service.AbstractIoService;
 import org.apache.mina.core.service.IoProcessor;
 import org.apache.mina.core.session.AbstractIoSession;
-import org.apache.mina.core.session.IdleStatusChecker;
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.core.session.IoSessionConfig;
 import org.apache.mina.core.write.WriteRequest;
@@ -545,11 +543,11 @@
 
     private void process(T session) {
 
-        if (isReadable(session) && session.getTrafficMask().isReadable()) {
+        if (isReadable(session) && !session.isReadSuspended()) {
             read(session);
         }
 
-        if (isWritable(session) && session.getTrafficMask().isWritable()) {
+        if (isWritable(session) && !session.isWriteSuspended()) {
             scheduleFlush(session);
         }
     }
@@ -819,7 +817,7 @@
             SessionState state = state(session);
             switch (state) {
             case OPEN:
-                updateTrafficMaskNow(session);
+               updateTrafficControl(session);
                 break;
             case CLOSED:
                 break;
@@ -835,12 +833,9 @@
         }
     }
 
-    private void updateTrafficMaskNow(T session) {
-        // The normal is OP_READ and, if there are write requests in the
-        // session's write queue, set OP_WRITE to trigger flushing.
-        int mask = session.getTrafficMask().getInterestOps();
-        try {
-            setInterestedInRead(session, (mask & SelectionKey.OP_READ) != 0);
+    public void updateTrafficControl(T session) {
+       try {
+            setInterestedInRead(session, !session.isReadSuspended());
         } catch (Exception e) {
             IoFilterChain filterChain = session.getFilterChain(); 
             filterChain.fireExceptionCaught(e);
@@ -849,14 +844,13 @@
             setInterestedInWrite(
                     session,
                     !session.getWriteRequestQueue().isEmpty(session) &&
-                            (mask & SelectionKey.OP_WRITE) != 0);
+                            !session.isWriteSuspended());
         } catch (Exception e) {
             IoFilterChain filterChain = session.getFilterChain(); 
             filterChain.fireExceptionCaught(e);
         }
     }
-
-    
+        
     private class Processor implements Runnable {
         public void run() {
             int nSessions = 0;

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/IoProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/IoProcessor.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/IoProcessor.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/IoProcessor.java
 Thu Nov  6 07:43:46 2008
@@ -69,10 +69,11 @@
     void flush(T session);
 
     /**
-     * Controls the traffic of the specified [EMAIL PROTECTED] session} as 
specified
-     * in [EMAIL PROTECTED] IoSession#getTrafficMask()}.
+     * Controls the traffic of the specified [EMAIL PROTECTED] session} 
depending of the
+     * [EMAIL PROTECTED] IoSession#isReadSuspended()} and [EMAIL PROTECTED] 
IoSession#isWriteSuspended()}
+     * flags
      */
-    void updateTrafficMask(T session);
+    void updateTrafficControl(T session);
 
     /**
      * Removes and closes the specified [EMAIL PROTECTED] session} from the I/O

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/SimpleIoProcessorPool.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/SimpleIoProcessorPool.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/SimpleIoProcessorPool.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/service/SimpleIoProcessorPool.java
 Thu Nov  6 07:43:46 2008
@@ -189,8 +189,8 @@
         getProcessor(session).remove(session);
     }
 
-    public final void updateTrafficMask(T session) {
-        getProcessor(session).updateTrafficMask(session);
+    public final void updateTrafficControl(T session) {
+        getProcessor(session).updateTrafficControl(session);
     }
     
     public boolean isDisposed() {

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
 Thu Nov  6 07:43:46 2008
@@ -104,7 +104,10 @@
     private final CloseFuture closeFuture = new DefaultCloseFuture(this);
 
     private volatile boolean closing;
-    private volatile TrafficMask trafficMask = TrafficMask.ALL;
+    
+    // traffic control
+    private boolean readSuspended=false;
+    private boolean writeSuspended=false;
 
     // Status variables
     private final AtomicBoolean scheduledForFlush = new AtomicBoolean();
@@ -550,63 +553,67 @@
             new CloseRequestAwareWriteRequestQueue(writeRequestQueue);
     }
 
-    /**
-     * [EMAIL PROTECTED]
-     */
-    public final TrafficMask getTrafficMask() {
-        return trafficMask;
-    }
 
     /**
      * [EMAIL PROTECTED]
      */
-    public final void setTrafficMask(TrafficMask trafficMask) {
-        if (trafficMask == null) {
-            throw new NullPointerException("trafficMask");
-        }
-
+    public final void suspendRead() {
+        readSuspended = true;
         if (isClosing() || !isConnected()) {
             return;
         }
-
-        getFilterChain().fireFilterSetTrafficMask(trafficMask);
+        getProcessor().updateTrafficControl(this);
     }
 
     /**
-     * TODO Add method documentation
+     * [EMAIL PROTECTED]
      */
-    public final void setTrafficMaskNow(TrafficMask trafficMask) {
-        this.trafficMask = trafficMask;
+    public final void suspendWrite() {
+        writeSuspended = true;
+        if (isClosing() || !isConnected()) {
+            return;
+        }
+        getProcessor().updateTrafficControl(this);
     }
 
     /**
      * [EMAIL PROTECTED]
      */
-    public final void suspendRead() {
-        setTrafficMask(getTrafficMask().and(TrafficMask.READ.not()));
+    @SuppressWarnings("unchecked")
+       public final void resumeRead() {
+        readSuspended = false;
+        if (isClosing() || !isConnected()) {
+            return;
+        }
+        getProcessor().updateTrafficControl(this);
     }
 
     /**
      * [EMAIL PROTECTED]
      */
-    public final void suspendWrite() {
-        setTrafficMask(getTrafficMask().and(TrafficMask.WRITE.not()));
+    @SuppressWarnings("unchecked")
+       public final void resumeWrite() {
+        writeSuspended = false;
+        if (isClosing() || !isConnected()) {
+            return;
+        }
+        getProcessor().updateTrafficControl(this);
     }
 
     /**
      * [EMAIL PROTECTED]
      */
-    public final void resumeRead() {
-        setTrafficMask(getTrafficMask().or(TrafficMask.READ));
+    public boolean isReadSuspended() {
+       return readSuspended;
     }
 
     /**
      * [EMAIL PROTECTED]
      */
-    public final void resumeWrite() {
-        setTrafficMask(getTrafficMask().or(TrafficMask.WRITE));
+    public boolean isWriteSuspended() {
+       return writeSuspended; 
     }
-
+    
     /**
      * [EMAIL PROTECTED]
      */

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/DummySession.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/DummySession.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/DummySession.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/DummySession.java
 Thu Nov  6 07:43:46 2008
@@ -78,7 +78,7 @@
     };
 
     private final IoFilterChain filterChain = new DefaultIoFilterChain(this);
-    private final IoProcessor<IoSession> processor;
+    private final IoProcessor<AbstractIoSession> processor;
 
     private volatile IoHandler handler = new IoHandlerAdapter();
     private volatile SocketAddress localAddress = ANONYMOUS_ADDRESS;
@@ -128,11 +128,11 @@
 
         service = acceptor;
 
-        processor = new IoProcessor<IoSession>() {
-            public void add(IoSession session) {
+        processor = new IoProcessor<AbstractIoSession>() {
+            public void add(AbstractIoSession session) {
             }
 
-            public void flush(IoSession session) {
+            public void flush(AbstractIoSession session) {
                 DummySession s = (DummySession) session;
                 WriteRequest req = s.getWriteRequestQueue().poll(session);
                 Object m = req.getMessage();
@@ -148,10 +148,10 @@
                 getFilterChain().fireMessageSent(req);
             }
 
-            public void remove(IoSession session) {
+            public void remove(AbstractIoSession session) {
             }
 
-            public void updateTrafficMask(IoSession session) {
+            public void updateTrafficControl(AbstractIoSession session) {
             }
 
             public void dispose() {
@@ -164,6 +164,7 @@
             public boolean isDisposing() {
                 return false;
             }
+
         };
 
         try {
@@ -256,7 +257,7 @@
     }
 
     @Override
-    public final IoProcessor<IoSession> getProcessor() {
+    public final IoProcessor<AbstractIoSession> getProcessor() {
         return processor;
     }
 

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEvent.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEvent.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEvent.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEvent.java
 Thu Nov  6 07:43:46 2008
@@ -75,9 +75,6 @@
         case WRITE:
             getSession().getFilterChain().fireFilterWrite((WriteRequest) 
getParameter());
             break;
-        case SET_TRAFFIC_MASK:
-            
getSession().getFilterChain().fireFilterSetTrafficMask((TrafficMask) 
getParameter());
-            break;
         case CLOSE:
             getSession().getFilterChain().fireFilterClose();
             break;

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEventType.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEventType.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEventType.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoEventType.java
 Thu Nov  6 07:43:46 2008
@@ -37,5 +37,4 @@
     EXCEPTION_CAUGHT,
     WRITE,
     CLOSE,
-    SET_TRAFFIC_MASK,
 }

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoSession.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoSession.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoSession.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/core/session/IoSession.java
 Thu Nov  6 07:43:46 2008
@@ -366,18 +366,6 @@
     SocketAddress getServiceAddress();
 
     /**
-     * Returns the current [EMAIL PROTECTED] TrafficMask} of this session.
-     */
-    TrafficMask getTrafficMask();
-
-    /**
-     * Sets the [EMAIL PROTECTED] TrafficMask} of this session which will 
result
-     * the parent [EMAIL PROTECTED] IoService} to start to control the traffic
-     * of this session immediately.
-     */
-    void setTrafficMask(TrafficMask trafficMask);
-
-    /**
      * 
      * TODO setWriteRequestQueue.
      *
@@ -386,18 +374,38 @@
     void setCurrentWriteRequest(WriteRequest currentWriteRequest);
     
     /**
-     * A shortcut method for [EMAIL PROTECTED] #setTrafficMask(TrafficMask)} 
that
-     * suspends read operations for this session.
+     * Suspends read operations for this session.
      */
     void suspendRead();
 
     /**
-     * A shortcut method for [EMAIL PROTECTED] #setTrafficMask(TrafficMask)} 
that
-     * suspends write operations for this session.
+     * Suspends write operations for this session.
      */
     void suspendWrite();
 
     /**
+     * Resumes read operations for this session.
+     */
+    void resumeRead();
+
+    /**
+     * Resumes write operations for this session.
+     */
+    void resumeWrite();
+    
+    /**
+     * Is read operation is suspended for this session. 
+     * @return <code>true</code> if suspended
+     */
+    boolean isReadSuspended();
+    
+    /**
+     * Is write operation is suspended for this session.
+     * @return <code>true</code> if suspended
+     */
+    boolean isWriteSuspended();
+    
+    /**
      * Update all statistical properties related with throughput assuming
      * the specified time is the current time.  By default this method returns
      * silently without updating the throughput properties if they were
@@ -411,18 +419,6 @@
     void updateThroughput(long currentTime, boolean force);
     
     /**
-     * A shortcut method for [EMAIL PROTECTED] #setTrafficMask(TrafficMask)} 
that
-     * resumes read operations for this session.
-     */
-    void resumeRead();
-
-    /**
-     * A shortcut method for [EMAIL PROTECTED] #setTrafficMask(TrafficMask)} 
that
-     * resumes write operations for this session.
-     */
-    void resumeWrite();
-
-    /**
      * Returns the total number of bytes which were read from this session.
      */
     long getReadBytes();

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/filter/util/ReferenceCountingFilter.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/filter/util/ReferenceCountingFilter.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/filter/util/ReferenceCountingFilter.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/filter/util/ReferenceCountingFilter.java
 Thu Nov  6 07:43:46 2008
@@ -24,7 +24,6 @@
 import org.apache.mina.core.filterchain.IoFilterChain;
 import org.apache.mina.core.session.IdleStatus;
 import org.apache.mina.core.session.IoSession;
-import org.apache.mina.core.session.TrafficMask;
 import org.apache.mina.core.write.WriteRequest;
 
 /**
@@ -128,9 +127,4 @@
             throws Exception {
         filter.sessionOpened(nextFilter, session);
     }
-
-    public void filterSetTrafficMask(NextFilter nextFilter, IoSession session,
-            TrafficMask trafficMask) throws Exception {
-        filter.filterSetTrafficMask(nextFilter, session, trafficMask);
-    }
 }

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
 Thu Nov  6 07:43:46 2008
@@ -37,8 +37,6 @@
 import org.apache.mina.core.session.IoSessionInitializer;
 import org.apache.mina.util.ExceptionMonitor;
 
-import com.sun.corba.se.spi.legacy.connection.GetEndPointInfoAgainException;
-
 /**
  * Connects to [EMAIL PROTECTED] IoHandler}s which is bound on the specified
  * [EMAIL PROTECTED] VmPipeAddress}.

Modified: 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
 Thu Nov  6 07:43:46 2008
@@ -87,9 +87,9 @@
         Object data = e.getParameter();
 
         if (type == IoEventType.MESSAGE_RECEIVED) {
-            if (sessionOpened && session.getTrafficMask().isReadable() && 
session.getLock().tryLock()) {
+            if (sessionOpened && (! session.isReadSuspended() ) && 
session.getLock().tryLock()) {
                 try {
-                    if (!session.getTrafficMask().isReadable()) {
+                    if (session.isReadSuspended()) {
                         session.receivedMessageQueue.add(data);
                     } else {
                         super.fireMessageReceived(data);
@@ -127,8 +127,8 @@
     }
 
     private static void flushPendingDataQueues(VmPipeSession s) {
-        s.getProcessor().updateTrafficMask(s);
-        s.getRemoteSession().getProcessor().updateTrafficMask(s);
+        s.getProcessor().updateTrafficControl(s);
+        s.getRemoteSession().getProcessor().updateTrafficControl(s);
     }
 
     @Override
@@ -252,8 +252,8 @@
             // Unused
         }
 
-        public void updateTrafficMask(VmPipeSession session) {
-            if (session.getTrafficMask().isReadable()) {
+        public void updateTrafficControl(VmPipeSession session) {
+            if ( ! session.isReadSuspended()) {
                 List<Object> data = new ArrayList<Object>();
                 session.receivedMessageQueue.drainTo(data);
                 for (Object aData : data) {
@@ -261,7 +261,7 @@
                 }
             }
 
-            if (session.getTrafficMask().isWritable()) {
+            if ( ! session.isWriteSuspended()) {
                 flush(session);
             }
         }

Modified: 
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/AbstractProxyIoHandler.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/AbstractProxyIoHandler.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/AbstractProxyIoHandler.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/AbstractProxyIoHandler.java
 Thu Nov  6 07:43:46 2008
@@ -44,7 +44,8 @@
     
     @Override
     public void sessionCreated(IoSession session) throws Exception {
-        session.setTrafficMask(TrafficMask.NONE);
+        session.suspendRead();
+        session.suspendWrite();
     }
 
     @Override

Modified: 
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/example/src/main/java/org/apache/mina/example/proxy/ClientToProxyIoHandler.java
 Thu Nov  6 07:43:46 2008
@@ -26,7 +26,6 @@
 import org.apache.mina.core.future.IoFutureListener;
 import org.apache.mina.core.service.IoConnector;
 import org.apache.mina.core.session.IoSession;
-import org.apache.mina.core.session.TrafficMask;
 
 /**
  * Handles the client to proxy part of the proxied connection.
@@ -57,12 +56,15 @@
                 try {
                     future.getSession().setAttribute(OTHER_IO_SESSION, 
session);
                     session.setAttribute(OTHER_IO_SESSION, 
future.getSession());
-                    future.getSession().setTrafficMask(TrafficMask.ALL);
+                    IoSession session2 = future.getSession();
+                    session2.resumeRead();
+                    session2.resumeWrite();
                 } catch (RuntimeIoException e) {
                     // Connect failed
                     session.close();
                 } finally {
-                    session.setTrafficMask(TrafficMask.ALL);
+                       session.resumeRead();
+                    session.resumeWrite();
                 }
             }
         });

Modified: 
mina/sandbox/jvermillard/mina-cleaning/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionImpl.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-cleaning/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionImpl.java?rev=711883&r1=711882&r2=711883&view=diff
==============================================================================
--- 
mina/sandbox/jvermillard/mina-cleaning/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionImpl.java
 (original)
+++ 
mina/sandbox/jvermillard/mina-cleaning/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionImpl.java
 Thu Nov  6 07:43:46 2008
@@ -277,7 +277,7 @@
             serviceListeners.fireSessionDestroyed(SerialSessionImpl.this);
         }
 
-        public void updateTrafficMask(SerialSessionImpl session) {
+        public void updateTrafficControl(SerialSessionImpl session) {
             throw new UnsupportedOperationException();
         }
 


Reply via email to