Changeset 793


Ignore:
Timestamp:
01/18/13 16:49:16 (12 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

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

    r780 r793  
    11package test; 
    22 
     3import eduni.simjava.Sim_event; 
     4import eduni.simjava.Sim_system; 
    35import gridsim.GridSimCore; 
     6import gridsim.GridSimTags; 
     7import gridsim.dcworms.DCWormsTags; 
    48 
    59import java.util.ArrayList; 
     
    913 
    1014import schedframe.ResourceController; 
     15import schedframe.events.Event; 
    1116import schedframe.events.ResourceEventCommand; 
    12 import schedframe.events.scheduling.EventReason; 
    1317import schedframe.exceptions.ModuleException; 
    1418import schedframe.resources.computing.ComputingResource; 
    15 import schedframe.resources.computing.profiles.energy.EnergyEvent; 
    16 import schedframe.resources.computing.profiles.energy.EnergyEventType; 
    1719import schedframe.scheduling.Scheduler; 
    1820import schedframe.scheduling.plugin.grid.Module; 
     
    2325        protected ResourceController resourceController; 
    2426         
    25         public EventManager(String name) throws Exception { 
     27        public EventManager(String name, ResourceController resourceController) throws Exception { 
    2628                super(name, 1); 
     29                this.resourceController = resourceController; 
    2730        } 
    2831 
     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         
    2971        public void send(String entityName, double delay, int tag, Object data){ 
    3072                super.send(entityName, delay, tag, data); 
     
    61103                } 
    62104                 
     105                 
    63106                for(Scheduler scheduler: allSchedulers){ 
     107                        //sendInternal(delay, DCWormsTags.TO_SCHEDULERS, scheduler.get_id()); 
    64108                        super.send(scheduler.get_id(), delay, tag, data); 
    65109                } 
    66110        } 
    67111         
    68         public void sendToAllResources(double delay, int tag, Object data){ 
     112        public void sendToAllResources(double delay, Event event){ 
    69113                List<ComputingResource> allComputingResources = new ArrayList<ComputingResource>(); 
    70114 
     
    87131                        } 
    88132                } 
     133                sendInternal(delay, DCWormsTags.TO_COMP_RESOURCES, new ResourceBroadcastOrder(allComputingResources, event)); 
     134        } 
     135 
     136        private void sendToResources(Sim_event ev){ 
     137                ResourceEventCommand rec; 
    89138                 
    90                 ResourceEventCommand rec; 
    91                 EnergyEvent event; 
     139                ResourceBroadcastOrder rbo = (ResourceBroadcastOrder)ev.get_data(); 
     140                List<ComputingResource> allComputingResources = rbo.getComputingResources(); 
     141                Event event = rbo.getEvent(); 
    92142                for(ComputingResource compRes: allComputingResources){ 
    93143                        rec = new ResourceEventCommand(compRes); 
    94                         event = new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, "Resource controller"); 
    95                         event.setReason(EventReason.SIM_INIT); 
    96144                        rec.execute(event); 
    97                         //super.send(scheduler.get_id(), delay, tag, data); 
    98145                } 
    99  
     146        } 
     147         
     148        public void sendInternal(double delay, int tag, Object data) { 
     149                this.send(this.get_id(), delay, tag, data); 
    100150        } 
    101151         
    102152        public void sendTo(List<String> ids){ 
    103                  
    104153        } 
    105154         
     
    112161 
    113162} 
     163 
     164class 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.