SimulationListener.java
- package org.matsim.episim.model;
- import org.matsim.api.core.v01.Id;
- import org.matsim.api.core.v01.population.Person;
- import org.matsim.episim.EpisimPerson;
- import org.matsim.episim.InfectionEventHandler;
- import org.matsim.facilities.ActivityFacility;
- import org.matsim.vehicles.Vehicle;
- import java.time.LocalDate;
- import java.util.Map;
- import java.util.SplittableRandom;
- /**
- * Listener to interact with the simulation before starting
- */
- public interface SimulationListener {
- /**
- * Called after init before the simulation starts.
- *
- * @param rnd local random instance of the event handler
- * @param persons all persons in the simulation
- * @param facilities all facilities
- * @param vehicles all vehicles
- */
- default void init(SplittableRandom rnd, Map<Id<Person>, EpisimPerson> persons, Map<Id<ActivityFacility>, InfectionEventHandler.EpisimFacility> facilities, Map<Id<Vehicle>, InfectionEventHandler.EpisimVehicle> vehicles) {
- }
- /**
- * Called after a snapshot has been loaded.
- *
- * @param iteration restored iteration
- * @see #init(SplittableRandom, Map, Map, Map)
- */
- default void onSnapshotLoaded(int iteration, SplittableRandom rnd, Map<Id<Person>, EpisimPerson> persons, Map<Id<ActivityFacility>, InfectionEventHandler.EpisimFacility> facilities, Map<Id<Vehicle>, InfectionEventHandler.EpisimVehicle> vehicles) {
- }
- /**
- * Called just before iteration is about to start and events for the day will be handled.
- */
- default void onIterationStart(int iteration, LocalDate date) {
- }
- /**
- * Called after an iteration has finished and all trajectories and infection events have been handled.
- */
- default void onIterationEnd(int iteration, LocalDate date) {
- }
- }