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

org.glassfish.pfl.tf.timer.impl.StatsEventHandlerImpl Maven / Gradle / Ivy

There is a newer version: 4.0.4
Show newest version
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.glassfish.pfl.tf.timer.impl ;

import java.util.Stack ;
import org.glassfish.pfl.tf.timer.spi.StatisticsAccumulator;
import org.glassfish.pfl.tf.timer.spi.TimerEvent;
import org.glassfish.pfl.tf.timer.spi.TimerFactory;

// This is a single threaded version of the stats event handler.  It will not
// work correctly if multiple threads are generating timer events!
public class StatsEventHandlerImpl extends StatsEventHandlerBase {
    private Stack teStack ; 

    StatsEventHandlerImpl( TimerFactory factory, String name ) {
	super( factory, name ) ;
	teStack = new Stack() ;
    }

    public void clear() {
	super.clear() ;
	while (!teStack.empty())
	    teStack.pop() ;
    }

    protected void recordDuration( int id, long duration ) {
	StatisticsAccumulator acc = saList.get( id ) ;
	acc.sample( duration ) ;
    }

    public void notify( TimerEvent event ) {
	notify( teStack, event ) ;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy