nslj.src.system
Class NslMultiClockScheduler

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--nslj.src.system.NslScheduler
              |
              +--nslj.src.system.NslMultiClockScheduler
All Implemented Interfaces:
java.lang.Runnable

public class NslMultiClockScheduler
extends NslScheduler


Fields inherited from class nslj.src.system.NslScheduler
actualEndTime, actualNumEpochs, actualNumModules, contEndTime, contNumEpochs, contNumModules, curNumModules, cycleSuspended, epochSuspended, moduleSuspended, notFinished, numModules, resetScheduler, schedulerMode, schedulerState, simulationSuspended, simulationType
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
NslMultiClockScheduler(NslSystem sys)
           
 
Method Summary
 void addModuleToClockRunList(NslModule module)
          Add module into the scheduler.
 void addModuleToClockTrainList(NslModule module)
           
 void breakAll()
          Used for controlling state of scheduler thread
 void breakCycles()
           
 void breakEpochs()
           
 void breakModules()
           
 void checkSystemStatus()
           
 void continueAll()
           
 void continueAll(double endTime)
           
 void continueCycle()
           
 void continueCycle(int endCycle)
           
 void continueEpoch()
           
 void continueEpoch(int endEpochs)
           
 void continueModule()
           
 void continueModule(int end)
           
 void createRunListRecursive(NslModule module)
           
 void createSchedulerRunList()
           
 void createSchedulerTrainList()
           
 void createTrainListRecursive(NslModule module)
           
 void endCycle()
           
 void endEpoch()
           
 void endModule()
           
 void endModuleRecursively(NslModule module)
           
 void endRun()
           
 void endRunEpoch()
           
 void endRunEpochRecursively(NslModule module)
           
 void endRunRecursively(NslModule module)
           
 void endSys()
           
 void endSysRecursively(NslModule module)
           
 void endTrain()
           
 void endTrainEpoch()
           
 void endTrainEpochRecursively(NslModule module)
           
 void endTrainRecursively(NslModule module)
           
 int getNumModules()
           
 void getNumModulesRecursive(NslModule module)
           
 void initClassRecursively(NslClass cl)
           
 void initCycle()
           
 void initEpoch()
           
 void initModule()
           
 void initModuleRecursively(NslModule module)
           
 void initRun()
          Initialize the system and current active module including its child modules
 void initRunEpoch()
           
 void initRunEpochRecursively(NslModule module)
           
 void initRunList()
           
 void initRunRecursively(NslModule module)
          Initialize module module and its child modules recursively.
 void initSys()
           
 void initSysRecursively(NslModule module)
           
 void initTrain()
          Initialize the system and current active module including its child modules
 void initTrainEpoch()
           
 void initTrainEpochRecursively(NslModule module)
           
 void initTrainList()
           
 void initTrainRecursively(NslModule module)
          Initialize module module and its child modules recursively.
 void oneCycle()
          make one cycle through simulation.
 void reset()
          reset the scheduler, clear all nslConnection and modules in the scheduler ready for next model to run.
 void run()
          Run the active modules until time time in the basic step size specified in NslSystem The modules registered in the scheduler will run with an interval specified by the run step size.
 void run(char type)
           
 void run(double endTime)
           
 void runAll()
           
 void runAll(int endTime)
           
 void runOneCycle()
           
 void simRun()
           
 void simRun(double endTime)
           
 void simTrain()
           
 void simTrain(double endTime)
           
 void stepCycle()
          make one system run step.
 void stepCycle(int cycles)
           
 void stepEpoch()
           
 void stepEpoch(int epochs)
           
 void stepModule()
           
 void stepModule(int modules)
           
 void train(char type)
           
 void train(double endTime)
           
 void trainAll()
           
 void trainAll(int endTime)
           
 void trainAndRunAll()
           
 void trainOneCycle()
           
 void updateBuffers(NslModule module)
          Update module module and its child modules recursively.
 
Methods inherited from class nslj.src.system.NslScheduler
addModel, addModule
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, 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
 

Constructor Detail

NslMultiClockScheduler

public NslMultiClockScheduler(NslSystem sys)
Method Detail

createRunListRecursive

public void createRunListRecursive(NslModule module)

createTrainListRecursive

public void createTrainListRecursive(NslModule module)

getNumModulesRecursive

public void getNumModulesRecursive(NslModule module)

getNumModules

public int getNumModules()

createSchedulerRunList

public void createSchedulerRunList()

createSchedulerTrainList

public void createSchedulerTrainList()

addModuleToClockRunList

public void addModuleToClockRunList(NslModule module)
Add module into the scheduler. If there exists a list of modules with the same run step size as the object module, the module will be added to the corresponding list. Otherwise, a list of module with that run step size will be created. There is no maximum number of those lists, but keeping it minimal can significantly speed up the simulation.
Parameters:
module - - module to be added.

addModuleToClockTrainList

public void addModuleToClockTrainList(NslModule module)

checkSystemStatus

public void checkSystemStatus()

run

public void run()
Run the active modules until time time in the basic step size specified in NslSystem The modules registered in the scheduler will run with an interval specified by the run step size.
Overrides:
run in class java.lang.Thread

stepCycle

public void stepCycle()
make one system run step.
Overrides:
stepCycle in class NslScheduler

stepCycle

public void stepCycle(int cycles)
Overrides:
stepCycle in class NslScheduler

stepEpoch

public void stepEpoch()
Overrides:
stepEpoch in class NslScheduler

stepEpoch

public void stepEpoch(int epochs)
Overrides:
stepEpoch in class NslScheduler

stepModule

public void stepModule()
Overrides:
stepModule in class NslScheduler

stepModule

public void stepModule(int modules)
Overrides:
stepModule in class NslScheduler

initSys

public void initSys()
Overrides:
initSys in class NslScheduler

initModule

public void initModule()
Overrides:
initModule in class NslScheduler

initEpoch

public void initEpoch()

initCycle

public void initCycle()

oneCycle

public void oneCycle()
make one cycle through simulation. For a module, if the last run time plus its step size is equal to or smaller than the current system time, that module is executed. Otherwise, the run command is ignored.

endCycle

public void endCycle()

endEpoch

public void endEpoch()

endModule

public void endModule()
Overrides:
endModule in class NslScheduler

endSys

public void endSys()
Overrides:
endSys in class NslScheduler

initTrainList

public void initTrainList()

initRunList

public void initRunList()

initSysRecursively

public void initSysRecursively(NslModule module)

initModuleRecursively

public void initModuleRecursively(NslModule module)

initClassRecursively

public void initClassRecursively(NslClass cl)

initTrainEpoch

public void initTrainEpoch()
Overrides:
initTrainEpoch in class NslScheduler

initTrainEpochRecursively

public void initTrainEpochRecursively(NslModule module)

initTrain

public void initTrain()
Initialize the system and current active module including its child modules
Overrides:
initTrain in class NslScheduler

initTrainRecursively

public void initTrainRecursively(NslModule module)
Initialize module module and its child modules recursively.
Parameters:
module -  

trainOneCycle

public void trainOneCycle()

trainAll

public void trainAll()
Overrides:
trainAll in class NslScheduler

trainAll

public void trainAll(int endTime)
Overrides:
trainAll in class NslScheduler

train

public void train(char type)
Overrides:
train in class NslScheduler

train

public void train(double endTime)
Overrides:
train in class NslScheduler

simTrain

public void simTrain()
Overrides:
simTrain in class NslScheduler

simTrain

public void simTrain(double endTime)
Overrides:
simTrain in class NslScheduler

endTrain

public void endTrain()
Overrides:
endTrain in class NslScheduler

endTrainRecursively

public void endTrainRecursively(NslModule module)

endTrainEpoch

public void endTrainEpoch()
Overrides:
endTrainEpoch in class NslScheduler

endTrainEpochRecursively

public void endTrainEpochRecursively(NslModule module)

initRunEpoch

public void initRunEpoch()
Overrides:
initRunEpoch in class NslScheduler

initRunEpochRecursively

public void initRunEpochRecursively(NslModule module)

initRun

public void initRun()
Initialize the system and current active module including its child modules
Overrides:
initRun in class NslScheduler

initRunRecursively

public void initRunRecursively(NslModule module)
Initialize module module and its child modules recursively.
Parameters:
module -  

runOneCycle

public void runOneCycle()

runAll

public void runAll()
Overrides:
runAll in class NslScheduler

runAll

public void runAll(int endTime)
Overrides:
runAll in class NslScheduler

run

public void run(char type)
Overrides:
run in class NslScheduler

run

public void run(double endTime)
Overrides:
run in class NslScheduler

simRun

public void simRun()
Overrides:
simRun in class NslScheduler

simRun

public void simRun(double endTime)
Overrides:
simRun in class NslScheduler

endRun

public void endRun()
Overrides:
endRun in class NslScheduler

endRunRecursively

public void endRunRecursively(NslModule module)

endRunEpoch

public void endRunEpoch()
Overrides:
endRunEpoch in class NslScheduler

endRunEpochRecursively

public void endRunEpochRecursively(NslModule module)

endModuleRecursively

public void endModuleRecursively(NslModule module)

endSysRecursively

public void endSysRecursively(NslModule module)

trainAndRunAll

public void trainAndRunAll()
Overrides:
trainAndRunAll in class NslScheduler

updateBuffers

public void updateBuffers(NslModule module)
Update module module and its child modules recursively.
Parameters:
module -  

breakAll

public void breakAll()
Description copied from class: NslScheduler
Used for controlling state of scheduler thread
Overrides:
breakAll in class NslScheduler

breakModules

public void breakModules()
Overrides:
breakModules in class NslScheduler

breakCycles

public void breakCycles()
Overrides:
breakCycles in class NslScheduler

breakEpochs

public void breakEpochs()
Overrides:
breakEpochs in class NslScheduler

continueAll

public void continueAll()
Overrides:
continueAll in class NslScheduler

continueCycle

public void continueCycle()
Overrides:
continueCycle in class NslScheduler

continueEpoch

public void continueEpoch()
Overrides:
continueEpoch in class NslScheduler

continueModule

public void continueModule()
Overrides:
continueModule in class NslScheduler

continueAll

public void continueAll(double endTime)
Overrides:
continueAll in class NslScheduler

continueCycle

public void continueCycle(int endCycle)
Overrides:
continueCycle in class NslScheduler

continueEpoch

public void continueEpoch(int endEpochs)
Overrides:
continueEpoch in class NslScheduler

continueModule

public void continueModule(int end)
Overrides:
continueModule in class NslScheduler

reset

public void reset()
reset the scheduler, clear all nslConnection and modules in the scheduler ready for next model to run.
Overrides:
reset in class NslScheduler