@Override public void processEvent(final Event event) { if (this.parallelMode) this.distributor.processEvent(event); else this.singleThreadEventsHandler.processEvent(event); }
@Override public void notifyAfterMobsim(final AfterMobsimEvent event) { for ( Map.Entry<Id, BeingTogetherScoring> e : scorings.entrySet() ) { final Id id = e.getKey(); final BeingTogetherScoring scoring = e.getValue(); events.processEvent( new PersonMoneyEvent(Time.MIDNIGHT, id, scoring.getScore() / marginalUtilityOfMoney) ); } }
@Override public void processEvent(final Event event) { if (parallelMode) { for (int i = 0; i < eventsProcessThread.length; i++) { eventsProcessThread[i].processEvent(event); } } else { for (int i = 0; i < eventsProcessThread.length; i++) { eventsProcessThread[i].getEvents().processEvent(event); } } }
private void fireBoardingDeniedEvents(TransitVehicle vehicle, double now){ Id<Vehicle> vehicleId = vehicle.getId() ; for (PTPassengerAgent agent : this.agentsDeniedToBoard){ Id<Person> agentId = agent.getId() ; this.eventsManager.processEvent( new BoardingDeniedEvent(now, agentId, vehicleId) ) ; } }
@Override public void handleEvent(LinkLeaveEvent event) { if (!decongestionInfo.getTransitVehicleIDs().contains(event.getVehicleId()) && decongestionInfo.getlinkInfos().get(event.getLinkId()) != null) { int currentTimeBin = (int) (event.getTime() / this.decongestionInfo.getScenario().getConfig().travelTimeCalculator().getTraveltimeBinSize()); if (decongestionInfo.getlinkInfos().get(event.getLinkId()).getTime2toll().get(currentTimeBin) != null) { double toll = decongestionInfo.getlinkInfos().get(event.getLinkId()).getTime2toll().get(currentTimeBin); this.eventsManager.processEvent(new PersonMoneyEvent(event.getTime(), this.decongestionInfo.getVehicleId2personId().get(event.getVehicleId()), -1. * toll)); // this.eventsManager.processEvent(new PersonLinkMoneyEvent(event.getTime(), this.decongestionInfo.getVehicleId2personId().get(event.getVehicleId()), event.getLinkId(), -1. * toll, event.getTime(), "congestion")); this.totalTollPayments = this.totalTollPayments + toll; } } }
@Override public void afterSim() { double now = this.qSim.getSimTimer().getTimeOfDay(); for (Entry<Id<TransitStopFacility>, List<PTPassengerAgent>> agentsAtStop : this.agentTracker.getAgentsAtStop().entrySet()) { TransitStopFacility stop = this.schedule.getFacilities().get(agentsAtStop.getKey()); for (PTPassengerAgent agent : agentsAtStop.getValue()) { this.qSim.getEventsManager().processEvent(new PersonStuckEvent( now, agent.getId(), stop.getLinkId(), ((MobsimAgent)agent).getMode())); this.qSim.getAgentCounter().decLiving(); this.qSim.getAgentCounter().incLost(); } } }
public void addDepartingAgent(MobsimAgent mobsimAgent, double now) { this.waitingAfterActivityAgents.add(mobsimAgent); this.activateLink(); this.simEngine.getEventsManager().processEvent( new PersonEntersVehicleEvent(now, mobsimAgent.getId(), Id.create(mobsimAgent.getId(), Vehicle.class))); this.simEngine.getEventsManager().processEvent( new VehicleEntersTrafficEvent(now, mobsimAgent.getId(), link.getId(), Id.create(mobsimAgent.getId(), Vehicle.class), mobsimAgent.getMode(), 1.0)); }
@Override public final void letVehicleDepart(QVehicle vehicle) { double now = context.getSimTimer().getTimeOfDay(); MobsimDriverAgent driver = vehicle.getDriver(); if (driver == null) throw new RuntimeException("Vehicle cannot depart without a driver!"); EventsManager eventsManager = context.getEventsManager(); eventsManager.processEvent(new PersonEntersVehicleEvent(now, driver.getId(), vehicle.getId())); this.addDepartingVehicle(vehicle); }
@Override public void run() { Id<Link> linkId = Id.create("100", Link.class); for (int i = 0; i < this.nOfEvents; i++) { this.eventsManager.processEvent(new LinkLeaveEvent(60.0, Id.create(i, Vehicle.class), linkId)); } } }
public void addAgentFromIntersection(MobsimAgent mobsimAgent, double now) { this.activateLink(); this.addAgent(mobsimAgent, now); this.simEngine.getEventsManager().processEvent(new LinkEnterEvent(now, Id.create(mobsimAgent.getId(), Vehicle.class), link.getId())); }
public void dropOffPassenger(MobsimDriverAgent driver, PassengerRequest request, double now) { MobsimPassengerAgent passenger = passengersByRequestId.remove(request.getId()); MobsimVehicle mobVehicle = driver.getVehicle(); mobVehicle.removePassenger(passenger); passenger.setVehicle(null); eventsManager.processEvent(new PersonLeavesVehicleEvent(now, passenger.getId(), mobVehicle.getId())); passenger.notifyArrivalOnLinkByNonNetworkMode(passenger.getDestinationLinkId()); passenger.endLegAndComputeNextState(now); internalInterface.arrangeNextAgentState(passenger); } }
@Override public void processEvent() { Road road = (Road) this.getReceivingUnit(); Event event = null; event = new LinkLeaveEvent(this.getMessageArrivalTime(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), road.getLink().getId()); eventsManager.processEvent(event); }
@Override public void processEvent() { Event event; // schedule ActEndEvent event = new ActivityEndEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle .getPreviousActivity().getFacilityId(), vehicle.getPreviousActivity().getType()); eventsManager.processEvent(event); // schedule AgentDepartureEvent event = new PersonDepartureEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle.getCurrentLeg().getMode()); eventsManager.processEvent(event); }
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); }
@Override public final QVehicle popFirstVehicle() { double now = context.getSimTimer().getTimeOfDay() ; QVehicle veh = removeFirstVehicle(); if (this.context.qsimConfig.isUseLanes() ) { if ( hasMoreThanOneLane() ) { this.context.getEventsManager().processEvent(new LaneLeaveEvent( now, veh.getId(), this.qLink.getId(), this.getId() )); } } return veh; }
private void initializeActivity(Activity act, double now) { this.setState(MobsimAgent.State.ACTIVITY) ; this.getEvents().processEvent( new ActivityStartEvent(now, this.getId(), this.getCurrentLinkId(), act.getFacilityId(), act.getType())); calculateAndSetDepartureTime(act); getModifiablePlan(); // this is necessary to make the plan modifiable, so that setting the start time (next line) is actually feasible. kai/mz, oct'16 ((Activity) getCurrentPlanElement()).setStartTime(now); }
@Test public void testProcessEventIntegration() { EventsManager em = EventsUtils.createEventsManager(); TransitDriverStartsEvent e1 = new TransitDriverStartsEvent(12345, Id.create("driver", Person.class), Id.create("veh", Vehicle.class), Id.create("line", TransitLine.class), Id.create("route", TransitRoute.class), Id.create("dep", Departure.class)); TransitDriverStartsTestEventHandler eh = new TransitDriverStartsTestEventHandler(); em.addHandler(eh); Assert.assertEquals(0, eh.events.size()); em.processEvent(e1); Assert.assertEquals(1, eh.events.size()); Assert.assertEquals(e1, eh.events.get(0)); }
/** * @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); }
@Override public void processEvent() { Event event = null; // the first EnterLink in a leg is a Wait2LinkEvent if (vehicle.getLinkIndex() == -1) { event = new VehicleEntersTrafficEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), null, 1.0); } else { event = new LinkEnterEvent(this.getMessageArrivalTime(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), vehicle.getCurrentLinkId()); } 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); } }