package example.energy; import schedframe.resources.ResourceStatus; import schedframe.resources.computing.ComputingResource; import schedframe.resources.computing.Processor; import schedframe.resources.computing.profiles.energy.EnergyEvent; import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName; import schedframe.scheduling.manager.tasks.JobRegistry; public class CPUEnergyEstimationPlugin extends BaseEnergyEstimationPlugin { @Override public double estimatePowerConsumption(EnergyEvent event, JobRegistry jobRegistry, ComputingResource resource) { Processor cpu = (Processor)resource; if(resource.getPowerInterface().getPowerState().getName().equals(StandardPowerStateName.OFF)) return 0; if(resource.getStatus() == ResourceStatus.BUSY) try { return cpu.getPowerInterface().getPowerConsumption(cpu.getPowerInterface().getPState()); } catch (NoSuchFieldException e) { return 0; } else return 1; } public String getName() { return getClass().getName(); } }