You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2011/04/16 21:12:46 UTC
svn commit: r1094030 - in
/mina/branches/3.0/core/src/main/java/org/apache/mina: IoSession.java
session/AbstractIoSession.java transport/tcp/NioSelectorProcessor.java
transport/tcp/NioTcpSession.java
Author: jvermillard
Date: Sat Apr 16 19:12:46 2011
New Revision: 1094030
URL: http://svn.apache.org/viewvc?rev=1094030&view=rev
Log:
session state
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java
mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioTcpSession.java
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java?rev=1094030&r1=1094029&r2=1094030&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/IoSession.java Sat Apr 16 19:12:46 2011
@@ -239,4 +239,16 @@ public interface IoSession {
* @return the set of names of all user-defined attributes.
*/
Set<Object> getAttributeNames();
+
+
+ SessionState getState();
+
+ /**
+ * State of a {@link IoSession}
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
+ public enum SessionState {
+ CREATED,CONNECTED,CLOSING,CLOSED
+ }
}
\ No newline at end of file
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java?rev=1094030&r1=1094029&r2=1094030&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java Sat Apr 16 19:12:46 2011
@@ -66,6 +66,9 @@ public abstract class AbstractIoSession
/** unique identifier generator */
private static final AtomicLong NEXT_ID = new AtomicLong(0);
+
+ protected SessionState state;
+
/**
* Create an {@link IoSession} with a unique identifier (
* {@link IoSession#getId()}) and an associated {@link IoService}
@@ -79,8 +82,12 @@ public abstract class AbstractIoSession
creationTime = System.currentTimeMillis();
this.service = service;
LOG.debug("Created new session with id : {}", id);
+ this.state=SessionState.CREATED;
}
+ public SessionState getState() {
+ return state;
+ }
/**
* {@inheritDoc}
*/
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1094030&r1=1094029&r2=1094030&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java Sat Apr 16 19:12:46 2011
@@ -209,6 +209,7 @@ public class NioSelectorProcessor implem
SelectionKey key = session.getSocketChannel().register(selector, SelectionKey.OP_READ);
key.attach(session);
sessionKey.put(session, key);
+ session.setConnected();
}
}
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioTcpSession.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioTcpSession.java?rev=1094030&r1=1094029&r2=1094030&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioTcpSession.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioTcpSession.java Sat Apr 16 19:12:46 2011
@@ -46,6 +46,7 @@ public class NioTcpSession extends Abstr
public SocketChannel getSocketChannel() {
return channel;
}
+
/**
* {@inheritDoc}
*/
@@ -141,5 +142,11 @@ public class NioTcpSession extends Abstr
// TODO Auto-generated method stub
return null;
}
-
+
+ void setConnected() {
+ if (getState() != SessionState.CREATED) {
+ throw new RuntimeException("Trying to open a non created session");
+ }
+ state = SessionState.CONNECTED;
+ }
}
\ No newline at end of file