package org.lucci.madhoc.network.cpu;
import java.util.Random;
import org.lucci.madhoc.network.ComputerType;
import org.lucci.madhoc.network.ComputerUnit;
public class ComputationalUnit extends ComputerUnit
{
private double frequency = 0.5;
private double ramSize = 0.5;
public double getFrequency()
{
return frequency;
}
public void setFrequency(double frequency)
{
if (0 <= frequency && frequency <= 1)
{
this.frequency = frequency;
}
else
{
throw new IllegalArgumentException();
}
}
public double getRamSize()
{
return ramSize;
}
public void setRamSize(double ramSize)
{
if (0 <= ramSize && ramSize <= 1)
{
this.ramSize = ramSize;
}
else
{
throw new IllegalArgumentException();
}
}
public double getOverallPerformance()
{
return 2 * getRamSize() * getFrequency();
}
public void configure() throws Throwable
{
Random random = getStation().getNetwork().getSimulation().getRandomNumberGenerator().getRandom();
setFrequency(random.nextDouble());
setRamSize(random.nextDouble());
}
}