com.github.rinde.rinsim.event.Event类的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(149)

本文整理了Java中com.github.rinde.rinsim.event.Event类的一些代码示例,展示了Event类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Event类的具体详情如下:
包路径:com.github.rinde.rinsim.event.Event
类名称:Event

Event介绍

[英]The base event class. It is immutable.
[中]基本事件类。它是不变的。

代码示例

代码示例来源:origin: com.github.rinde/rinsim-event

  1. public void safeDispatchEvent(Event e) {
  2. dispatching.incrementAndGet();
  3. final Set<Listener> targetListeners;
  4. synchronized (listeners) {
  5. checkCanDispatchEventType(e.getEventType());
  6. targetListeners = ImmutableSet.copyOf(listeners.get(e.getEventType()));
  7. }
  8. for (final Listener l : targetListeners) {
  9. l.handleEvent(e);
  10. }
  11. dispatching.decrementAndGet();
  12. update();
  13. }

代码示例来源:origin: com.github.rinde/rinlog

  1. /**
  2. * Notifies this blackboard user of a change in the environment.
  3. */
  4. public void update() {
  5. eventDispatcher
  6. .dispatchEvent(new Event(CommunicatorEventType.CHANGE, this));
  7. }

代码示例来源:origin: rinde/RinSim

  1. void doHandleEvent(Event e) {
  2. synchronized (computingSimSolvers) {
  3. final boolean isComputingBefore = isComputing();
  4. LOGGER.trace("receive: {}, computing: {}, clock is ticking: {}, {}", e,
  5. isComputingBefore, clock.isTicking(), computingSimSolvers);
  6. if (e.getEventType() == EventType.START_COMPUTING) {
  7. if (!isComputingBefore) {
  8. LOGGER.debug("start computing -> switch to real time");
  9. clock.switchToRealTime();
  10. }
  11. computingSimSolvers.add((RtSimSolverSchedulerBridge) e.getIssuer());
  12. } else if (e.getEventType() == EventType.DONE_COMPUTING) {
  13. // done computing
  14. checkState(computingSimSolvers.remove(e.getIssuer()));
  15. // if (!isComputing()) {
  16. // stop();
  17. // }
  18. } else {
  19. throw new IllegalArgumentException("Unexpected event: " + e);
  20. }
  21. }
  22. }

代码示例来源:origin: rinde/RinSim

  1. @Override
  2. public void handleEvent(Event event) {
  3. assertSame(event.toString(), modelRef, event.getIssuer());
  4. }
  5. }, PDPModelEventType.values());

代码示例来源:origin: com.github.rinde/rinsim-pdptw

  1. @Override
  2. public void handleEvent(Event e) {
  3. if (e.getEventType() == ClockEventType.STARTED) {
  4. startTimeReal = System.currentTimeMillis();
  5. startTimeSim = clock.getCurrentTime();
  6. computationTime = 0;
  7. } else if (e.getEventType() == ClockEventType.STOPPED) {
  8. computationTime = System.currentTimeMillis() - startTimeReal;
  9. simulationTime = clock.getCurrentTime() - startTimeSim;
  10. } else if (e.getEventType() == RoadEventType.MOVE) {
  11. verify(e instanceof MoveEvent);
  12. final MoveEvent me = (MoveEvent) e;
  13. clock.getCurrentTime());
  14. if (totalVehicles == lastArrivalTimeAtDepot.size()) {
  15. eventDispatcher.dispatchEvent(new Event(
  16. StatsProvider.EventTypes.ALL_VEHICLES_AT_DEPOT, this));
  17. } else if (e.getEventType() == PDPModelEventType.START_PICKUP) {
  18. verify(e instanceof PDPModelEvent);
  19. final PDPModelEvent pme = (PDPModelEvent) e;
  20. } else if (e.getEventType() == PDPModelEventType.END_PICKUP) {
  21. totalPickups++;
  22. } else if (e.getEventType() == PDPModelEventType.START_DELIVERY) {
  23. final PDPModelEvent pme = (PDPModelEvent) e;
  24. } else if (e.getEventType() == PDPModelEventType.END_DELIVERY) {
  25. totalDeliveries++;

代码示例来源:origin: rinde/RinSim

  1. @Override
  2. public void handleEvent(Event e) {
  3. history.add(e);
  4. e.toString();
  5. }

代码示例来源:origin: rinde/RinSim

  1. @Override
  2. public void handleEvent(Event e) {
  3. if (e.getEventType() == ClockEventType.STARTED) {
  4. startTimeReal = System.currentTimeMillis();
  5. startTimeSim = clock.getCurrentTime();
  6. computationTime = 0;
  7. } else if (e.getEventType() == ClockEventType.STOPPED) {
  8. computationTime = System.currentTimeMillis() - startTimeReal;
  9. simulationTime = clock.getCurrentTime() - startTimeSim;
  10. } else if (e.getEventType() == RoadEventType.MOVE) {
  11. verify(e instanceof MoveEvent);
  12. final MoveEvent me = (MoveEvent) e;
  13. clock.getCurrentTime());
  14. if (totalVehicles == lastArrivalTimeAtDepot.size()) {
  15. eventDispatcher.dispatchEvent(new Event(
  16. StatsProvider.EventTypes.ALL_VEHICLES_AT_DEPOT, this));
  17. } else if (e.getEventType() == PDPModelEventType.START_PICKUP) {
  18. verify(e instanceof PDPModelEvent);
  19. final PDPModelEvent pme = (PDPModelEvent) e;
  20. } else if (e.getEventType() == PDPModelEventType.END_PICKUP) {
  21. totalPickups++;
  22. } else if (e.getEventType() == PDPModelEventType.START_DELIVERY) {
  23. final PDPModelEvent pme = (PDPModelEvent) e;
  24. } else if (e.getEventType() == PDPModelEventType.END_DELIVERY) {
  25. totalDeliveries++;

代码示例来源:origin: rinde/RinSim

  1. public void safeDispatchEvent(Event e) {
  2. dispatching.incrementAndGet();
  3. final Set<Listener> targetListeners;
  4. synchronized (listeners) {
  5. checkCanDispatchEventType(e.getEventType());
  6. targetListeners = ImmutableSet.copyOf(listeners.get(e.getEventType()));
  7. }
  8. for (final Listener l : targetListeners) {
  9. l.handleEvent(e);
  10. }
  11. dispatching.decrementAndGet();
  12. update();
  13. }

代码示例来源:origin: com.github.rinde/rinlog

  1. @Override
  2. public void receiveParcel(Auctioneer<T> auctioneer, Parcel p,
  3. long auctionStartTime) {
  4. LOGGER.info("{} receiveParcel {}", this, p);
  5. assignedParcels.add(p);
  6. eventDispatcher
  7. .dispatchEvent(new Event(CommunicatorEventType.CHANGE, this));
  8. }

代码示例来源:origin: rinde/RinSim

  1. @Test
  2. public void followPathEventIssuerType() {
  3. final MovingRoadUser user = new TestRoadUser();
  4. model.addObjectAt(user, SW);
  5. final ListenerEventHistory list = new ListenerEventHistory();
  6. model.getEventAPI().addListener(list, RoadEventType.MOVE);
  7. assertTrue(list.getHistory().isEmpty());
  8. model.followPath(user, newLinkedList(asList(SW, SE, NE, NW)),
  9. TimeLapseFactory.create(0, 10));
  10. assertEquals(1, list.getHistory().size());
  11. assertEquals(RoadEventType.MOVE, list.getHistory().get(0).getEventType());
  12. assertEquals(model, list.getHistory().get(0).getIssuer());
  13. }

代码示例来源:origin: com.github.rinde/rinsim-event

  1. /**
  2. * Dispatch an event. Notifies all listeners that are listening for this type
  3. * of event.
  4. * @param e The event to be dispatched, only events with a supported type can
  5. * be dispatched.
  6. */
  7. public void dispatchEvent(Event e) {
  8. synchronized (listeners) {
  9. dispatching.incrementAndGet();
  10. checkCanDispatchEventType(e.getEventType());
  11. for (final Listener l : listeners.get(e.getEventType())) {
  12. l.handleEvent(e);
  13. }
  14. dispatching.decrementAndGet();
  15. }
  16. update();
  17. }

代码示例来源:origin: com.github.rinde/rinlog

  1. protected void dispatchChangeEvent() {
  2. eventDispatcher.dispatchEvent(
  3. new Event(RoutePlannerEventType.CHANGE, this));
  4. }

代码示例来源:origin: rinde/RinSim

  1. @Test
  2. public void moveToEventIssuerType() {
  3. final MovingRoadUser user = new TestRoadUser();
  4. model.addObjectAt(user, SW);
  5. final ListenerEventHistory list = new ListenerEventHistory();
  6. model.getEventAPI().addListener(list, RoadEventType.MOVE);
  7. assertTrue(list.getHistory().isEmpty());
  8. model.moveTo(user, NW, TimeLapseFactory.create(0, 10));
  9. assertEquals(1, list.getHistory().size());
  10. assertEquals(RoadEventType.MOVE, list.getHistory().get(0).getEventType());
  11. assertEquals(model, list.getHistory().get(0).getIssuer());
  12. }

代码示例来源:origin: rinde/RinSim

  1. /**
  2. * Dispatch an event. Notifies all listeners that are listening for this type
  3. * of event.
  4. * @param e The event to be dispatched, only events with a supported type can
  5. * be dispatched.
  6. */
  7. public void dispatchEvent(Event e) {
  8. synchronized (listeners) {
  9. dispatching.incrementAndGet();
  10. checkCanDispatchEventType(e.getEventType());
  11. for (final Listener l : listeners.get(e.getEventType())) {
  12. l.handleEvent(e);
  13. }
  14. dispatching.decrementAndGet();
  15. }
  16. update();
  17. }

代码示例来源:origin: rinde/RinSim

  1. /**
  2. * Start the simulation.
  3. */
  4. @Override
  5. public final void start() {
  6. checkState(!isTicking(), "Time is already ticking.");
  7. isTicking = true;
  8. eventDispatcher.dispatchEvent(new Event(ClockEventType.STARTED, this));
  9. doStart();
  10. eventDispatcher.dispatchEvent(new Event(ClockEventType.STOPPED, this));
  11. }

代码示例来源:origin: rinde/RinSim

  1. @Override
  2. public void handleEvent(Event e) {
  3. if (e
  4. .getEventType() == ScenarioController.EventType.SCENARIO_FINISHED) {
  5. sim.stop();
  6. }
  7. }
  8. });

代码示例来源:origin: com.github.rinde/rinlog

  1. @Override
  2. public boolean releaseParcel(Parcel p) {
  3. checkArgument(!pdpModel.get().getParcelState(p).isPickedUp()
  4. && !pdpModel.get().getParcelState(p).isTransitionState());
  5. LOGGER.info("{} releaseParcel {}", this, p);
  6. checkArgument(assignedParcels.contains(p));
  7. assignedParcels.remove(p);
  8. checkState(!assignedParcels.contains(p));
  9. eventDispatcher
  10. .dispatchEvent(new Event(CommunicatorEventType.CHANGE, this));
  11. return true;
  12. }

代码示例来源:origin: com.github.rinde/rinsim-example

  1. @Override
  2. public void handleEvent(Event e) {
  3. verify(e instanceof PDPModelEvent);
  4. final PDPModelEvent event = (PDPModelEvent) e;
  5. final Box box = (Box) verifyNotNull(event.parcel);
  6. if (e.getEventType() == PDPModelEventType.END_PICKUP) {
  7. occupiedPositions.remove(box.getPickupLocation());
  8. }
  9. if (e.getEventType() == PDPModelEventType.END_DELIVERY) {
  10. final long duration = DoubleMath.roundToLong(
  11. FactoryExample.SERVICE_DURATION / 2d
  12. + rng.nextDouble() * FactoryExample.SERVICE_DURATION,
  13. RoundingMode.CEILING);
  14. simulator.get().unregister(box);
  15. final BoxHandle bh = box.boxHandle;
  16. bh.wordIndex = (bh.wordIndex + 1) % points.size();
  17. final Point dest;
  18. if (bh.index >= points.get(bh.wordIndex).size()) {
  19. dest = rndBorder();
  20. } else {
  21. dest = points.get(bh.wordIndex).get(bh.index);
  22. occupiedPositions.add(dest);
  23. }
  24. final Box newBox = new Box(box.getDeliveryLocation(),
  25. dest, duration, bh);
  26. bh.box = newBox;
  27. simulator.get().register(newBox);
  28. }
  29. }

代码示例来源:origin: rinde/RinSim

  1. void close() {
  2. if (!shell.isDisposed()) {
  3. display.asyncExec(new Runnable() {
  4. @Override
  5. public void run() {
  6. shell.close();
  7. }
  8. });
  9. }
  10. if (builder.callback().isPresent()) {
  11. builder.callback().get()
  12. .handleEvent(new Event(Clock.ClockEventType.STOPPED, null));
  13. }
  14. }

代码示例来源:origin: rinde/RinSim

  1. @Override
  2. public void handleEvent(Event e) {
  3. verify(e instanceof PDPModelEvent);
  4. final PDPModelEvent event = (PDPModelEvent) e;
  5. final Box box = (Box) verifyNotNull(event.parcel);
  6. if (e.getEventType() == PDPModelEventType.END_PICKUP) {
  7. occupiedPositions.remove(box.getPickupLocation());
  8. }
  9. if (e.getEventType() == PDPModelEventType.END_DELIVERY) {
  10. final long duration = DoubleMath.roundToLong(
  11. FactoryExample.SERVICE_DURATION / 2d
  12. + rng.nextDouble() * FactoryExample.SERVICE_DURATION,
  13. RoundingMode.CEILING);
  14. simulator.get().unregister(box);
  15. final BoxHandle bh = box.boxHandle;
  16. bh.wordIndex = (bh.wordIndex + 1) % points.size();
  17. final Point dest;
  18. if (bh.index >= points.get(bh.wordIndex).size()) {
  19. dest = rndBorder();
  20. } else {
  21. dest = points.get(bh.wordIndex).get(bh.index);
  22. occupiedPositions.add(dest);
  23. }
  24. final Box newBox = new Box(box.getDeliveryLocation(),
  25. dest, duration, bh);
  26. bh.box = newBox;
  27. simulator.get().register(newBox);
  28. }
  29. }

相关文章