This is a proposal on specifying relation of tasks.
Currently, ROME has task hierarchy system. It may be enough.
But a missing thing is that we can not use "||".
So a possibility is like this.
For example, there are two calibration tasks B and D, and a calculation task A requires one of B or D.
B and D dependes on data filling task C.
This case, one writes down the relation in definition file.
<TaskDependenses>
<TaskDependense taskname="A"/> B || D </TaskDependense>
<TaskDependense taskname="B"/> C </TaskDependense>
<TaskDependense taskname="D"/> C && !B </TaskDependense>
</TaskDependeses>
Then, builder analyzes the relation and re-arranges the execution order like,
C->B->D->A
At run time, ROMEEventLoop checks if depending tasks were executed before calling a task. And when
B or C is executed, it calls A.
This way users can specify complicated relation like ((A && B) || C ) || !D )....
A problem is that you can not express the relation with indent in configuration file and documentation.
This is just a proposal, I'm not sure which is better, TaskHierarcy or TaskDependense.
Personaly, I am not using task controll. |