public static EnterRoadMessage getEnterRoadMessage(Scheduler scheduler, Vehicle vehicle) { if (enterRoadMessageQueue.size() == 0) { return new EnterRoadMessage(scheduler, vehicle); } else { EnterRoadMessage message = enterRoadMessageQueue.poll(); message.resetMessage(scheduler, vehicle); return message; } }
@Override public void handleMessage() { // enter the next road Road road = Road.getRoad(vehicle.getCurrentLinkId()); road.enterRoad(vehicle, getMessageArrivalTime()); }
public void testMessageFactory1(){ MessageFactory.GC_ALL_MESSAGES(); JDEQSimConfigGroup.setGC_MESSAGES(true); MessageFactory.disposeEndLegMessage(new EndLegMessage(null,null)); MessageFactory.disposeEnterRoadMessage(new EnterRoadMessage(null,null)); MessageFactory.disposeStartingLegMessage(new StartingLegMessage(null,null)); MessageFactory.disposeLeaveRoadMessage(new LeaveRoadMessage(null,null)); MessageFactory.disposeEndRoadMessage(new EndRoadMessage(null,null)); MessageFactory.disposeDeadlockPreventionMessage(new DeadlockPreventionMessage(null,null)); assertEquals(0, MessageFactory.getEndLegMessageQueue().size()); assertEquals(0, MessageFactory.getEnterRoadMessageQueue().size()); assertEquals(0, MessageFactory.getStartingLegMessageQueue().size()); assertEquals(0, MessageFactory.getLeaveRoadMessageQueue().size()); assertEquals(0, MessageFactory.getEndRoadMessageQueue().size()); assertEquals(0, MessageFactory.getEndLegMessageQueue().size()); }
public void testMessageFactory2(){ MessageFactory.GC_ALL_MESSAGES(); JDEQSimConfigGroup.setGC_MESSAGES(false); MessageFactory.disposeEndLegMessage(new EndLegMessage(null,null)); MessageFactory.disposeEnterRoadMessage(new EnterRoadMessage(null,null)); MessageFactory.disposeStartingLegMessage(new StartingLegMessage(null,null)); MessageFactory.disposeLeaveRoadMessage(new LeaveRoadMessage(null,null)); MessageFactory.disposeEndRoadMessage(new EndRoadMessage(null,null)); MessageFactory.disposeDeadlockPreventionMessage(new DeadlockPreventionMessage(null,null)); assertEquals(1, MessageFactory.getEndLegMessageQueue().size()); assertEquals(1, MessageFactory.getEnterRoadMessageQueue().size()); assertEquals(1, MessageFactory.getStartingLegMessageQueue().size()); assertEquals(1, MessageFactory.getLeaveRoadMessageQueue().size()); assertEquals(1, MessageFactory.getEndRoadMessageQueue().size()); assertEquals(1, MessageFactory.getEndLegMessageQueue().size()); }
public void testMessageFactory3(){ MessageFactory.GC_ALL_MESSAGES(); JDEQSimConfigGroup.setGC_MESSAGES(false); MessageFactory.disposeEndLegMessage(new EndLegMessage(null,null)); MessageFactory.disposeEnterRoadMessage(new EnterRoadMessage(null,null)); MessageFactory.disposeStartingLegMessage(new StartingLegMessage(null,null)); MessageFactory.disposeLeaveRoadMessage(new LeaveRoadMessage(null,null)); MessageFactory.disposeEndRoadMessage(new EndRoadMessage(null,null)); MessageFactory.disposeDeadlockPreventionMessage(new DeadlockPreventionMessage(null,null)); MessageFactory.getEndLegMessage(null, null); MessageFactory.getEnterRoadMessage(null, null); MessageFactory.getStartingLegMessage(null, null); MessageFactory.getLeaveRoadMessage(null, null); MessageFactory.getEndRoadMessage(null, null); MessageFactory.getDeadlockPreventionMessage(null, null); assertEquals(0, MessageFactory.getEndLegMessageQueue().size()); assertEquals(0, MessageFactory.getEnterRoadMessageQueue().size()); assertEquals(0, MessageFactory.getStartingLegMessageQueue().size()); assertEquals(0, MessageFactory.getLeaveRoadMessageQueue().size()); assertEquals(0, MessageFactory.getEndRoadMessageQueue().size()); assertEquals(0, MessageFactory.getEndLegMessageQueue().size()); }
@Override public void processEvent() { Event event = null; // the first EnterLink in a leg is a Wait2LinkEvent if (vehicle.getLinkIndex() == -1) { event = new VehicleEntersTrafficEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), null, 1.0); } else { event = new LinkEnterEvent(this.getMessageArrivalTime(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), vehicle.getCurrentLinkId()); } eventsManager.processEvent(event); }