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); }
if (ev.containsListener(currentListener, EventType.DONE)) { ev.removeListener(currentListener, EventType.DONE);
@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)); }
dispatcher.addListener(l1, EVENT1); dispatcher.addListener(l2, EVENT1, EVENT2); api.addListener(l3, EVENT1, EVENT2, EVENT3); assertTrue(api.containsListener(l1, EVENT1)); assertFalse(api.containsListener(l1, EVENT2)); assertFalse(api.containsListener(l1, EVENT3)); assertFalse(api.containsListener(l1, OTHER_EVENT1)); assertFalse(dispatcher.containsListener(l3, OTHER_EVENT1)); api.removeListener(l3, new HashSet<Enum<?>>()); assertFalse(dispatcher.containsListener(l3, EVENT1)); assertFalse(dispatcher.containsListener(l3, EVENT2));
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); }
checkState(ev.containsListener(this, EventType.DONE)); ev.removeListener(this, EventType.DONE); exec = true;
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); }
@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); }
RtSolverModel(RealtimeClockController c, PDPRoadModel rm, PDPModel pm, Mode m, int threads, boolean threadGrouping) { clock = c; roadModel = rm; pdpModel = pm; manager = new SimSolversManager(); executor = Optional.absent(); mode = m; threadGroupingEnabled = threadGrouping; threadPoolSize = threads; receivedEvents = Collections.synchronizedList(new ArrayList<Event>()); clock.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event event) { manager.checkExceptions(); shutdown(); } }, ClockEventType.STOPPED); pdpModel.getEventAPI().addListener(new Listener() { @Override public void handleEvent(Event e) { manager.checkExceptions(); LOGGER.debug("new parcel -> switch to real time"); clock.switchToRealTime(); } }, PDPModelEventType.NEW_PARCEL); initExecutor(); }
/** * 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(); }
model.getEventAPI().addListener(new Listener() { @Override public void handleEvent(final Event e) {
@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 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); }