@Inject EventHandlerRegistrator(EventsManager eventsManager, Set<EventHandler> eventHandlersDeclaredByModules) { for (EventHandler eventHandler : eventHandlersDeclaredByModules) { eventsManager.addHandler(eventHandler); } } }
@Override public synchronized void processEvent(Event event) { this.delegate.processEvent(event); }
@Override public void removeHandler(EventHandler handler) { this.delegate.removeHandler(handler); }
/** * @author mrieser */ @Test public void testProcessEvent_CustomEventHandler() { EventsManager manager = EventsUtils.createEventsManager(); CountingMyEventHandler handler = new CountingMyEventHandler(); manager.addHandler(handler); manager.processEvent(new MyEvent(123.45)); Assert.assertEquals("EventHandler was not called.", 1, handler.counter); }
public final void testHierarchicalReset() { EventsManager events = EventsUtils.createEventsManager(); Id<Link> linkId = Id.create("1", Link.class); Id<Vehicle> vehId = Id.create("1", Vehicle.class); //first test if handleEvent is not called twice for A and for C C cc = new C(); events.processEvent(new LinkLeaveEvent(0., vehId, linkId)); assertEquals(this.eventHandled, 0); events.addHandler(cc); events.processEvent(new LinkLeaveEvent(0., vehId, linkId)); assertEquals(this.eventHandled, 1); //then test the reset events.resetHandlers(0); assertEquals(1, this.resetCalled); }
EventsToLegs e2legs = new EventsToLegs(scenario.getNetwork()); EventsToLegsAndActivities e2legsActs = new EventsToLegsAndActivities(e2legs, e2acts); events.addHandler(e2legsActs); ); controlerListenerManager.fireControlerIterationStartsEvent(0); events.initProcessing(); for (int i=0; i<MAX; i++) { events.processEvent(new PersonMoneyEvent(i*200, personId, 1.0)); events.processEvent(new ActivityStartEvent(i*200, personId, Id.createLinkId(0), null, "work")); events.processEvent(new ActivityEndEvent(i*200 + 100, personId, Id.createLinkId(0), null, "work")); events.processEvent(new PersonDepartureEvent(i*200+100, personId, Id.createLinkId(0), "car")); events.processEvent(new PersonArrivalEvent(i*200+200, personId, Id.createLinkId(0), "car")); events.afterSimStep(i*200+200); events.finishProcessing(); scoringFunctionsForPopulation.finishScoringFunctions();
eventsManager.addHandler(handler); eventsManager.initProcessing(); 0.0, driver.handleTransitStop(stop2, 170), MatsimTestCase.EPSILON); eventsManager.finishProcessing(); assertTrue(handler.isOk);
controlerListenerManager.fireControlerIterationStartsEvent(0); int MAX = 10; events.initProcessing(); for (int i=0; i<MAX; i++) { events.processEvent(new PersonMoneyEvent(i*200, personId, 1.0)); events.processEvent(new ActivityStartEvent(i*200, personId, Id.createLinkId(0), null, "work")); events.processEvent(new ActivityEndEvent(i*200 + 100, personId, Id.createLinkId(0), null, "work")); events.processEvent(new PersonDepartureEvent(i*200+100, personId, Id.createLinkId(0), "car")); events.processEvent(new PersonArrivalEvent(i*200+200, personId, Id.createLinkId(0), "car")); events.finishProcessing(); scoringFunctionsForPopulation.finishScoringFunctions();
@Override public void run() { events.initProcessing(); Timer t = new Timer(); t.startTimer(); Scheduler scheduler = new Scheduler(new MessageQueue(), config.getSimulationEndTime()); Road.setAllRoads(new HashMap<Id<Link>, Road>()); // initialize network Road road; for (Link link : this.scenario.getNetwork().getLinks().values()) { road = new Road(scheduler, link); Road.getAllRoads().put(link.getId(), road); } for (Person person : this.scenario.getPopulation().getPersons().values()) { new Vehicle(scheduler, person, activityDurationInterpretation); // the vehicle registers itself to the scheduler } scheduler.startSimulation(); t.endTimer(); log.info("Time needed for one iteration (only JDEQSimulation part): " + t.getMeasuredTime() + "[ms]"); events.finishProcessing(); } }
@Override public void finishProcessing() { delegate.finishProcessing(); }
@Override public void afterSimStep(double time) { delegate.afterSimStep(time); }
public final void testHandlerHierarchy() { EventsManager events = EventsUtils.createEventsManager(); Id<Link> linkId = Id.create("1", Link.class); Id<Vehicle> vehId = Id.create("1", Vehicle.class); EventHandler cc = new B(); events.processEvent(new LinkLeaveEvent(0., vehId, linkId)); assertEquals(this.eventHandled, 0); events.addHandler(cc); events.processEvent(new LinkLeaveEvent(0., vehId, linkId)); assertEquals(this.eventHandled, 1); }
void cleanupSim() { this.listenerManager.fireQueueSimulationBeforeCleanupEvent(); boolean gotException = false; for (MobsimEngine mobsimEngine : mobsimEngines) { try { // make sure all engines are cleaned up mobsimEngine.afterSim(); } catch (Exception e) { log.error("got exception while cleaning up", e); } } if (gotException) throw new RuntimeException( "got exception while cleaning up the QSim. Please check the error messages above for details."); events.finishProcessing(); if (analyzeRunTimes) { log.info("qsim internal cpu time (nanos): " + qSimInternalTime); for (Entry<MobsimEngine, AtomicLong> entry : this.mobsimEngineRunTimes.entrySet()) { log.info(entry.getKey().getClass().toString() + " cpu time (nanos): " + entry.getValue().get()); } log.info(""); if ( this.netEngine instanceof QNetsimEngine ) { ((QNetsimEngine)this.netEngine).printEngineRunTimes(); // (yy should somehow be in afterSim()). } } }
this.events.afterSimStep(now); this.listenerManager.fireQueueSimulationAfterSimStepEvent(now);
@Inject PSimTravelTimeCalculator(TravelTimeCalculatorConfigGroup ttconfigGroup, EventsManager eventsManager, Network network, MobSimSwitcher switcher) { super(network, ttconfigGroup); this.switcher = switcher; eventsManager.addHandler(this); }
private void processEvent(Event event) { eventsManager.processEvent(event); }
@Override public void notifyStartup(StartupEvent event) { PBox pBox = (PBox) operators ; pBox.notifyStartup(event); addPTransitScheduleToOriginalOne(event.getServices().getScenario().getTransitSchedule(), pBox.getpTransitSchedule()); addPVehiclesToOriginalOnes(event.getServices().getScenario().getTransitVehicles(), this.pVehiclesFactory.createVehicles(pBox.getpTransitSchedule())); event.getServices().getEvents().processEvent(new TransitScheduleChangedEvent(0.0)); if(this.agentsStuckHandler != null){ event.getServices().getEvents().addHandler(this.agentsStuckHandler); } }
@Override public void notifyAfterMobsim(AfterMobsimEvent event) { eventsManager.removeHandler(carrierAgentTracker); }
for (EventsManager eventsManager : this.eventsManagers) eventsManager.finishProcessing(); this.singleThreadEventsHandler.finishProcessing();
@Inject public DelayAnalysisTool(Network network, EventsManager em) { this(network); em.addHandler(this); }