source: DCWoRMS/branches/coolemall/src/example/energy/DefaultEnergyEstimationPlugin.java @ 1415

Revision 1415, 1.2 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package example.energy;
2
3import schedframe.resources.computing.ComputingResource;
4import schedframe.resources.computing.profiles.energy.ResourceEvent;
5import schedframe.resources.devices.PhysicalResource;
6import schedframe.scheduling.manager.tasks.JobRegistry;
7
8
9public class DefaultEnergyEstimationPlugin extends BaseEnergyEstimationPlugin{
10
11
12        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
13                double powerConsumption = 0;
14                try {
15                        powerConsumption = resource.getPowerInterface().getPowerConsumption(resource.getPowerInterface().getPowerState());
16                } catch (NoSuchFieldException e) {
17                        powerConsumption = 0;
18                }
19               
20                ComputingResource cr = (ComputingResource) resource;
21                powerConsumption = powerConsumption + getChildrenPowerConsumption(cr);
22
23                return powerConsumption;
24        }
25       
26        private double getChildrenPowerConsumption(ComputingResource resource){
27                double powerConsumption = 0;
28                for(ComputingResource child:resource.getChildren()){
29                        try {
30                                powerConsumption = powerConsumption + child.getPowerInterface().getRecentPowerUsage().getValue();
31                        } catch (Exception e) {
32                                powerConsumption = powerConsumption + getChildrenPowerConsumption(child);
33                        }
34                }
35                return powerConsumption;
36        }
37}
Note: See TracBrowser for help on using the repository browser.