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 MessageTransferDuration extends NaturalNumberSensor
{
    /* (non-Javadoc)
     * @see org.lucci.madhoc.simulation.Measure#getName()
     */
    public String getName()
    {
        return "message transfer 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();

        if (simulation.getMessageTransferDuration() == -1)
        {
            return null;
        }
        else
        {
            return simulation.getMessageTransferDuration() / 1000d;
        }
    }

}