source: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ResourceFactory.java @ 1095

Revision 1095, 3.2 KB checked in by wojtekp, 12 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources.computing;
2
3import schedframe.resources.CoolEmAllResourceType;
4import schedframe.resources.StandardResourceType;
5import schedframe.resources.computing.description.ComputingResourceDescription;
6import schedframe.resources.computing.recs.ComputeBox1;
7import schedframe.resources.computing.recs.Node;
8import schedframe.resources.computing.recs.NodeGroup;
9import schedframe.scheduling.Scheduler;
10import schedframe.scheduling.manager.resources.ManagedResources;
11import schedframe.scheduling.plugin.SchedulingPlugin;
12import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin;
13import schedframe.scheduling.policy.AbstractManagementSystem;
14import schedframe.scheduling.policy.global.GridBroker;
15import schedframe.scheduling.policy.local.LocalManagementSystem;
16import schedframe.scheduling.queue.TaskQueueList;
17import simulator.DCWormsConstants;
18
19
20public class ResourceFactory {
21
22        public static ComputingResource createResource(ComputingResourceDescription resDesc){
23               
24                if (resDesc.getType().equals(StandardResourceType.DataCenter))
25                        return new DataCenter(resDesc);
26                else if (resDesc.getType().equals(StandardResourceType.Rack))
27                        return new Rack(resDesc);
28                else if (resDesc.getType().equals(StandardResourceType.ComputingNode))
29                        return new ComputingNode(resDesc);
30                else if (resDesc.getType().equals(StandardResourceType.Processor))
31                        return new Processor(resDesc);
32                else if (resDesc.getType().equals(StandardResourceType.Core))
33                        return new Core(resDesc);
34                else if (resDesc.getType().equals(CoolEmAllResourceType.ComputeBox1))
35                        return new ComputeBox1(resDesc);
36                else if (resDesc.getType().equals(CoolEmAllResourceType.NodeGroup))
37                        return new NodeGroup(resDesc);
38                else if (resDesc.getType().equals(CoolEmAllResourceType.Node))
39                        return new Node(resDesc);
40                else if (resDesc.getType().equals(CoolEmAllResourceType.Processor))
41                        return new Processor(resDesc);
42                else if (resDesc.getType().equals(CoolEmAllResourceType.Core))
43                        return new Core(resDesc);
44                else
45                        return new ComputingResource(resDesc);
46       
47                /*switch(resDesc.getType()){
48                        case Grid: return new Grid(resDesc);
49                        case DataCenter: return new DataCenter(resDesc);
50                        case ComputingNode: return new ComputingNode(resDesc);
51                        case Processor: return new Processor(resDesc);
52                default:
53                        return new ComputingResource(resDesc);
54                }*/
55        }
56
57        public static Scheduler createScheduler(StandardResourceType type, String id, SchedulingPlugin schedulingPlugin, ExecutionTimeEstimationPlugin execTimeEstimationPlugin, TaskQueueList queues, ManagedResources managedResources) throws Exception{
58                AbstractManagementSystem ms;
59                switch(type){
60                        case GS: {
61                                ms = new GridBroker("grid",
62                                                schedulingPlugin, execTimeEstimationPlugin, queues);
63                                return new Scheduler(ms, type, managedResources);
64                        }
65                        case LS: {
66                                ms = new LocalManagementSystem(id, DCWormsConstants.MANAGEMENT_SYSTEM,
67                                                schedulingPlugin, execTimeEstimationPlugin, queues);
68                                return new Scheduler(ms, type, managedResources);
69                        }
70
71                default:{
72                                ms = new LocalManagementSystem(id, DCWormsConstants.MANAGEMENT_SYSTEM,
73                                                schedulingPlugin, execTimeEstimationPlugin, queues);
74                                return new Scheduler(ms, type, managedResources);
75                        }
76                }
77        }
78}
79
Note: See TracBrowser for help on using the repository browser.