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 2014/09/08 16:17:57 UTC
git commit: Called the statistic updateThroughput metho din the
TailFilter, so that the user don't have to do it. See DIRMINA-967
Repository: mina
Updated Branches:
refs/heads/2.0 d500b2e97 -> 478a8a87d
Called the statistic updateThroughput metho din the TailFilter, so that
the user don't have to do it. See DIRMINA-967
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/478a8a87
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/478a8a87
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/478a8a87
Branch: refs/heads/2.0
Commit: 478a8a87de9128bdbbc6d38c8b320d769f5d1441
Parents: d500b2e
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Mon Sep 8 14:13:09 2014 +0200
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Mon Sep 8 14:13:09 2014 +0200
----------------------------------------------------------------------
.../mina/core/filterchain/DefaultIoFilterChain.java | 14 ++++++++++++++
.../apache/mina/core/session/AbstractIoSession.java | 7 +++----
2 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/478a8a87/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java b/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
index 9e3825e..25185cd 100644
--- a/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
+++ b/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
@@ -28,6 +28,7 @@ import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.IoFilter.NextFilter;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.future.IoFuture;
+import org.apache.mina.core.service.AbstractIoService;
import org.apache.mina.core.session.AbstractIoSession;
import org.apache.mina.core.session.AttributeKey;
import org.apache.mina.core.session.IdleStatus;
@@ -709,6 +710,12 @@ public class DefaultIoFilterChain implements IoFilterChain {
s.increaseReadMessages(System.currentTimeMillis());
}
+ // Update the statistics
+ if (session.getService() instanceof AbstractIoService) {
+ ((AbstractIoService) session.getService()).getStatistics().updateThroughput(System.currentTimeMillis());
+ }
+
+ // Propagate the message
try {
session.getHandler().messageReceived(s, message);
} finally {
@@ -721,6 +728,13 @@ public class DefaultIoFilterChain implements IoFilterChain {
@Override
public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception {
((AbstractIoSession) session).increaseWrittenMessages(writeRequest, System.currentTimeMillis());
+
+ // Update the statistics
+ if (session.getService() instanceof AbstractIoService) {
+ ((AbstractIoService) session.getService()).getStatistics().updateThroughput(System.currentTimeMillis());
+ }
+
+ // Propagate the message
session.getHandler().messageSent(session, writeRequest.getMessage());
}
http://git-wip-us.apache.org/repos/asf/mina/blob/478a8a87/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
index de8516a..40a60d8 100644
--- a/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
+++ b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
@@ -761,10 +761,9 @@ public abstract class AbstractIoSession implements IoSession {
int interval = (int) (currentTime - lastThroughputCalculationTime);
long minInterval = getConfig().getThroughputCalculationIntervalInMillis();
- if ((minInterval == 0) || (interval < minInterval)) {
- if (!force) {
- return;
- }
+
+ if (((minInterval == 0) || (interval < minInterval)) && !force) {
+ return;
}
readBytesThroughput = (readBytes - lastReadBytes) * 1000.0 / interval;