public static EndRoadMessage getEndRoadMessage(Scheduler scheduler, Vehicle vehicle) { if (endRoadMessageQueue.size() == 0) { return new EndRoadMessage(scheduler, vehicle); } else { EndRoadMessage message = endRoadMessageQueue.poll(); message.resetMessage(scheduler, vehicle); return message; } }
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()); }
@Override public void handleMessage() { if (vehicle.isCurrentLegFinished()) { /* * the leg is completed, try to enter the last link but do not enter * it (just wait, until you have clearance for enter and then leave * the road) */ vehicle.initiateEndingLegMode(); vehicle.moveToFirstLinkInNextLeg(); Road road = Road.getRoad(vehicle.getCurrentLinkId()); road.enterRequest(vehicle, getMessageArrivalTime()); } else if (!vehicle.isCurrentLegFinished()) { // if leg is not finished yet vehicle.moveToNextLinkInLeg(); Road nextRoad = Road.getRoad(vehicle.getCurrentLinkId()); nextRoad.enterRequest(vehicle, getMessageArrivalTime()); } }
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()); }