... | ... | @@ -136,26 +136,45 @@ deactivate simulation |
|
|
|
|
|
### Callback declaration and activation diagram
|
|
|
|
|
|
In the following diagram, two trackers can be potentially used, so we need to declare a creator for both of them.
|
|
|
|
|
|
Eventually, the user configuration will only activate one.
|
|
|
|
|
|
Note that the 'simulationTrackerManager' is actually implemented through the static part of 'SimulationTracker' class.
|
|
|
|
|
|
```plantuml
|
|
|
participant main
|
|
|
participant simulation
|
|
|
participant simulationTrackerManager
|
|
|
participant declaredTrackerA
|
|
|
participant declaredTrackerB
|
|
|
participant trackerCreatorA
|
|
|
participant trackerCreatorB
|
|
|
participant trackerB
|
|
|
|
|
|
main->simulation : create
|
|
|
main->trackerCreatorA : create
|
|
|
main->simulationTrackerManager : register trackerCreatorA
|
|
|
|
|
|
main->trackerCreatorB : createmain
|
|
|
main->simulationTrackerManager : register trackerCreatorB
|
|
|
|
|
|
group tracker builder registration
|
|
|
group tracker A
|
|
|
main->declaredTrackerA : instanciate
|
|
|
declaredTrackerA -> trackerCreatorA : create
|
|
|
declaresTrackerA -> simulationTrackerManager : register trackerCreatorA
|
|
|
end
|
|
|
group tracker B
|
|
|
main->declaredTrackerB : instanciate
|
|
|
declaredTrackerB -> trackerCreatorB : create
|
|
|
declaresTrackerB -> simulationTrackerManager : register trackerCreatorB
|
|
|
end
|
|
|
end
|
|
|
|
|
|
group runtime tracker configuration
|
|
|
main->main : read tracker configuration
|
|
|
activate main
|
|
|
main->simulationTrackerManager : create tracker B
|
|
|
simulationTrackerManager -> trackerB : create
|
|
|
main->simulation : register tracker B
|
|
|
deactivate main
|
|
|
end
|
|
|
|
|
|
main -> simulation : run
|
|
|
``` |
|
|
\ No newline at end of file |