package example.energy; import test.rewolucja.energy.EnergyEvent; import test.rewolucja.energy.plugin.EnergyEstimationPluginInterface; import test.rewolucja.resources.physical.base.ComputingResource; import test.rewolucja.scheduling.JobRegistryInterface; import test.rewolucja.scheduling.PluginConfiguration; public abstract class BaseEnergyEstimationPlugin implements EnergyEstimationPluginInterface { @Override public PluginConfiguration getConfiguration() { // TODO Auto-generated method stub return null; } @Override public double estimatePowerConsumption(EnergyEvent event, JobRegistryInterface jobRegistry, ComputingResource resource) { double power = 0; if(resource.getChildren() == null) return resource.getPowerInterface().getPowerConsumption(resource.getPowerInterface().getPowerState()); for(ComputingResource child:resource.getChildren()){ power = power + child.getPowerInterface().getRecentPowerUsage().getValue(); } return power; } @Override public double estimateEnergyDissipation(EnergyEvent event, JobRegistryInterface jobRegistry, ComputingResource resourceManager) { throw new RuntimeException("Not implemented."); } @Override public double estimateTemperature(EnergyEvent event, JobRegistryInterface jobRegistry, ComputingResource resourceManager) { throw new RuntimeException("Not implemented."); } }