Ignore:
Timestamp:
06/06/14 10:48:32 (11 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/LocalResourceManager.java

    r1374 r1377  
    2929import schedframe.resources.units.StandardResourceUnitName; 
    3030import schedframe.scheduling.Scheduler; 
    31 import schedframe.scheduling.plugin.local.ResourceAllocation; 
    3231 
    3332 
     
    297296        } 
    298297         
    299         public boolean allocateResources(Map<ResourceUnitName, ResourceUnit> resources) { 
     298 
     299        public boolean allocateResources(Map<ResourceUnitName, ResourceUnit> resources, boolean exclusive) { 
    300300                 
    301301                if (resources == null) { 
     
    303303                } 
    304304                 
    305                 for(ResourceUnitName resUnitName: resources.keySet()){ 
    306                         ResourceUnit resUnit = resources.get(resUnitName); 
    307                         resUnit.getProvisioner().setState(ResourceUnitState.BUSY); 
    308                 } 
    309                 return true; 
    310         } 
    311  
    312  
    313         public void freeResources(Map<ResourceUnitName, ResourceUnit> resources) { 
     305                if(exclusive){ 
     306                        for(ResourceUnitName resUnitName: resources.keySet()){ 
     307                                ResourceUnit resUnit = resources.get(resUnitName); 
     308                                if(resUnit.getName().getName().equals(StandardResourceUnitName.PE.getName())){ 
     309                                        ProcessingElements pe = (ProcessingElements)resUnit; 
     310                                        for(ComputingResource cr: pe){ 
     311                                                if(cr.getStatus().equals(ResourceStatus.BUSY)){ 
     312                                                        return false; 
     313                                                } 
     314                                        } 
     315                                } 
     316                                resUnit.getProvisioner().setState(ResourceUnitState.BUSY); 
     317                        } 
     318                         
     319                        return true; 
     320                } else { 
     321                        for(ResourceUnitName resUnitName: resources.keySet()){ 
     322                                ResourceUnit resUnit = resources.get(resUnitName); 
     323                                resUnit.getProvisioner().setState(ResourceUnitState.BUSY); 
     324                        } 
     325                        return true;     
     326                } 
     327        } 
     328 
     329        public void freeResources(Map<ResourceUnitName, ResourceUnit> resources, boolean exclusive) { 
    314330                 
    315331                for(ResourceUnitName resUnitName: resources.keySet()){ 
Note: See TracChangeset for help on using the changeset viewer.