public static StartingLegMessage getStartingLegMessage(Scheduler scheduler, Vehicle vehicle) { if (startingLegMessageQueue.size() == 0) { return new StartingLegMessage(scheduler, vehicle); } else { StartingLegMessage message = startingLegMessageQueue.poll(); message.resetMessage(scheduler, vehicle); return message; } }
@Override public void handleMessage() { // if current leg is in car mode, then enter request in first road if (vehicle.getCurrentLeg().getMode().equals(TransportMode.car)) { // if empty leg, then end leg, else simulate leg if (vehicle.getCurrentLinkRoute().length == 0) { // move to first link in next leg and schedule an end leg // message // duration of leg = 0 (departure and arrival time is the same) scheduleEndLegMessage(getMessageArrivalTime()); } else { // start the new leg Road road = Road.getRoad(vehicle.getCurrentLinkId()); road.enterRequest(vehicle, getMessageArrivalTime()); } } else { scheduleEndLegMessage(getMessageArrivalTime() + vehicle.getCurrentLeg().getTravelTime()); } }
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 processEvent() { Event event; // schedule ActEndEvent event = new ActivityEndEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle .getPreviousActivity().getFacilityId(), vehicle.getPreviousActivity().getType()); eventsManager.processEvent(event); // schedule AgentDepartureEvent event = new PersonDepartureEvent(this.getMessageArrivalTime(), vehicle.getOwnerPerson().getId(), vehicle.getCurrentLinkId(), vehicle.getCurrentLeg().getMode()); eventsManager.processEvent(event); }
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()); }