nl.tudelft.simulation.dsol.simulators
Class DEVSSimulator

java.lang.Object
  extended by nl.tudelft.simulation.event.EventProducer
      extended by nl.tudelft.simulation.dsol.simulators.Simulator
          extended by nl.tudelft.simulation.dsol.simulators.DEVSSimulator
All Implemented Interfaces:
Serializable, Runnable, Remote, DEVSSimulatorInterface, SimulatorInterface, EventProducerInterface
Direct Known Subclasses:
DEVDESSSimulator

public class DEVSSimulator
extends Simulator
implements DEVSSimulatorInterface

The DEVS defines the interface of the DEVS simulator. DEVS stands for the Discrete Event System Specification. More information on Discrete Event Simulation can be found in "Theory of Modeling and Simulation" by Bernard Zeigler et. al.

(c) copyright 2002-2005 Delft University of Technology , the Netherlands.
See for project information www.simulation.tudelft.nl
License of use: Lesser General Public License (LGPL) , no warranty.

Since:
1.0
Version:
$Revision: 1.2 $ $Date: 2007/04/23 15:30:48 $
Author:
Peter Jacobs
See Also:
Serialized Form

Field Summary
protected  EventListInterface eventList
          eventList represents the future event list
 
Fields inherited from class nl.tudelft.simulation.dsol.simulators.Simulator
replication, running, semaphore, simulatorTime, worker
 
Fields inherited from class nl.tudelft.simulation.event.EventProducer
listeners
 
Fields inherited from interface nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface
EVENTLIST_CHANGED_EVENT
 
Fields inherited from interface nl.tudelft.simulation.dsol.simulators.SimulatorInterface
END_OF_REPLICATION_EVENT, START_EVENT, START_REPLICATION_EVENT, STEP_EVENT, STOP_EVENT, TIME_CHANGED_EVENT, WARMUP_EVENT
 
Fields inherited from interface nl.tudelft.simulation.event.EventProducerInterface
FIRST_POSITION, LAST_POSITION
 
Constructor Summary
DEVSSimulator()
           
 
Method Summary
 boolean cancelEvent(SimEventInterface event)
          cancels an event from the event list.
protected  void endReplication()
          the end of replication method, triggered by a special SimEvent
 EventListInterface getEventList()
          returns the eventlist of the simulator.
 void initialize(Replication replication)
          initializes the simulator with a specified replication.
 void run()
          The run method defines the actual time step mechanism of the simulator.
 void scheduleEvent(double relativeDelay, Object source, Object target, String method, Object[] args)
          schedules a methodCall at a relative duration.
 void scheduleEvent(double relativeDelay, short priority, Object source, Object target, String method, Object[] args)
          schedules a methodCall at a relative duration.
 void scheduleEvent(double relativeDelay, TimeUnitInterface timeUnit, Object source, Object target, String method, Object[] args)
          schedules a methodCall at a relative duration.
 void scheduleEvent(double relativeDelay, TimeUnitInterface timeUnit, short priority, Object source, Object target, String method, Object[] args)
          schedules a methodCall at a relative duration.
 void scheduleEvent(SimEventInterface event)
          Method scheduleEvent schedules an event on the eventlist.
 void setEventList(EventListInterface eventList)
          Method setEventList sets the eventlist.
 void step()
          steps the simulator.
 void stop()
          stops the simulator.
 
Methods inherited from class nl.tudelft.simulation.dsol.simulators.Simulator
getReplication, getSimulatorTime, isRunning, start
 
Methods inherited from class nl.tudelft.simulation.event.EventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, getEventTypes, removeAllListeners, removeAllListeners, removeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface nl.tudelft.simulation.dsol.simulators.SimulatorInterface
getReplication, getSimulatorTime, isRunning, start
 
Methods inherited from interface nl.tudelft.simulation.event.EventProducerInterface
addListener, addListener, addListener, addListener, getEventTypes, removeListener
 

Field Detail

eventList

protected EventListInterface eventList
eventList represents the future event list

Constructor Detail

DEVSSimulator

public DEVSSimulator()
Method Detail

cancelEvent

public boolean cancelEvent(SimEventInterface event)
Description copied from interface: DEVSSimulatorInterface
cancels an event from the event list.

Specified by:
cancelEvent in interface DEVSSimulatorInterface
Parameters:
event - a simulation event to be canceled.
Returns:
boolean the succes of the operation.
See Also:
#cancelEvent(SimEventInterface)

getEventList

public EventListInterface getEventList()
Description copied from interface: DEVSSimulatorInterface
returns the eventlist of the simulator.

Specified by:
getEventList in interface DEVSSimulatorInterface
Returns:
the eventlist.
See Also:
#getEventList()

initialize

public void initialize(Replication replication)
                throws RemoteException,
                       SimRuntimeException
Description copied from interface: SimulatorInterface
initializes the simulator with a specified replication.

Specified by:
initialize in interface SimulatorInterface
Overrides:
initialize in class Simulator
Parameters:
replication - the replication
Throws:
RemoteException - on network failure
SimRuntimeException - on simulator failure (simulator is running)
See Also:
#initialize(nl.tudelft.simulation.dsol.experiment.Replication)

scheduleEvent

public void scheduleEvent(SimEventInterface event)
                   throws SimRuntimeException
Description copied from interface: DEVSSimulatorInterface
Method scheduleEvent schedules an event on the eventlist.

Specified by:
scheduleEvent in interface DEVSSimulatorInterface
Parameters:
event - a simulation event
Throws:
SimRuntimeException - whenever event is scheduled in past.
See Also:
#scheduleEvent(SimEventInterface)

scheduleEvent

public void scheduleEvent(double relativeDelay,
                          Object source,
                          Object target,
                          String method,
                          Object[] args)
                   throws SimRuntimeException
Description copied from interface: DEVSSimulatorInterface
schedules a methodCall at a relative duration. The executionTime is thus simulator.getSimulatorTime()+relativeDuration.

Specified by:
scheduleEvent in interface DEVSSimulatorInterface
Parameters:
relativeDelay - the relativeDelay in timeUnits of the simulator.
source - the source of the event
target - the target
method - the method
args - the arguments.
Throws:
SimRuntimeException - whenever the event is scheduled in the past.
See Also:
DEVSSimulatorInterface.scheduleEvent(double, java.lang.Object, java.lang.Object, java.lang.String, java.lang.Object[])

scheduleEvent

public void scheduleEvent(double relativeDelay,
                          short priority,
                          Object source,
                          Object target,
                          String method,
                          Object[] args)
                   throws SimRuntimeException
Description copied from interface: DEVSSimulatorInterface
schedules a methodCall at a relative duration. The executionTime is thus simulator.getSimulatorTime()+relativeDuration.

Specified by:
scheduleEvent in interface DEVSSimulatorInterface
Parameters:
relativeDelay - the relativeDelay in timeUnits of the simulator.
priority - the priority compared to other events scheduled at the same time.
source - the source of the event
target - the target
method - the method
args - the arguments.
Throws:
SimRuntimeException - whenever the event is scheduled in the past.
See Also:
DEVSSimulatorInterface.scheduleEvent(double, short, java.lang.Object, java.lang.Object, java.lang.String, java.lang.Object[])

scheduleEvent

public void scheduleEvent(double relativeDelay,
                          TimeUnitInterface timeUnit,
                          Object source,
                          Object target,
                          String method,
                          Object[] args)
                   throws RemoteException,
                          SimRuntimeException
Description copied from interface: DEVSSimulatorInterface
schedules a methodCall at a relative duration. The executionTime is thus simulator.getSimulatorTime()+relativeDuration.

Specified by:
scheduleEvent in interface DEVSSimulatorInterface
Parameters:
relativeDelay - the relativeDelay in timeUnits of the simulator.
timeUnit - the timeUnits of the delay
source - the source of the event
target - the target
method - the method
args - the arguments.
Throws:
RemoteException - on network failure.
SimRuntimeException - whenever the event is scheduled in the past.
See Also:
DEVSSimulatorInterface.scheduleEvent(double, nl.tudelft.simulation.dsol.experiment.TimeUnitInterface, java.lang.Object, java.lang.Object, java.lang.String, java.lang.Object[])

scheduleEvent

public void scheduleEvent(double relativeDelay,
                          TimeUnitInterface timeUnit,
                          short priority,
                          Object source,
                          Object target,
                          String method,
                          Object[] args)
                   throws RemoteException,
                          SimRuntimeException
Description copied from interface: DEVSSimulatorInterface
schedules a methodCall at a relative duration. The executionTime is thus simulator.getSimulatorTime()+relativeDuration.

Specified by:
scheduleEvent in interface DEVSSimulatorInterface
Parameters:
relativeDelay - the relativeDelay in timeUnits of the simulator.
timeUnit - the timeUnits of the delay
priority - the priority compared to other events scheduled at the same time.
source - the source of the event
target - the target
method - the method
args - the arguments.
Throws:
RemoteException - on network failure.
SimRuntimeException - whenever the event is scheduled in the past.
See Also:
DEVSSimulatorInterface.scheduleEvent(double, nl.tudelft.simulation.dsol.experiment.TimeUnitInterface, short, java.lang.Object, java.lang.Object, java.lang.String, java.lang.Object[])

setEventList

public void setEventList(EventListInterface eventList)
Description copied from interface: DEVSSimulatorInterface
Method setEventList sets the eventlist.

Specified by:
setEventList in interface DEVSSimulatorInterface
Parameters:
eventList - the eventList for the simulator.
See Also:
#setEventList(EventListInterface)

step

public void step()
          throws SimRuntimeException
Description copied from interface: SimulatorInterface
steps the simulator.

Specified by:
step in interface SimulatorInterface
Overrides:
step in class Simulator
Throws:
SimRuntimeException - whenever stepping fails. Possible occasions include stepping a stopped simulator
See Also:
SimulatorInterface.step()

run

public void run()
Description copied from class: Simulator
The run method defines the actual time step mechanism of the simulator. The implementation of this method depends on the formalism. Where discrete event formalisms loop over an eventlist continuous simulators take pre-defined time steps.

Specified by:
run in interface Runnable
Specified by:
run in class Simulator
See Also:
Simulator.run()

stop

public void stop()
Description copied from interface: SimulatorInterface
stops the simulator.

Specified by:
stop in interface SimulatorInterface
Overrides:
stop in class Simulator
See Also:
SimulatorInterface.stop()

endReplication

protected void endReplication()
the end of replication method, triggered by a special SimEvent



Copyright © 2002-2010 Delft University of Technology, the Netherlands. All Rights Reserved.