Ignore:
Timestamp:
01/15/13 10:12:20 (12 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/trunk/src/test/EventManager.java

    r776 r780  
    33import gridsim.GridSimCore; 
    44 
     5import java.util.ArrayList; 
     6import java.util.LinkedList; 
     7import java.util.List; 
    58import java.util.Properties; 
    69 
     10import schedframe.ResourceController; 
     11import schedframe.events.ResourceEventCommand; 
     12import schedframe.events.scheduling.EventReason; 
    713import schedframe.exceptions.ModuleException; 
     14import schedframe.resources.computing.ComputingResource; 
     15import schedframe.resources.computing.profiles.energy.EnergyEvent; 
     16import schedframe.resources.computing.profiles.energy.EnergyEventType; 
     17import schedframe.scheduling.Scheduler; 
    818import schedframe.scheduling.plugin.grid.Module; 
    919import schedframe.scheduling.plugin.grid.ModuleType; 
     
    1121public class EventManager extends GridSimCore implements Module{ 
    1222 
     23        protected ResourceController resourceController; 
     24         
    1325        public EventManager(String name) throws Exception { 
    1426                super(name, 1); 
     
    3042        } 
    3143 
     44        public void sendToAllSchedulers(double delay, int tag, Object data){ 
     45                List<Scheduler> allSchedulers =  new ArrayList<Scheduler>(); 
     46                if (resourceController.getScheduler().getChildren() != null) { 
     47                        LinkedList<Scheduler> toExamine = new LinkedList<Scheduler>(); 
     48                        toExamine.push(resourceController.getScheduler()); 
     49                        allSchedulers.add(resourceController.getScheduler()); 
     50 
     51                        while (!toExamine.isEmpty()) { 
     52                                Scheduler scheduler = toExamine.pop(); 
     53                                List<Scheduler> schedulers = scheduler.getChildren(); 
     54                                int numberOfSched = schedulers.size(); 
     55                                for (int i = 0; i < numberOfSched; i++) { 
     56                                        Scheduler schedulerChild = schedulers.get(i); 
     57                                        toExamine.addLast(schedulerChild); 
     58                                        allSchedulers.add(schedulerChild); 
     59                                } 
     60                        } 
     61                } 
     62                 
     63                for(Scheduler scheduler: allSchedulers){ 
     64                        super.send(scheduler.get_id(), delay, tag, data); 
     65                } 
     66        } 
     67         
     68        public void sendToAllResources(double delay, int tag, Object data){ 
     69                List<ComputingResource> allComputingResources = new ArrayList<ComputingResource>(); 
     70 
     71                if (resourceController.getComputingResources() != null) { 
     72                        LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>(); 
     73                        for(ComputingResource compRes: resourceController.getComputingResources()){ 
     74                                toExamine.push(compRes); 
     75                                allComputingResources.add(compRes); 
     76                        } 
     77 
     78                        while (!toExamine.isEmpty()) { 
     79                                ComputingResource resource = toExamine.pop(); 
     80                                List<ComputingResource> resources = resource.getChildren(); 
     81                                int numberOfRes = resources.size(); 
     82                                for (int i = 0; i < numberOfRes; i++) { 
     83                                        ComputingResource resourceChild = resources.get(i); 
     84                                        toExamine.addLast(resourceChild); 
     85                                        allComputingResources.add(resourceChild); 
     86                                } 
     87                        } 
     88                } 
     89                 
     90                ResourceEventCommand rec; 
     91                EnergyEvent event; 
     92                for(ComputingResource compRes: allComputingResources){ 
     93                        rec = new ResourceEventCommand(compRes); 
     94                        event = new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, "Resource controller"); 
     95                        event.setReason(EventReason.SIM_INIT); 
     96                        rec.execute(event); 
     97                        //super.send(scheduler.get_id(), delay, tag, data); 
     98                } 
     99 
     100        } 
     101         
     102        public void sendTo(List<String> ids){ 
     103                 
     104        } 
     105         
    32106        public void dispose() throws ModuleException { 
    33107        } 
Note: See TracChangeset for help on using the changeset viewer.