Author: trustin
Date: Thu Dec 6 02:55:53 2007
New Revision: 601695
URL: http://svn.apache.org/viewvc?rev=601695&view=rev
Log:
* Added 'force' parameter to AbstractIoSession.updateThroughput
* Added DummySession.updateThroughput() method with the force parameter
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java
mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.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=601695&r1=601694&r2=601695&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
Thu Dec 6 02:55:53 2007
@@ -460,11 +460,25 @@
return writtenMessagesThroughput;
}
- protected final void updateThroughput(long currentTime) {
+ /**
+ * Update all statistical properties related with throughput assuming
+ * the specified time is the current time. By default this method returns
+ * silently without updating the throughput properties if they were
+ * calculated already within last
+ * [EMAIL PROTECTED] IoSessionConfig#getThroughputCalculationInterval()
calculation interval}.
+ * If, however, <tt>force</tt> is specified as <tt>true</tt>, this method
+ * updates the throughput properties immediately.
+
+ * @param currentTime the current time in milliseconds
+ */
+ protected final void updateThroughput(long currentTime, boolean force) {
int interval = (int) (currentTime - lastThroughputCalculationTime);
+
long minInterval =
getConfig().getThroughputCalculationIntervalInMillis();
if (minInterval == 0 || interval < minInterval) {
- return;
+ if (!force) {
+ return;
+ }
}
readBytesThroughput = (readBytes - lastReadBytes) * 1000.0 / interval;
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java?rev=601695&r1=601694&r2=601695&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
Thu Dec 6 02:55:53 2007
@@ -363,19 +363,19 @@
private void callNextSessionClosed(Entry entry, IoSession session) {
try {
entry.getFilter().sessionClosed(entry.getNextFilter(), session);
-
} catch (Throwable e) {
fireExceptionCaught(e);
}
}
public void fireSessionIdle(IdleStatus status) {
+ session.increaseIdleCount(status, System.currentTimeMillis());
Entry head = this.head;
callNextSessionIdle(head, session, status);
}
- private void callNextSessionIdle(Entry entry, IoSession session,
- IdleStatus status) {
+ private void callNextSessionIdle(
+ Entry entry, IoSession session, IdleStatus status) {
try {
entry.getFilter().sessionIdle(entry.getNextFilter(), session,
status);
@@ -390,11 +390,11 @@
callNextMessageReceived(head, session, message);
}
- private void callNextMessageReceived(Entry entry, IoSession session,
- Object message) {
+ private void callNextMessageReceived(
+ Entry entry, IoSession session, Object message) {
try {
- entry.getFilter().messageReceived(entry.getNextFilter(), session,
- message);
+ entry.getFilter().messageReceived(
+ entry.getNextFilter(), session, message);
} catch (Throwable e) {
fireExceptionCaught(e);
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java?rev=601695&r1=601694&r2=601695&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DummySession.java Thu
Dec 6 02:55:53 2007
@@ -71,8 +71,7 @@
IoAcceptor acceptor = new AbstractIoAcceptor(
new AbstractIoSessionConfig() {
@Override
- protected void doSetAll(IoSessionConfig config) {
- }
+ protected void doSetAll(IoSessionConfig config) {}
}) {
@Override
@@ -257,5 +256,17 @@
}
this.transportMetadata = transportMetadata;
+ }
+
+ /**
+ * Update all statistical properties related with throughput. By default
+ * this method returns silently without updating the throughput properties
+ * if they were calculated already within last
+ * [EMAIL PROTECTED] IoSessionConfig#getThroughputCalculationInterval()
calculation interval}.
+ * If, however, <tt>force</tt> is specified as <tt>true</tt>, this method
+ * updates the throughput properties immediately.
+ */
+ public void updateThroughput(boolean force) {
+ super.updateThroughput(System.currentTimeMillis(), force);
}
}
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java?rev=601695&r1=601694&r2=601695&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
Thu Dec 6 02:55:53 2007
@@ -255,7 +255,6 @@
long idleTime, IdleStatus status, long lastIoTime) {
if (idleTime > 0 && lastIoTime != 0
&& currentTime - lastIoTime >= idleTime) {
- session.increaseIdleCount(status, currentTime);
session.getFilterChain().fireSessionIdle(status);
}
}
@@ -281,6 +280,6 @@
private static void updateThroughput(
AbstractIoSession session, long currentTime) {
- session.updateThroughput(currentTime);
+ session.updateThroughput(currentTime, false);
}
}