You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2008/06/17 17:11:15 UTC
svn commit: r668702 - in /mina/trunk/core/src/main/java/org/apache/mina:
common/ transport/socket/nio/ transport/vmpipe/
Author: elecharny
Date: Tue Jun 17 08:11:14 2008
New Revision: 668702
URL: http://svn.apache.org/viewvc?rev=668702&view=rev
Log:
o Added some javadoc
o Reorganized the inheritence scheme (where the SocketSession and DatagramSession interfaces have been removed)
o Renamed the VmPipeSessionImpl to VmPipeSession (and removed the VmPipeSession interface)
o Fixed the tests accordingly
Added:
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java
- copied, changed from r668019, mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java Tue Jun 17 08:11:14 2008
@@ -40,9 +40,10 @@
*/
public abstract class AbstractIoSession implements IoSession {
- private static final AttributeKey READY_READ_FUTURES =
+ private static final AttributeKey READY_READ_FUTURES_KEY =
new AttributeKey(AbstractIoSession.class, "readyReadFutures");
- private static final AttributeKey WAITING_READ_FUTURES =
+
+ private static final AttributeKey WAITING_READ_FUTURES_KEY =
new AttributeKey(AbstractIoSession.class, "waitingReadFutures");
private static final IoFutureListener<CloseFuture> SCHEDULED_COUNTER_RESETTER =
@@ -70,6 +71,8 @@
private IoSessionAttributeMap attributes;
private WriteRequestQueue writeRequestQueue;
private WriteRequest currentWriteRequest;
+
+ // The Session creation's time */
private final long creationTime;
/**
@@ -112,22 +115,37 @@
private boolean deferDecreaseReadBuffer = true;
+ /**
+ * TODO Add method documentation
+ */
protected AbstractIoSession() {
- creationTime = lastThroughputCalculationTime =
- lastReadTime = lastWriteTime =
- lastIdleTimeForBoth = lastIdleTimeForRead =
- lastIdleTimeForWrite = System.currentTimeMillis();
+ // Initialize all the Session counters to the current time
+ long currentTime = System.currentTimeMillis();
+ creationTime = currentTime;
+ lastThroughputCalculationTime = currentTime;
+ lastReadTime = currentTime;
+ lastWriteTime = currentTime;
+ lastIdleTimeForBoth = currentTime;
+ lastIdleTimeForRead = currentTime;
+ lastIdleTimeForWrite = currentTime;
+
+ // TODO add documentation
closeFuture.addListener(SCHEDULED_COUNTER_RESETTER);
}
/**
* {@inheritDoc}
+ *
+ * TODO this method implementation is totally wrong. It has to
+ * be rewritten.
*/
public final long getId() {
return hashCode() & 0xFFFFFFFFL;
}
- @SuppressWarnings("unchecked")
+ /**
+ * TODO Add method documentation
+ */
protected abstract IoProcessor getProcessor();
/**
@@ -151,10 +169,16 @@
return closeFuture;
}
+ /**
+ * TODO Add method documentation
+ */
protected final boolean isScheduledForFlush() {
return scheduledForFlush.get();
}
+ /**
+ * TODO Add method documentation
+ */
protected final boolean setScheduledForFlush(boolean flag) {
if (flag) {
return scheduledForFlush.compareAndSet(false, true);
@@ -226,14 +250,23 @@
return future;
}
+ /**
+ * TODO Add method documentation
+ */
protected final void offerReadFuture(Object message) {
newReadFuture().setRead(message);
}
+ /**
+ * TODO Add method documentation
+ */
protected final void offerFailedReadFuture(Throwable exception) {
newReadFuture().setException(exception);
}
+ /**
+ * TODO Add method documentation
+ */
protected final void offerClosedReadFuture() {
Queue<ReadFuture> readyReadFutures = getReadyReadFutures();
synchronized (readyReadFutures) {
@@ -241,6 +274,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
private ReadFuture newReadFuture() {
Queue<ReadFuture> readyReadFutures = getReadyReadFutures();
Queue<ReadFuture> waitingReadFutures = getWaitingReadFutures();
@@ -255,15 +291,18 @@
return future;
}
+ /**
+ * TODO Add method documentation
+ */
private Queue<ReadFuture> getReadyReadFutures() {
Queue<ReadFuture> readyReadFutures =
- (Queue<ReadFuture>) getAttribute(READY_READ_FUTURES);
+ (Queue<ReadFuture>) getAttribute(READY_READ_FUTURES_KEY);
if (readyReadFutures == null) {
readyReadFutures = new CircularQueue<ReadFuture>();
Queue<ReadFuture> oldReadyReadFutures =
(Queue<ReadFuture>) setAttributeIfAbsent(
- READY_READ_FUTURES, readyReadFutures);
+ READY_READ_FUTURES_KEY, readyReadFutures);
if (oldReadyReadFutures != null) {
readyReadFutures = oldReadyReadFutures;
}
@@ -271,15 +310,18 @@
return readyReadFutures;
}
+ /**
+ * TODO Add method documentation
+ */
private Queue<ReadFuture> getWaitingReadFutures() {
Queue<ReadFuture> waitingReadyReadFutures =
- (Queue<ReadFuture>) getAttribute(WAITING_READ_FUTURES);
+ (Queue<ReadFuture>) getAttribute(WAITING_READ_FUTURES_KEY);
if (waitingReadyReadFutures == null) {
waitingReadyReadFutures = new CircularQueue<ReadFuture>();
Queue<ReadFuture> oldWaitingReadyReadFutures =
(Queue<ReadFuture>) setAttributeIfAbsent(
- WAITING_READ_FUTURES, waitingReadyReadFutures);
+ WAITING_READ_FUTURES_KEY, waitingReadyReadFutures);
if (oldWaitingReadyReadFutures != null) {
waitingReadyReadFutures = oldWaitingReadyReadFutures;
}
@@ -445,14 +487,23 @@
return attributes.getAttributeKeys(this);
}
+ /**
+ * TODO Add method documentation
+ */
protected final IoSessionAttributeMap getAttributeMap() {
return attributes;
}
+ /**
+ * TODO Add method documentation
+ */
protected final void setAttributeMap(IoSessionAttributeMap attributes) {
this.attributes = attributes;
}
+ /**
+ * TODO Add method documentation
+ */
protected final void setWriteRequestQueue(WriteRequestQueue writeRequestQueue) {
this.writeRequestQueue =
new CloseRequestAwareWriteRequestQueue(writeRequestQueue);
@@ -480,6 +531,9 @@
getFilterChain().fireFilterSetTrafficMask(trafficMask);
}
+ /**
+ * TODO Add method documentation
+ */
protected final void setTrafficMaskNow(TrafficMask trafficMask) {
this.trafficMask = trafficMask;
}
@@ -616,14 +670,23 @@
return scheduledWriteMessages.get();
}
+ /**
+ * TODO Add method documentation
+ */
protected void setScheduledWriteBytes(int byteCount){
scheduledWriteBytes.set(byteCount);
}
+ /**
+ * TODO Add method documentation
+ */
protected void setScheduledWriteMessages(int messages) {
scheduledWriteMessages.set(messages);
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseReadBytes(long increment, long currentTime) {
if (increment <= 0) {
return;
@@ -639,6 +702,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseReadMessages(long currentTime) {
readMessages++;
lastReadTime = currentTime;
@@ -650,6 +716,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseWrittenBytes(int increment, long currentTime) {
if (increment <= 0) {
return;
@@ -667,6 +736,9 @@
increaseScheduledWriteBytes(-increment);
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseWrittenMessages(
WriteRequest request, long currentTime) {
Object message = request.getMessage();
@@ -686,6 +758,9 @@
decreaseScheduledWriteMessages();
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseScheduledWriteBytes(int increment) {
scheduledWriteBytes.addAndGet(increment);
if (getService() instanceof AbstractIoService) {
@@ -693,6 +768,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseScheduledWriteMessages() {
scheduledWriteMessages.incrementAndGet();
if (getService() instanceof AbstractIoService) {
@@ -700,6 +778,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
private void decreaseScheduledWriteMessages() {
scheduledWriteMessages.decrementAndGet();
if (getService() instanceof AbstractIoService) {
@@ -707,6 +788,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
protected final void decreaseScheduledBytesAndMessages(WriteRequest request) {
Object message = request.getMessage();
if (message instanceof IoBuffer) {
@@ -721,6 +805,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
protected final WriteRequestQueue getWriteRequestQueue() {
if (writeRequestQueue == null) {
throw new IllegalStateException();
@@ -746,10 +833,16 @@
return req.getMessage();
}
+ /**
+ * TODO Add method documentation
+ */
protected final void setCurrentWriteRequest(WriteRequest currentWriteRequest) {
this.currentWriteRequest = currentWriteRequest;
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseReadBufferSize() {
int newReadBufferSize = getConfig().getReadBufferSize() << 1;
if (newReadBufferSize <= getConfig().getMaxReadBufferSize()) {
@@ -761,6 +854,9 @@
deferDecreaseReadBuffer = true;
}
+ /**
+ * TODO Add method documentation
+ */
protected final void decreaseReadBufferSize() {
if (deferDecreaseReadBuffer) {
deferDecreaseReadBuffer = false;
@@ -894,6 +990,9 @@
throw new IllegalArgumentException("Unknown idle status: " + status);
}
+ /**
+ * TODO Add method documentation
+ */
protected final void increaseIdleCount(IdleStatus status, long currentTime) {
if (status == IdleStatus.BOTH_IDLE) {
idleCountForBoth++;
@@ -973,6 +1072,7 @@
/**
* {@inheritDoc}
+ * TODO This is a ridiculous implementation. Need to be replaced.
*/
@Override
public final boolean equals(Object o) {
@@ -993,6 +1093,9 @@
}
}
+ /**
+ * TODO Add method documentation
+ */
private String getIdAsString() {
String id = Long.toHexString(getId()).toUpperCase();
@@ -1006,6 +1109,9 @@
return id;
}
+ /**
+ * TODO Add method documentation
+ */
private String getServiceName() {
TransportMetadata tm = getTransportMetadata();
if (tm == null) {
@@ -1015,6 +1121,9 @@
}
}
+ /**
+ * TODO Add method documentation. Name is ridiculously too long.
+ */
private class CloseRequestAwareWriteRequestQueue implements WriteRequestQueue {
private final WriteRequestQueue q;
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java Tue Jun 17 08:11:14 2008
@@ -27,7 +27,7 @@
* transport types.
* <p/>
* {@link IoSession} provides user-defined attributes. User-defined attributes
- * are application-specific data which is associated with a session.
+ * are application-specific data which are associated with a session.
* It often contains objects that represents the state of a higher-level protocol
* and becomes a way to exchange data between filters and handlers.
* <p/>
@@ -38,14 +38,17 @@
* <p/>
* <h3>Thread Safety</h3>
* <p/>
+ * TODO : The following paragraph does not make any sense.
* {@link IoSession} is thread-safe. But please note that performing
* more than one {@link #write(Object)} calls at the same time will
* cause the {@link IoFilter#filterWrite(IoFilter.NextFilter,IoSession,WriteRequest)}
- * is executed simultaneously, and therefore you have to make sure the
+ * to be executed simultaneously, and therefore you have to make sure the
* {@link IoFilter} implementations you're using are thread-safe, too.
* </p>
* <p/>
* <h3>Equality of Sessions</h3>
+ * TODO : this is BS. The getId() method is totally worng. We can't base
+ * a method which is designed to create a unique ID on the hashCode method.
* {@link #equals(Object)} and {@link #hashCode()} shall not be overriden
* to the default behavior that is defined in {@link Object}.
*
@@ -53,42 +56,47 @@
* @version $Rev$, $Date$
*/
public interface IoSession {
-
/**
- * Returns a unique identifier of this session. Every session has its own
+ * @return a unique identifier for this session. Every session has its own
* ID which is different from each other.
+ *
+ * TODO : The way it's implemented does not guarantee that the contract is
+ * respected. It uses the HashCode() method which don't guarantee the key
+ * unicity.
*/
long getId();
/**
- * Returns the {@link IoService} which provides I/O service to this session.
+ * @return the {@link IoService} which provides I/O service to this session.
*/
IoService getService();
/**
- * Returns the {@link IoHandler} which handles this session.
+ * @return the {@link IoHandler} which handles this session.
*/
IoHandler getHandler();
/**
- * Returns the configuration of this session.
+ * @return the configuration of this session.
*/
IoSessionConfig getConfig();
/**
- * Returns the filter chain that only affects this session.
+ * @return the filter chain that only affects this session.
*/
IoFilterChain getFilterChain();
/**
- * Returns the {@link TransportMetadata} that this session runs on.
+ * @return the {@link TransportMetadata} that this session runs on.
*/
TransportMetadata getTransportMetadata();
/**
- * Returns a {@link ReadFuture} which is notified when a new message is
+ * TODO This javadoc is wrong. The return tag should be short.
+ * @return a {@link ReadFuture} which is notified when a new message is
* received, the connection is closed or an exception is caught. This
* operation is especially useful when you implement a client application.
+ * TODO : Describe here how we enable this feature.
* However, please note that this operation is disabled by default and
* throw {@link IllegalStateException} because all received events must be
* queued somewhere to support this operation, possibly leading to memory
@@ -440,7 +448,7 @@
WriteRequest getCurrentWriteRequest();
/**
- * Returns the time in millis when this session is created.
+ * @return the session's creation time in nanoseconds
*/
long getCreationTime();
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramSession.java Tue Jun 17 08:11:14 2008
@@ -33,7 +33,6 @@
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.TransportMetadata;
-import org.apache.mina.transport.socket.DatagramSession;
import org.apache.mina.transport.socket.DatagramSessionConfig;
/**
@@ -42,7 +41,7 @@
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
-class NioDatagramSession extends NioSession implements DatagramSession {
+class NioDatagramSession extends NioSession {
static final TransportMetadata METADATA =
new DefaultTransportMetadata(
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSession.java Tue Jun 17 08:11:14 2008
@@ -31,12 +31,6 @@
* @version $Rev$, $Date$
*/
public abstract class NioSession extends AbstractIoSession {
- /**
- * Creates a new instance. This constructor does nothing particular
- * but calls the default super constructor.
- */
- protected NioSession() {}
-
abstract ByteChannel getChannel();
abstract SelectionKey getSelectionKey();
abstract void setSelectionKey(SelectionKey key);
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java Tue Jun 17 08:11:14 2008
@@ -37,7 +37,6 @@
import org.apache.mina.common.TransportMetadata;
import org.apache.mina.transport.socket.AbstractSocketSessionConfig;
import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
-import org.apache.mina.transport.socket.SocketSession;
import org.apache.mina.transport.socket.SocketSessionConfig;
/**
@@ -46,7 +45,7 @@
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
-class NioSocketSession extends NioSession implements SocketSession {
+class NioSocketSession extends NioSession {
static final TransportMetadata METADATA =
new DefaultTransportMetadata(
@@ -69,7 +68,16 @@
private SelectionKey key;
- NioSocketSession(IoService service, IoProcessor<NioSession> processor, SocketChannel ch) {
+
+ /**
+ *
+ * Creates a new instance of NioSocketSession.
+ *
+ * @param service the associated IoService
+ * @param processor the associated IoProcessor
+ * @param ch the used channel
+ */
+ public NioSocketSession(IoService service, IoProcessor<NioSession> processor, SocketChannel ch) {
this.service = service;
this.processor = processor;
this.ch = ch;
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java Tue Jun 17 08:11:14 2008
@@ -59,7 +59,7 @@
}
public TransportMetadata getTransportMetadata() {
- return VmPipeSessionImpl.METADATA;
+ return VmPipeSession.METADATA;
}
@Override
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Tue Jun 17 08:11:14 2008
@@ -60,7 +60,7 @@
}
public TransportMetadata getTransportMetadata() {
- return VmPipeSessionImpl.METADATA;
+ return VmPipeSession.METADATA;
}
@Override
@@ -88,7 +88,7 @@
return DefaultConnectFuture.newFailedFuture(e);
}
- VmPipeSessionImpl localSession = new VmPipeSessionImpl(this,
+ VmPipeSession localSession = new VmPipeSession(this,
getListeners(), actualLocalAddress, getHandler(), entry);
finishSessionInitialization(localSession, future, sessionInitializer);
@@ -110,7 +110,7 @@
}
// initialize acceptor session
- VmPipeSessionImpl remoteSession = localSession.getRemoteSession();
+ VmPipeSession remoteSession = localSession.getRemoteSession();
((VmPipeAcceptor) remoteSession.getService()).doFinishSessionInitialization(remoteSession, null);
try {
IoFilterChain filterChain = remoteSession.getFilterChain();
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java?rev=668702&r1=668701&r2=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java Tue Jun 17 08:11:14 2008
@@ -44,7 +44,7 @@
class VmPipeFilterChain extends DefaultIoFilterChain {
private final Queue<IoEvent> eventQueue = new ConcurrentLinkedQueue<IoEvent>();
- private final IoProcessor<VmPipeSessionImpl> processor = new VmPipeIoProcessor();
+ private final IoProcessor<VmPipeSession> processor = new VmPipeIoProcessor();
private volatile boolean flushEnabled;
private volatile boolean sessionOpened;
@@ -53,14 +53,14 @@
super(session);
}
- IoProcessor<VmPipeSessionImpl> getProcessor() {
+ IoProcessor<VmPipeSession> getProcessor() {
return processor;
}
public void start() {
flushEnabled = true;
flushEvents();
- flushPendingDataQueues((VmPipeSessionImpl) getSession());
+ flushPendingDataQueues((VmPipeSession) getSession());
}
private void pushEvent(IoEvent e) {
@@ -82,7 +82,7 @@
}
private void fireEvent(IoEvent e) {
- VmPipeSessionImpl session = (VmPipeSessionImpl) getSession();
+ VmPipeSession session = (VmPipeSession) getSession();
IoEventType type = e.getType();
Object data = e.getParameter();
@@ -126,7 +126,7 @@
}
}
- private static void flushPendingDataQueues(VmPipeSessionImpl s) {
+ private static void flushPendingDataQueues(VmPipeSession s) {
s.getProcessor().updateTrafficMask(s);
s.getRemoteSession().getProcessor().updateTrafficMask(s);
}
@@ -176,8 +176,8 @@
pushEvent(new IoEvent(IoEventType.MESSAGE_RECEIVED, getSession(), message));
}
- private class VmPipeIoProcessor implements IoProcessor<VmPipeSessionImpl> {
- public void flush(VmPipeSessionImpl session) {
+ private class VmPipeIoProcessor implements IoProcessor<VmPipeSession> {
+ public void flush(VmPipeSession session) {
WriteRequestQueue queue = session.getWriteRequestQueue0();
if (!session.isClosing()) {
session.getLock().lock();
@@ -236,7 +236,7 @@
return messageCopy;
}
- public void remove(VmPipeSessionImpl session) {
+ public void remove(VmPipeSession session) {
try {
session.getLock().lock();
if (!session.getCloseFuture().isClosed()) {
@@ -248,11 +248,11 @@
}
}
- public void add(VmPipeSessionImpl session) {
+ public void add(VmPipeSession session) {
// Unused
}
- public void updateTrafficMask(VmPipeSessionImpl session) {
+ public void updateTrafficMask(VmPipeSession session) {
if (session.getTrafficMask().isReadable()) {
List<Object> data = new ArrayList<Object>();
session.receivedMessageQueue.drainTo(data);
Copied: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java (from r668019, mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java)
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java?p2=mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java&p1=mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java&r1=668019&r2=668702&rev=668702&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java Tue Jun 17 08:11:14 2008
@@ -41,7 +41,7 @@
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
-class VmPipeSessionImpl extends AbstractIoSession implements VmPipeSession {
+class VmPipeSession extends AbstractIoSession {
static final TransportMetadata METADATA =
new DefaultTransportMetadata(
@@ -66,7 +66,7 @@
private final VmPipeFilterChain filterChain;
- private final VmPipeSessionImpl remoteSession;
+ private final VmPipeSession remoteSession;
private final Lock lock;
@@ -75,7 +75,7 @@
/*
* Constructor for client-side session.
*/
- VmPipeSessionImpl(IoService service,
+ VmPipeSession(IoService service,
IoServiceListenerSupport serviceListeners,
VmPipeAddress localAddress, IoHandler handler, VmPipe remoteEntry) {
this.service = service;
@@ -87,13 +87,13 @@
filterChain = new VmPipeFilterChain(this);
receivedMessageQueue = new LinkedBlockingQueue<Object>();
- remoteSession = new VmPipeSessionImpl(this, remoteEntry);
+ remoteSession = new VmPipeSession(this, remoteEntry);
}
/*
* Constructor for server-side session.
*/
- private VmPipeSessionImpl(VmPipeSessionImpl remoteSession, VmPipe entry) {
+ private VmPipeSession(VmPipeSession remoteSession, VmPipe entry) {
service = entry.getAcceptor();
serviceListeners = entry.getListeners();
lock = remoteSession.lock;
@@ -110,7 +110,7 @@
}
@Override
- protected IoProcessor<VmPipeSessionImpl> getProcessor() {
+ protected IoProcessor<VmPipeSession> getProcessor() {
return filterChain.getProcessor();
}
@@ -126,7 +126,7 @@
return filterChain;
}
- public VmPipeSessionImpl getRemoteSession() {
+ public VmPipeSession getRemoteSession() {
return remoteSession;
}