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 |
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 |
NslMultiClockScheduler
public NslMultiClockScheduler(NslSystem sys)
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