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
Line 
1package example.energy;
2
3import schedframe.Parameters;
4import schedframe.PluginConfiguration;
5import schedframe.resources.computing.profiles.energy.ResourceEvent;
6import schedframe.resources.computing.profiles.energy.ResourceEventType;
7import schedframe.resources.computing.profiles.energy.power.plugin.EnergyEstimationPlugin;
8import schedframe.resources.computing.profiles.energy.power.plugin.EnergyPluginConfiguration;
9import schedframe.resources.devices.PhysicalResource;
10import schedframe.scheduling.manager.tasks.JobRegistry;
11import schemas.StringValueWithUnit;
12
13public abstract class BaseEnergyEstimationPlugin implements EnergyEstimationPlugin {
14
15         EnergyPluginConfiguration plugConf;
16         
17        @Override
18        public PluginConfiguration getConfiguration() {
19                return plugConf;
20        }
21       
22        @Override
23        public double estimateAirflow(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
24                throw new RuntimeException("Not implemented.");
25        }
26
27        @Override
28        public double estimateTemperature(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource  resource) {
29                throw new RuntimeException("Not implemented.");
30        }
31       
32        public void init(Parameters parameters) {
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                }
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                }
53        }
54
55        public String getName() {
56                return getClass().getName();
57        }
58}
Note: See TracBrowser for help on using the repository browser.