Changeset 793 for DCWoRMS/trunk
- Timestamp:
- 01/18/13 16:49:16 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/trunk/src/test/EventManager.java
r780 r793 1 1 package test; 2 2 3 import eduni.simjava.Sim_event; 4 import eduni.simjava.Sim_system; 3 5 import gridsim.GridSimCore; 6 import gridsim.GridSimTags; 7 import gridsim.dcworms.DCWormsTags; 4 8 5 9 import java.util.ArrayList; … … 9 13 10 14 import schedframe.ResourceController; 15 import schedframe.events.Event; 11 16 import schedframe.events.ResourceEventCommand; 12 import schedframe.events.scheduling.EventReason;13 17 import schedframe.exceptions.ModuleException; 14 18 import schedframe.resources.computing.ComputingResource; 15 import schedframe.resources.computing.profiles.energy.EnergyEvent;16 import schedframe.resources.computing.profiles.energy.EnergyEventType;17 19 import schedframe.scheduling.Scheduler; 18 20 import schedframe.scheduling.plugin.grid.Module; … … 23 25 protected ResourceController resourceController; 24 26 25 public EventManager(String name ) throws Exception {27 public EventManager(String name, ResourceController resourceController) throws Exception { 26 28 super(name, 1); 29 this.resourceController = resourceController; 27 30 } 28 31 32 public void body() { 33 34 35 // Process events until END_OF_SIMULATION is received from the 36 // GridSimShutdown Entity 37 Sim_event ev = new Sim_event(); 38 sim_get_next(ev); 39 boolean run = true; 40 while (Sim_system.running() && run) { 41 // sim_get_next(ev); 42 // if the simulation finishes then exit the loop 43 if (ev.get_tag() == GridSimTags.END_OF_SIMULATION) { 44 // managemetnSystem_.setEndSimulation(); 45 run = false; 46 break; 47 } 48 49 // process the received event 50 processRequest(ev); 51 sim_get_next(ev); 52 } 53 } 54 55 protected void processRequest(Sim_event ev) { 56 switch (ev.get_tag()) { 57 58 case DCWormsTags.TO_COMP_RESOURCES: 59 sendToResources(ev); 60 break; 61 62 case DCWormsTags.TO_SCHEDULERS: 63 //super.send((Integer)ev.get_data(), 0, DCWormsTags.PHASE_CHANGED, null); 64 break; 65 66 default: 67 break; 68 } 69 } 70 29 71 public void send(String entityName, double delay, int tag, Object data){ 30 72 super.send(entityName, delay, tag, data); … … 61 103 } 62 104 105 63 106 for(Scheduler scheduler: allSchedulers){ 107 //sendInternal(delay, DCWormsTags.TO_SCHEDULERS, scheduler.get_id()); 64 108 super.send(scheduler.get_id(), delay, tag, data); 65 109 } 66 110 } 67 111 68 public void sendToAllResources(double delay, int tag, Object data){112 public void sendToAllResources(double delay, Event event){ 69 113 List<ComputingResource> allComputingResources = new ArrayList<ComputingResource>(); 70 114 … … 87 131 } 88 132 } 133 sendInternal(delay, DCWormsTags.TO_COMP_RESOURCES, new ResourceBroadcastOrder(allComputingResources, event)); 134 } 135 136 private void sendToResources(Sim_event ev){ 137 ResourceEventCommand rec; 89 138 90 ResourceEventCommand rec; 91 EnergyEvent event; 139 ResourceBroadcastOrder rbo = (ResourceBroadcastOrder)ev.get_data(); 140 List<ComputingResource> allComputingResources = rbo.getComputingResources(); 141 Event event = rbo.getEvent(); 92 142 for(ComputingResource compRes: allComputingResources){ 93 143 rec = new ResourceEventCommand(compRes); 94 event = new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, "Resource controller");95 event.setReason(EventReason.SIM_INIT);96 144 rec.execute(event); 97 //super.send(scheduler.get_id(), delay, tag, data);98 145 } 99 146 } 147 148 public void sendInternal(double delay, int tag, Object data) { 149 this.send(this.get_id(), delay, tag, data); 100 150 } 101 151 102 152 public void sendTo(List<String> ids){ 103 104 153 } 105 154 … … 112 161 113 162 } 163 164 class ResourceBroadcastOrder { 165 166 private List<ComputingResource> computingResources; 167 private Event event; 168 169 public ResourceBroadcastOrder(List<ComputingResource> computingResources, Event event) { 170 super(); 171 this.computingResources = computingResources; 172 this.event = event; 173 } 174 175 public List<ComputingResource> getComputingResources() { 176 return computingResources; 177 } 178 179 public Event getEvent() { 180 return event; 181 } 182 } 183 184
Note: See TracChangeset
for help on using the changeset viewer.