Ignore:
Timestamp:
09/15/14 17:00:03 (11 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceItem.java

    r1423 r1434  
    1717        protected Map<ResourceUnitName, ResourceUnit> usedResources; 
    1818        protected Set<String> resourceNames; 
     19        protected Set<ComputingResource> compResource; 
    1920 
    2021        public ResourceItem(Map<ResourceUnitName, ResourceUnit> usedResources){ 
    2122                this.usedResources = usedResources; 
    2223                this.resourceNames = saveResourceNames(); 
     24                this.compResource = saveResources(); 
    2325        } 
    2426         
     
    2931        public Set<String> getResourceNames(){ 
    3032                return resourceNames; 
     33        } 
     34         
     35        public Set<ComputingResource> getResources(){ 
     36                return compResource; 
    3137        } 
    3238         
     
    5763                return resourceNames; 
    5864        } 
     65         
     66        private Set<ComputingResource> saveResources(){ 
     67                Set<ComputingResource> compResources; 
     68                ProcessingElements pes = (ProcessingElements) usedResources.get(StandardResourceUnitName.PE); 
     69                compResources = new HashSet<ComputingResource>(pes.size(), 1); 
     70                for (ComputingResource resource: pes) { 
     71 
     72                        LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>(); 
     73                        toExamine.push(resource); 
     74 
     75                        while (!toExamine.isEmpty()) { 
     76                                ComputingResource compResource = toExamine.pop(); 
     77                                List<ComputingResource> resources = compResource.getChildren(); 
     78                                if(resources.isEmpty()){ 
     79                                        if(!compResources.contains(compResource)){ 
     80                                                compResources.add(compResource); 
     81                                        } 
     82                                } else { 
     83                                        for (int i = 0; i < resources.size(); i++) { 
     84                                                ComputingResource resourceChild = resources.get(i); 
     85                                                toExamine.addLast(resourceChild); 
     86                                        } 
     87                                } 
     88                        } 
     89                } 
     90                return compResources; 
     91        } 
    5992} 
Note: See TracChangeset for help on using the changeset viewer.