summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ThreadObserverI.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-10-12 11:34:53 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-10-12 11:34:53 +0200
commit23c1e3b603a9d902593ffe9f99562fcda3af1589 (patch)
tree60ea7cdc0da5a9676ca12350ac82b069cc86eb5e /java/src/IceInternal/ThreadObserverI.java
parent.NET demo project updates (diff)
downloadice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.bz2
ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.xz
ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.zip
Added support for Glacier2 MX and fixed ICE-4880
Diffstat (limited to 'java/src/IceInternal/ThreadObserverI.java')
-rw-r--r--java/src/IceInternal/ThreadObserverI.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/java/src/IceInternal/ThreadObserverI.java b/java/src/IceInternal/ThreadObserverI.java
new file mode 100644
index 00000000000..b0a8248bbdc
--- /dev/null
+++ b/java/src/IceInternal/ThreadObserverI.java
@@ -0,0 +1,60 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package IceInternal;
+
+public class ThreadObserverI extends IceMX.Observer<IceMX.ThreadMetrics> implements Ice.Instrumentation.ThreadObserver
+{
+ public void
+ stateChanged(final Ice.Instrumentation.ThreadState oldState, final Ice.Instrumentation.ThreadState newState)
+ {
+ _oldState = oldState;
+ _newState = newState;
+ forEach(_threadStateUpdate);
+ }
+
+ private MetricsUpdate<IceMX.ThreadMetrics> _threadStateUpdate = new MetricsUpdate<IceMX.ThreadMetrics>()
+ {
+ public void
+ update(IceMX.ThreadMetrics v)
+ {
+ switch(_oldState)
+ {
+ case ThreadStateInUseForIO:
+ --v.inUseForIO;
+ break;
+ case ThreadStateInUseForUser:
+ --v.inUseForUser;
+ break;
+ case ThreadStateInUseForOther:
+ --v.inUseForOther;
+ break;
+ default:
+ break;
+ }
+ switch(_newState)
+ {
+ case ThreadStateInUseForIO:
+ ++v.inUseForIO;
+ break;
+ case ThreadStateInUseForUser:
+ ++v.inUseForUser;
+ break;
+ case ThreadStateInUseForOther:
+ ++v.inUseForOther;
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ private Ice.Instrumentation.ThreadState _oldState;
+ private Ice.Instrumentation.ThreadState _newState;
+} \ No newline at end of file