Updated Branches:
  refs/heads/trunk c940ca078 -> 43734acca

session toString (from MINA 2)


Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/43734acc
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/43734acc
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/43734acc

Branch: refs/heads/trunk
Commit: 43734accaca45863aee91b904758fd31183af89f
Parents: c940ca0
Author: jvermillard <[email protected]>
Authored: Sun May 26 23:11:07 2013 +0200
Committer: jvermillard <[email protected]>
Committed: Sun May 26 23:11:07 2013 +0200

----------------------------------------------------------------------
 .../org/apache/mina/session/AbstractIoSession.java |   49 +++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/43734acc/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/mina/session/AbstractIoSession.java 
b/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
index ab78858..af32853 100644
--- a/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
+++ b/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
@@ -34,6 +34,7 @@ import org.apache.mina.api.IdleStatus;
 import org.apache.mina.api.IoFilter;
 import org.apache.mina.api.IoFuture;
 import org.apache.mina.api.IoHandler;
+import org.apache.mina.api.IoServer;
 import org.apache.mina.api.IoService;
 import org.apache.mina.api.IoSession;
 import org.apache.mina.api.IoSessionConfig;
@@ -784,4 +785,52 @@ public abstract class AbstractIoSession implements 
IoSession, ReadFilterChainCon
         readChainPosition--;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String toString() {
+        if (isConnected() || isClosing()) {
+            String remote = null;
+            String local = null;
+
+            try {
+                remote = String.valueOf(getRemoteAddress());
+            } catch (Throwable t) {
+                remote = "Cannot get the remote address informations: " + 
t.getMessage();
+            }
+
+            try {
+                local = String.valueOf(getLocalAddress());
+            } catch (Throwable t) {
+                local = "Cannot get the local address informations: " + 
t.getMessage();
+            }
+
+            if (getService() instanceof IoServer) {
+                return "(" + getIdAsString() + ": " + getServiceName() + ", 
server, " + remote + " => " + local + ')';
+            }
+
+            return "(" + getIdAsString() + ": " + getServiceName() + ", 
client, " + local + " => " + remote + ')';
+        }
+
+        return "(" + getIdAsString() + ") Session disconnected ...";
+    }
+
+    private String getServiceName() {
+        return getService().getClass().getCanonicalName();
+    }
+
+    /** create string for session id padded with 0 */
+    private String getIdAsString() {
+        String id = Long.toHexString(getId()).toUpperCase();
+
+        // Somewhat inefficient, but it won't happen that often
+        // because an ID is often a big integer.
+        while (id.length() < 8) {
+            id = '0' + id; // padding
+        }
+        id = "0x" + id;
+
+        return id;
+    }
 }
\ No newline at end of file

Reply via email to