blob: 44471d34c8dd6431199d41c0bd554699f8f0621a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
// **********************************************************************
//
// Copyright (c) 2003-2014 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.ObserverWithDelegate<IceMX.ThreadMetrics, Ice.Instrumentation.ThreadObserver>
implements Ice.Instrumentation.ThreadObserver
{
public void
stateChanged(final Ice.Instrumentation.ThreadState oldState, final Ice.Instrumentation.ThreadState newState)
{
_oldState = oldState;
_newState = newState;
forEach(_threadStateUpdate);
if(_delegate != null)
{
_delegate.stateChanged(oldState, newState);
}
}
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;
}
|