@Override public void tick(TimeLapse timeLapse) { if (clock.getClockMode() == ClockMode.REAL_TIME) { rtCounter++; } else { stCounter++; } }
void realtimeCheck() { checkState(clock.getClockMode() == ClockMode.REAL_TIME, "Clock must be in real-time mode before calling this method, but it " + "is in %s mode.", clock.getClockMode()); }
void checkRealtime() { if (clock != null) { checkState(clock.getClockMode() == ClockMode.REAL_TIME, "Clock must be in real-time mode, but is in %s mode.", clock.getClockMode()); // make sure we stay in rt LOGGER.debug("Check real time -> stay in real time."); clock.switchToRealTime(); } }
@Override public boolean register(Parcel element) { verify(clock.getClockMode() == ClockMode.REAL_TIME, "Problem detected at %s when registering %s, clock mode is %s.", clock.getCurrentTime(), element, clock.getClockMode()); problemHasChanged = true; return true; }
@Override public void run() { if (!canvas.isDisposed()) { if (clock.getTickLength() > TIME_FORMATTER_THRESHOLD) { final StringBuilder sb = new StringBuilder(); sb.append(FORMATTER.print(new Period(0, clock.getCurrentTime()))); if (isRealtime) { sb.append(SPACE); sb.append( ((RealtimeClockController) clock).getClockMode().name()); } timeLabel.setText(sb.toString()); } else { timeLabel.setText(Long.toString(clock.getCurrentTime())); } timeLabel.pack(); canvas.redraw(); } } });
void notifySolverOfChange(TimeLapse timeLapse, boolean sleepAfterNotify) { LOGGER.trace("notifySolverOfChange {} sleepAfterNotify:{}", timeLapse, sleepAfterNotify); verify(clock.getClockMode() == ClockMode.REAL_TIME, "Problem detected at %s.", timeLapse); problemHasChanged = false; solver.solve(SolveArgs.create().useCurrentRoutes(getCurrentRoutes())); if (sleepAfterNotify) { try { Thread.sleep(timeLapse.getTickLength() / 2); } catch (final InterruptedException e) { throw new IllegalStateException(e); } } }
@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);
&& clock.getClockMode() == ClockMode.REAL_TIME) { solver.sendSnapshot( SolveArgs.create().useCurrentRoutes(getCurrentRoutes()));
@Override public void tick(TimeLapse timeLapse) { beforeTimeStamps.add(System.nanoTime()); simTimeLapses.add( Range.closedOpen(timeLapse.getStartTime(), timeLapse.getEndTime())); clockModes.add(clock.getClockMode()); }
&& clock.getClockMode() == ClockMode.REAL_TIME) { if (prevComputing) { LOGGER.trace(
.getClockMode() == ClockMode.REAL_TIME) && lastRefresh + timeLapse.getTickLength() * speedUp > timeLapse .getStartTime()) {
@Override public void tick(TimeLapse timeLapse) { if (timeLapse.getStartTime() == 100) { assertThat(clock.getClockMode()).isSameAs(ClockMode.SIMULATED); assertThat(rm.getPosition(vehicles.get(0))) .isEqualTo(new Point(0, 0)); assertThat(vehicles.get(0).getRoute()).isEmpty(); assertThat(vehicles.get(1).getRoute()).isEmpty(); } else if (timeLapse.getStartTime() == 200) { assertThat(clock.getClockMode()).isSameAs(ClockMode.REAL_TIME); // this is the tick in which the new order event is dispatched. This // code is executed just before the tick implementation of the // vehicle, therefore the vehicle should not have moved yet. assertThat(rm.getPosition(vehicles.get(0))) .isEqualTo(new Point(0, 0)); assertThat(vehicles.get(0).getRoute()).hasSize(2); assertThat(vehicles.get(1).getRoute()).isEmpty(); } else if (timeLapse.getStartTime() == 59900) { assertThat(clock.getClockMode()).isSameAs(ClockMode.SIMULATED); assertThat(vehicles.get(0).getRoute()).hasSize(2); assertThat(vehicles.get(1).getRoute()).isEmpty(); } else if (timeLapse.getStartTime() == 60000) { assertThat(clock.getClockMode()).isSameAs(ClockMode.REAL_TIME); assertThat(vehicles.get(0).getRoute()).hasSize(4); assertThat(vehicles.get(1).getRoute()).isEmpty(); } }