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