IceInternal.ThreadObserverI Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ice-compat Show documentation
Show all versions of ice-compat Show documentation
Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//
package IceInternal;
public class ThreadObserverI
extends IceMX.ObserverWithDelegate
implements Ice.Instrumentation.ThreadObserver
{
@Override
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 _threadStateUpdate = new MetricsUpdate()
{
@Override
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;
}