@Test public void testUnschedule(){ Scheduler scheduler=new Scheduler(new MessageQueue()); SimUnit sm1=new DummySimUnit(scheduler); Message m1=new DummyMessage(); sm1.sendMessage(m1, sm1, 1); scheduler.unschedule(m1); scheduler.startSimulation(); Assert.assertEquals(0.0, scheduler.getSimTime(), 0.0); }
public void startSimulation() { Message m; while (!queue.isEmpty() && simTime < simulationEndTime) { m = queue.getNextMessage(); if (m != null) { simTime = m.getMessageArrivalTime(); m.processEvent(); m.handleMessage(); } printLog(); } }
public void sendMessage(Message m, SimUnit targetUnit, double messageArrivalTime) { m.setSendingUnit(this); m.setReceivingUnit(targetUnit); m.setMessageArrivalTime(messageArrivalTime); scheduler.schedule(m); }
@Test public void testSchedule1(){ Scheduler scheduler=new Scheduler(new MessageQueue()); SimUnit sm1=new DummySimUnit(scheduler); Message m1=new DummyMessage(); sm1.sendMessage(m1, sm1, 9000); scheduler.startSimulation(); Assert.assertEquals(9000.0, scheduler.getSimTime(), 0.0); }
@Override public void run() { events.initProcessing(); Timer t = new Timer(); t.startTimer(); Scheduler scheduler = new Scheduler(new MessageQueue(), config.getSimulationEndTime()); Road.setAllRoads(new HashMap<Id<Link>, Road>()); // initialize network Road road; for (Link link : this.scenario.getNetwork().getLinks().values()) { road = new Road(scheduler, link); Road.getAllRoads().put(link.getId(), road); } for (Person person : this.scenario.getPopulation().getPersons().values()) { new Vehicle(scheduler, person, activityDurationInterpretation); // the vehicle registers itself to the scheduler } scheduler.startSimulation(); t.endTimer(); log.info("Time needed for one iteration (only JDEQSimulation part): " + t.getMeasuredTime() + "[ms]"); events.finishProcessing(); } }
DeadlockPreventionMessage m = this.deadlockPreventionMessages.removeFirst(); assert (m.vehicle == nextVehicle); this.scheduler.unschedule(m);
public void testMessageFactory6(){ MessageFactory.GC_ALL_MESSAGES(); JDEQSimConfigGroup.setGC_MESSAGES(false); Scheduler scheduler=new Scheduler(new MessageQueue()); Person person= PopulationUtils.getFactory().createPerson(Id.create("abc", Person.class)); Vehicle vehicle=new Vehicle(scheduler, person, PlansConfigGroup.ActivityDurationInterpretation.minOfDurationAndEndTime ); assertEquals(true,MessageFactory.getEndLegMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getEnterRoadMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getStartingLegMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getLeaveRoadMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getEndRoadMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getDeadlockPreventionMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getEndLegMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getEnterRoadMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getStartingLegMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getLeaveRoadMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getEndRoadMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getDeadlockPreventionMessage(scheduler, vehicle).vehicle==vehicle); }
@Test public void testUnschedule2(){ Scheduler scheduler=new Scheduler(new MessageQueue()); SimUnit sm1=new DummySimUnit(scheduler); Message m1=new DummyMessage(); sm1.sendMessage(m1, sm1, 10); DummyMessage1 m2=new DummyMessage1(); m2.messageToUnschedule=m1; sm1.sendMessage(m2, sm1, 1); scheduler.startSimulation(); Assert.assertEquals(1.0, scheduler.getSimTime(), 0.0); }
@Override public void handleMessage() { this.getSendingUnit().getScheduler().unschedule(messageToUnschedule); }
public void testMessageFactory5(){ MessageFactory.GC_ALL_MESSAGES(); JDEQSimConfigGroup.setGC_MESSAGES(true); Scheduler scheduler=new Scheduler(new MessageQueue()); Person person= PopulationUtils.getFactory().createPerson(Id.create("abc", Person.class)); Vehicle vehicle=new Vehicle(scheduler, person, PlansConfigGroup.ActivityDurationInterpretation.minOfDurationAndEndTime ); assertEquals(true,MessageFactory.getEndLegMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getEnterRoadMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getStartingLegMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getLeaveRoadMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getEndRoadMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getDeadlockPreventionMessage(scheduler, vehicle).scheduler==scheduler); assertEquals(true,MessageFactory.getEndLegMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getEnterRoadMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getStartingLegMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getLeaveRoadMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getEndRoadMessage(scheduler, vehicle).vehicle==vehicle); assertEquals(true,MessageFactory.getDeadlockPreventionMessage(scheduler, vehicle).vehicle==vehicle); }