[477] | 1 | package schedframe.scheduling; |
---|
| 2 | |
---|
[1396] | 3 | import java.util.LinkedList; |
---|
| 4 | import java.util.List; |
---|
[477] | 5 | import java.util.Map; |
---|
[1362] | 6 | import java.util.Set; |
---|
[1415] | 7 | import java.util.TreeSet; |
---|
[477] | 8 | |
---|
[1396] | 9 | import schedframe.resources.computing.ComputingResource; |
---|
| 10 | import schedframe.resources.units.ProcessingElements; |
---|
[477] | 11 | import schedframe.resources.units.ResourceUnit; |
---|
| 12 | import schedframe.resources.units.ResourceUnitName; |
---|
[1396] | 13 | import schedframe.resources.units.StandardResourceUnitName; |
---|
[477] | 14 | |
---|
[1396] | 15 | public class ResourceItem { |
---|
[477] | 16 | |
---|
| 17 | protected Map<ResourceUnitName, ResourceUnit> usedResources; |
---|
[1415] | 18 | protected Set<String> resourceNames; |
---|
[1362] | 19 | |
---|
[1396] | 20 | public ResourceItem(Map<ResourceUnitName, ResourceUnit> usedResources){ |
---|
[1362] | 21 | this.usedResources = usedResources; |
---|
[1415] | 22 | this.resourceNames = new TreeSet<String>(); |
---|
[1396] | 23 | saveResourceNames(); |
---|
[477] | 24 | } |
---|
| 25 | |
---|
| 26 | public Map<ResourceUnitName, ResourceUnit> getResourceUnits(){ |
---|
| 27 | return usedResources; |
---|
| 28 | } |
---|
| 29 | |
---|
[1396] | 30 | public Set<String> getResourceNames(){ |
---|
[1415] | 31 | return resourceNames; |
---|
[477] | 32 | } |
---|
[1362] | 33 | |
---|
[1396] | 34 | private void saveResourceNames(){ |
---|
| 35 | ProcessingElements pes = (ProcessingElements) usedResources.get(StandardResourceUnitName.PE); |
---|
| 36 | for (ComputingResource resource : pes) { |
---|
| 37 | |
---|
| 38 | LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>(); |
---|
| 39 | toExamine.push(resource); |
---|
| 40 | |
---|
| 41 | while (!toExamine.isEmpty()) { |
---|
| 42 | ComputingResource compResource = toExamine.pop(); |
---|
| 43 | List<ComputingResource> resources = compResource.getChildren(); |
---|
| 44 | if(resources.isEmpty()){ |
---|
[1415] | 45 | if(!resourceNames.contains(compResource.getFullName())){ |
---|
| 46 | resourceNames.add(compResource.getFullName()); |
---|
[1396] | 47 | } |
---|
| 48 | } else { |
---|
| 49 | for (int i = 0; i < resources.size(); i++) { |
---|
| 50 | ComputingResource resourceChild = resources.get(i); |
---|
| 51 | toExamine.addLast(resourceChild); |
---|
| 52 | } |
---|
| 53 | } |
---|
| 54 | } |
---|
| 55 | } |
---|
[1317] | 56 | } |
---|
[477] | 57 | } |
---|