avrora.sim
Class SimulatorThread

java.lang.Object
  extended byjava.lang.Thread
      extended byavrora.sim.SimulatorThread
All Implemented Interfaces:
java.lang.Runnable

public class SimulatorThread
extends java.lang.Thread

The SimulatorThread class is a thread intended to run a Simulator in a multiple-node simulation. The mapping is one-to-one: each simulator is expected to be run in its own thread. Multiple simulators are then synchronized by being inserted into a group using the GlobalClock class.


Field Summary
protected  Simulation.Node node
           
protected  Synchronizer synchronizer
          The synchronizer field stores a reference to the synchronizer that this thread is a part of; this is needed so that when the thread finishes execution (either through a timeout or error, etc), it can be removed from the simulation and the rest of the simulation can continue.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
SimulatorThread(Simulation.Node n)
          The constructor for the simulator thread accepts an instance of Simulator as a parameter and stores it internally.
 
Method Summary
 Simulation.Node getNode()
          The getNode() method gets a reference to the Simulation.Node that this simulator thread is simulating.
 Simulator getSimulator()
          The getSimulator() method gets the Simulator instance that this thread is bound to.
 void run()
          The run() method begins the simulation, calling the start() method of the Simulator instance associated with this thread.
 void setSynchronizer(Synchronizer s)
          The setSynchronizer() method sets the synchronizer for this thread.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

node

protected final Simulation.Node node

synchronizer

protected Synchronizer synchronizer
The synchronizer field stores a reference to the synchronizer that this thread is a part of; this is needed so that when the thread finishes execution (either through a timeout or error, etc), it can be removed from the simulation and the rest of the simulation can continue.

Constructor Detail

SimulatorThread

public SimulatorThread(Simulation.Node n)
The constructor for the simulator thread accepts an instance of Simulator as a parameter and stores it internally.

Parameters:
n - the node
Method Detail

getNode

public Simulation.Node getNode()
The getNode() method gets a reference to the Simulation.Node that this simulator thread is simulating.

Returns:
a reference to the node which this thread is simulating

getSimulator

public Simulator getSimulator()
The getSimulator() method gets the Simulator instance that this thread is bound to.

Returns:
the instance of Simulator this thread is intended to run.

run

public void run()
The run() method begins the simulation, calling the start() method of the Simulator instance associated with this thread.


setSynchronizer

public void setSynchronizer(Synchronizer s)
The setSynchronizer() method sets the synchronizer for this thread.

Parameters:
s - the synchronizer for this node