source: xssim/trunk/src/test/rewolucja/energy/profile/PowerProfileFactory.java @ 176

Revision 176, 2.5 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 test.rewolucja.energy.extension.EnergyExtension;
4import test.rewolucja.energy.profile.implementation.CPU_A_PowerProfile;
5import test.rewolucja.energy.profile.implementation.ComputingNodePowerProfile;
6import test.rewolucja.energy.profile.implementation.DataCenterPowerProfile;
7import test.rewolucja.resources.Category;
8import test.rewolucja.resources.ResourceType;
9import test.rewolucja.resources.physical.base.ComputingResource;
10
11public class PowerProfileFactory {
12       
13        /*public static PowerInterface createPowerProfile(ComputingResource resource, EnergyExtension ee){
14
15                PowerInterface powerProfile;
16                if(true){
17                        String cpuPowerClass = null;
18                        if(cpuPowerClass != null) {
19                                powerProfile = (PowerInterface) InstanceFactory.createInstance(
20                                                                                                                cpuPowerClass, PowerInterface.class);
21                                if(powerProfile == null){
22                                        powerProfile = new ResourcePowerProfile(ee);
23                                        //log.info("Using default cpu power profile: " + CPUPowerProfile.class.getName());
24                                       
25                                } else {
26                                        String resourcePPconfig = null;
27                                        //resourcePPconfig = getPropertyValue(cpuHostParam, GssimConstants.RESOURCE_CONFIG_POWER_PROFILE_CONFIG);
28                                        powerProfile.init(resourcePPconfig);
29                                }
30                               
31                        } else {
32                                switch(resource.getType()){
33                                        case COMPUTING_GRID: powerProfile = null;
34                                        case DATA_CENTER: powerProfile = new DataCenterPowerProfile(); break;
35                                        case COMPUTING_NODE: powerProfile = new ComputingNodePowerProfile(); break;
36                                        case CPU: {
37                                                //CPU cpu = (CPU)resource;
38                                                //powerProfile = CPUPowerProfileFactory.createCPUPowerProfile(cpu.getParent().getCategory(), ee); break;
39                                                powerProfile = new CPU_A_PowerProfile(); break;
40                                        }
41                                default:
42                                        throw new IllegalArgumentException("ResourceType " + resource.getType() + " is not supported.");
43                                }
44                        //}
45                }
46                return powerProfile;
47        }*/
48       
49        public static PowerInterface createPowerProfile(ResourceType resourceType, Category category){
50
51                PowerInterface powerProfile;
52
53                switch(resourceType){
54                        case COMPUTING_GRID: powerProfile = null;break;
55                        case DATA_CENTER: powerProfile = new DataCenterPowerProfile(); break;
56                        case COMPUTING_NODE: powerProfile = new ComputingNodePowerProfile(); break;
57                        case CPU: {
58                                //CPU cpu = (CPU)resource;
59                                powerProfile = CPUPowerProfileFactory.createCPUPowerProfile(category); break;
60                                //powerProfile = new CPUPowerProfile(); break;
61                        }
62                        default:
63                                throw new IllegalArgumentException("ResourceType " + resourceType + " is not supported.");
64                }
65
66                return powerProfile;
67        }
68}
Note: See TracBrowser for help on using the repository browser.