1 | package schedframe.scheduling; |
---|
2 | |
---|
3 | import java.util.ArrayList; |
---|
4 | import java.util.HashMap; |
---|
5 | import java.util.Iterator; |
---|
6 | import java.util.List; |
---|
7 | import java.util.Map; |
---|
8 | |
---|
9 | import schedframe.resources.StandardResourceType; |
---|
10 | import schedframe.resources.computing.description.ExecutingResourceDescription; |
---|
11 | import schedframe.resources.providers.ResourceProvider; |
---|
12 | import schedframe.resources.units.AbstractResourceUnit; |
---|
13 | import schedframe.resources.units.ResourceUnit; |
---|
14 | import schedframe.resources.units.ResourceUnitName; |
---|
15 | import schedframe.scheduling.queue.QueueDescription; |
---|
16 | |
---|
17 | public class SchedulerDescription extends ExecutingResourceDescription{ |
---|
18 | |
---|
19 | protected ResourceProvider provider; |
---|
20 | protected List<QueueDescription> accesQueues; |
---|
21 | |
---|
22 | public SchedulerDescription(ResourceProvider provider){ |
---|
23 | super(StandardResourceType.ResourceProvider); |
---|
24 | this.id = provider.getProviderId(); |
---|
25 | this.provider = provider; |
---|
26 | this.resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(); |
---|
27 | this.accesQueues = new ArrayList<QueueDescription>(1); |
---|
28 | } |
---|
29 | |
---|
30 | public SchedulerDescription(String id){ |
---|
31 | super(StandardResourceType.ResourceProvider); |
---|
32 | this.id = id; |
---|
33 | this.provider = new ResourceProvider(id, null, null, null); |
---|
34 | this.resUnits = new HashMap<ResourceUnitName, List<ResourceUnit>>(); |
---|
35 | this.accesQueues = new ArrayList<QueueDescription>(1); |
---|
36 | } |
---|
37 | |
---|
38 | public void addQueueDescription(QueueDescription queue){ |
---|
39 | accesQueues.add(queue); |
---|
40 | } |
---|
41 | |
---|
42 | public void addQueuesDescription(List<QueueDescription> queue){ |
---|
43 | accesQueues.addAll(queue); |
---|
44 | } |
---|
45 | |
---|
46 | public List<QueueDescription> getAvailableQueues(){ |
---|
47 | return this.accesQueues; |
---|
48 | } |
---|
49 | |
---|
50 | public void addResourceUnit(Map<ResourceUnitName, ResourceUnit> allUnits){ |
---|
51 | Iterator<ResourceUnit> itr = allUnits.values().iterator(); |
---|
52 | while(itr.hasNext()){ |
---|
53 | addResourceUnit(itr.next()); |
---|
54 | } |
---|
55 | } |
---|
56 | |
---|
57 | public void addResourceUnitList(Map<ResourceUnitName, List<ResourceUnit>> allUnits){ |
---|
58 | this.resUnits.putAll(allUnits); |
---|
59 | } |
---|
60 | |
---|
61 | public ResourceProvider getProvider() { |
---|
62 | return provider; |
---|
63 | } |
---|
64 | } |
---|