package org.lucci.madhoc.simulation.monitor.sensor;

import org.lucci.madhoc.simulation.MadhocSimulation;
import org.lucci.madhoc.simulation.measure.NaturalNumberSensor;
import org.lucci.madhoc.simulation.measure.Unit;
import org.lucci.madhoc.simulation.projection.Projection;

/*
 * Created on Jul 6, 2004
 */

/**
 * @author luc.hogie
 */
public class IterationDurationMeasure extends NaturalNumberSensor
{

    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.Measure#getName()
     */
    public String getName()
    {
        return "iteration duration";
    }

    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.measure.NumericalMeasure#getUnit()
     */
    public Unit getUnit()
    {
        return Unit.SECOND;
    }

    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.measure.Measure#takeNewValue(org.lucci.madhoc.simulation.Simulation)
     */
    public Double takeNewDoubleValue(Projection projection)
    {
        MadhocSimulation simulation = (MadhocSimulation) projection.getNetwork().getSimulation();

        double f = 1 / simulation.getIterationFrequency();
        return f < 0 ? null : f;
    }
}