All Downloads are FREE. Search and download functionalities are using the official Maven repository.

IceInternal.ThreadObserverI Maven / Gradle / Ivy

Go to download

Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms

The newest version!
//
// 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;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy