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
