source: DCWoRMS/branches/coolemall/src/example/energy/BaseEnergyEstimationPlugin.java @ 1448

Revision 1448, 1.9 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
RevLine 
[477]1package example.energy;
2
3import schedframe.Parameters;
4import schedframe.PluginConfiguration;
[1415]5import schedframe.resources.computing.profiles.energy.ResourceEvent;
[1448]6import schedframe.resources.computing.profiles.energy.ResourceEventType;
[477]7import schedframe.resources.computing.profiles.energy.power.plugin.EnergyEstimationPlugin;
[1415]8import schedframe.resources.computing.profiles.energy.power.plugin.EnergyPluginConfiguration;
[1207]9import schedframe.resources.devices.PhysicalResource;
[477]10import schedframe.scheduling.manager.tasks.JobRegistry;
[1415]11import schemas.StringValueWithUnit;
[477]12
13public abstract class BaseEnergyEstimationPlugin implements EnergyEstimationPlugin {
14
[1415]15         EnergyPluginConfiguration plugConf;
16         
[477]17        @Override
18        public PluginConfiguration getConfiguration() {
[1415]19                return plugConf;
[477]20        }
21       
22        @Override
[1415]23        public double estimateAirflow(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
[477]24                throw new RuntimeException("Not implemented.");
25        }
26
27        @Override
[1415]28        public double estimateTemperature(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource  resource) {
[477]29                throw new RuntimeException("Not implemented.");
30        }
31       
32        public void init(Parameters parameters) {
[1415]33                plugConf = new EnergyPluginConfiguration();
34                try{
35                        StringValueWithUnit powerCapLevel = parameters.get("powerCapLevel").get(0);
36                        plugConf.setPowerCapLevel(Double.valueOf(powerCapLevel.getContent()).doubleValue());
37                } catch(Exception e){
38                        plugConf.setPowerCapLevel(-1);
39                }
40                try{
41                        StringValueWithUnit powerFloorLevel = parameters.get("powerFloorLevel").get(0);
42                        plugConf.setPowerFloorLevel(Double.valueOf(powerFloorLevel.getContent()).doubleValue());
43                } catch(Exception e){
44                        plugConf.setPowerFloorLevel(-1);
45                }
[1448]46
47                try{
48                        StringValueWithUnit freq = parameters.get("frequency").get(0);
49                        plugConf.addServedEvent(ResourceEventType.TIMER, Double.valueOf(freq.getContent()).intValue());
50                } catch(Exception e){
51                       
52                }
[477]53        }
54
55        public String getName() {
56                return getClass().getName();
57        }
58}
Note: See TracBrowser for help on using the repository browser.