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

ru.taskurotta.service.metrics.Metric Maven / Gradle / Ivy

package ru.taskurotta.service.metrics;

import ru.taskurotta.service.metrics.handler.DataListener;

import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

/**
 * User: dimadin
 * Date: 12.09.13 17:20
 */
public class Metric {

    private final ConcurrentMap dataSets = new ConcurrentHashMap<>();
    private String name;

    public Metric(String name) {
        this.name = name;
    }

    public void mark(String dataSetName, long period) {

        CheckPoint dataSetCheckpoint = dataSets.get(dataSetName);
        if (dataSetCheckpoint == null) {

            synchronized (dataSets) {

                dataSetCheckpoint = dataSets.get(dataSetName);
                if (dataSetCheckpoint == null) {
                    dataSetCheckpoint = new CheckPoint();
                    dataSets.put(dataSetName, dataSetCheckpoint);
                }
            }
        }

        dataSetCheckpoint.mark(period);

    }

    public void dump(DataListener dataListener) {
        for (String dsName: dataSets.keySet()) {
            CheckPoint chp = dataSets.get(dsName);
            chp.dumpCurrentState(dataListener, name, dsName);
        }
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy