source: xssim/trunk/src/test/rewolucja/energy/profile/DataCenterPowerProfile.java @ 104

Revision 104, 1.4 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package test.rewolucja.energy.profile;
2
3import java.util.Arrays;
4import java.util.List;
5
6import schedframe.resources.PowerState;
7import test.rewolucja.energy.extension.EnergyExtension;
8import test.rewolucja.extensions.ExtensionType;
9import test.rewolucja.resources.ResourceStatus;
10import test.rewolucja.resources.physical.base.ComputingResource;
11import test.rewolucja.resources.physical.implementation.DataCenter;
12
13public class DataCenterPowerProfile extends AbstractPowerProfile {
14
15        protected DataCenter dataCenter;
16       
17        DataCenterPowerProfile(){
18                powerState = PowerState.ON;
19        }
20       
21        public void visit(DataCenter dataCent){
22                dataCenter = dataCent;
23                energyExtension = (EnergyExtension) dataCenter.getExtensionList().getExtension(ExtensionType.ENERGY_EXTENSION);
24        }
25
26        public boolean setPowerState(PowerState state) {
27                if(!supportPowerState(state))
28                        return false;
29                powerState = state;
30                if(dataCenter.getChildren() != null)
31                {
32                        for(ComputingResource child: dataCenter.getChildren()){
33                                child.getPowerInterface().setPowerState(state);
34                        }
35                }
36                return true;
37        }
38
39        public double getPowerConsumption(PowerState state) {
40                throw new RuntimeException("not implememted");
41        }
42       
43        public boolean supportPowerState(PowerState state) {
44                switch(state){
45                        case ON:
46                                return true;
47                        case OFF:
48                                return true;
49                        default: return false;
50                }
51        }
52
53        public List<PowerState> getSupportedPowerStates() {
54                return Arrays.asList(new PowerState[]{PowerState.ON, PowerState.OFF});
55        }
56
57
58}
Note: See TracBrowser for help on using the repository browser.