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

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