AuctionTimeStatsLogger(AuctionCommModel<?> model) { finishEvents = new ArrayList<>(); bidders = new ArrayList<>(); model.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { finishEvents.add((AuctionEvent) e); } }, AuctionCommModel.EventType.FINISH_AUCTION); }
RealtimeClockLogger(RealtimeClockController c) { log = new ArrayList<>(); clock = c; clock.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { log.add(LogEntry.create(clock.getCurrentTime(), clock.getCurrentTime() + clock.getTickLength(), clock.getClockMode(), e.getEventType())); } }, SWITCH_TO_REAL_TIME, SWITCH_TO_SIM_TIME, STARTED, STOPPED); }
void register(RtSimSolverSchedulerBridge s) { LOGGER.trace("New solver registered: {}.", s.solver); simSolvers.add(s); s.getEventAPI().addListener(this, EventType.START_COMPUTING, EventType.DONE_COMPUTING); }
RtCentralModel(RealtimeClockController c, RtSimSolver s, PDPRoadModel rm, PDPModel pm, ImmutableSet<Options> opts) { problemHasChanged = false; clock = c; solver = s; roadModel = rm; sleepOnChange = opts.contains(Options.SLEEP_ON_CHANGE); continuousUpdates = opts.contains(Options.CONTINUOUS_UPDATES); vehicles = new ArrayList<>(); pm.getEventAPI().addListener(VehicleChecker.INSTANCE, PDPModelEventType.NEW_VEHICLE); }
@Override public void registerModelProvider(ModelProvider mp) { final PDPModel pm = Optional.fromNullable(mp.getModel(PDPModel.class)) .get(); pm.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { final PDPModelEvent event = (PDPModelEvent) e; final Parcel dp = event.parcel; receiveParcel(verifyNotNull(dp), event.time); } }, PDPModelEventType.NEW_PARCEL); }
@Override public void registerModelProvider(ModelProvider mp) { rm = Optional.fromNullable(mp.tryGetModel(RoadModel.class)); Optional .fromNullable(mp.tryGetModel(PDPModel.class)) .get() .getEventAPI() .addListener(this, PDPModelEventType.END_DELIVERY, PDPModelEventType.END_PICKUP); }
@Override public void registerModelProvider(ModelProvider mp) { rm = Optional.fromNullable(mp.tryGetModel(RoadModel.class)); Optional .fromNullable(mp.tryGetModel(PDPModel.class)) .get() .getEventAPI() .addListener(this, PDPModelEventType.END_DELIVERY, PDPModelEventType.END_PICKUP); }
@Override public void afterInit() { super.afterInit(); if (decorator == null) { decorator = this; } ((Truck) vehicle.get()).getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { LOGGER.trace("{} Route change -> reauction", vehicle.get()); reauction(); } }, Truck.TruckEvent.ROUTE_CHANGE); }
StatsTracker(ScenarioController scenContr, Clock c, RoadModel rm, PDPModel pm) { clock = c; roadModel = rm; eventDispatcher = new EventDispatcher(StatsProvider.EventTypes.values()); theListener = new TheListener(); scenContr.getEventAPI().addListener(theListener, SCENARIO_STARTED, SCENARIO_FINISHED, SCENARIO_EVENT); roadModel.getEventAPI().addListener(theListener, MOVE); clock.getEventAPI().addListener(theListener, STARTED, STOPPED); pm.getEventAPI() .addListener(theListener, START_PICKUP, END_PICKUP, START_DELIVERY, END_DELIVERY, NEW_PARCEL, NEW_VEHICLE); }
StatsTracker(ScenarioController scenContr, Clock c, RoadModel rm, PDPModel pm) { clock = c; roadModel = rm; eventDispatcher = new EventDispatcher(StatsProvider.EventTypes.values()); theListener = new TheListener(); scenContr.getEventAPI().addListener(theListener, SCENARIO_STARTED, SCENARIO_FINISHED, SCENARIO_EVENT); roadModel.getEventAPI().addListener(theListener, MOVE); clock.getEventAPI().addListener(theListener, STARTED, STOPPED); pm.getEventAPI() .addListener(theListener, START_PICKUP, END_PICKUP, START_DELIVERY, END_DELIVERY, NEW_PARCEL, NEW_VEHICLE); }
@Override public void setSolverProvider(RtSimSolverBuilder builder) { simSolver = Optional.of(builder.setVehicles(vehicle.asSet()).build(solver)); final RtSolverRoutePlanner rp = this; simSolver.get().getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { route = newLinkedList(simSolver.get().getCurrentSchedule().get(0)); LOGGER.trace("Computed new route for {}: {}.", vehicle.get(), route); rp.dispatchChangeEvent(); } }, EventType.NEW_SCHEDULE); }
/** * Creates a new instance. * @param g The graph to use. * @param b The builder that contains the properties to initialize this model. */ protected DynamicGraphRoadModelImpl(ListenableGraph<?> g, RoadModelBuilders.AbstractDynamicGraphRMB<?, ?> b) { super(g, b); getGraph().getEventAPI() .addListener(new GraphModificationChecker(this, b.isModCheckEnabled())); snapshot = Optional.absent(); }
@Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); final RouteFollowingVehicle vehicle = this; getPDPModel().getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { if (!(e instanceof PDPModelEvent)) { return; } final List<Parcel> route = new ArrayList<>(vehicle.getRoute()); final Parcel newlyAddedParcel = ((PDPModelEvent) e).parcel; route.add(newlyAddedParcel); route.add(newlyAddedParcel); vehicle.setRoute(route); } }, PDPModelEventType.NEW_PARCEL); }
@Override public void setSolverProvider(RtSimSolverBuilder builder) { simSolver = Optional.of(builder.setVehicles(ImmutableSet.of(this)).build(solver)); final RtSimSolver s = simSolver.get(); s.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { assertThat(s.isScheduleUpdated()).isTrue(); assertThat(s.getCurrentSchedule()).hasSize(1); assertThat(s.isScheduleUpdated()).isFalse(); } }, RtSimSolver.EventType.NEW_SCHEDULE); }
@Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); getPDPModel().getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { simSolver.get() .solve(SolveArgs.create() .useCurrentRoutes( ImmutableList.of(ImmutableList.<Parcel>of()))); } }, PDPModelEventType.NEW_PARCEL); } }
CollisionGraphRoadModelImpl(ListenableGraph<?> g, double pMinConnLength, RoadModelBuilders.CollisionGraphRMB builder) { super(g, builder); vehicleLength = unitConversion.toInDist(builder.getVehicleLength()); minDistance = unitConversion.toInDist(builder.getMinDistance()); minConnLength = unitConversion.toInDist(pMinConnLength); occupiedNodes = Multimaps.synchronizedSetMultimap(CategoryMap .<MovingRoadUser, Point>create()); getGraph().getEventAPI().addListener( new ModificationChecker(minConnLength), ListenableGraph.EventTypes.ADD_CONNECTION, ListenableGraph.EventTypes.CHANGE_CONNECTION_DATA); }
@Test public void followPathEventIssuerType() { final MovingRoadUser user = new TestRoadUser(); model.addObjectAt(user, SW); final ListenerEventHistory list = new ListenerEventHistory(); model.getEventAPI().addListener(list, RoadEventType.MOVE); assertTrue(list.getHistory().isEmpty()); model.followPath(user, newLinkedList(asList(SW, SE, NE, NW)), TimeLapseFactory.create(0, 10)); assertEquals(1, list.getHistory().size()); assertEquals(RoadEventType.MOVE, list.getHistory().get(0).getEventType()); assertEquals(model, list.getHistory().get(0).getIssuer()); }
@Test public void moveToEventIssuerType() { final MovingRoadUser user = new TestRoadUser(); model.addObjectAt(user, SW); final ListenerEventHistory list = new ListenerEventHistory(); model.getEventAPI().addListener(list, RoadEventType.MOVE); assertTrue(list.getHistory().isEmpty()); model.moveTo(user, NW, TimeLapseFactory.create(0, 10)); assertEquals(1, list.getHistory().size()); assertEquals(RoadEventType.MOVE, list.getHistory().get(0).getEventType()); assertEquals(model, list.getHistory().get(0).getIssuer()); }
/** * Test event dispatching. */ @Test public void testEvent() { final ListenerEventHistory history = new ListenerEventHistory(); model.getEventAPI().addListener(history, EventTypes.ADD_COMM_USER); final CommUser agent6 = new RangedAgent(new Point(6, 6), 4); model.register(agent6); assertEquals(1, history.getHistory().size()); assertTrue(history.getHistory().get(0) instanceof CommModelEvent); final CommModelEvent event = (CommModelEvent) history.getHistory().get(0); assertSame(agent6, event.getUser()); assertSame(model, event.getIssuer()); assertSame(agent6, model.getUsersAndDevices().inverse().get(event.getDevice())); }
@Test public void removeTest() { final EventDispatcher disp = new EventDispatcher(EventTypes.values()); final EventAPI eventAPI = disp.getPublicEventAPI(); assertTrue(disp.listeners.isEmpty()); eventAPI.addListener(l1, EVENT1, EVENT2, EVENT3); assertEquals(3, disp.listeners.size()); assertTrue(disp.listeners.containsEntry(EVENT1, l1)); assertTrue(eventAPI.containsListener(l1, EVENT1)); assertTrue(eventAPI.containsListener(l1, EVENT2)); assertTrue(eventAPI.containsListener(l1, EVENT3)); eventAPI.removeListener(l1); assertTrue(disp.listeners.isEmpty()); assertFalse(eventAPI.containsListener(l1, EVENT1)); assertFalse(eventAPI.containsListener(l1, EVENT2)); assertFalse(eventAPI.containsListener(l1, EVENT3)); }