Opened 7 years ago
#105 new defect
rethink transmission of step information/step data to bridge
Reported by: | ke | Owned by: | jd |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | core | Version: | |
Keywords: | Cc: |
Description
The bridge interfaces are somewhat messy: some "central" step information is transmitted in the bridge(...) methods, some "less central" information is transmitted in various specialized methods with names such as registerStepSourceCodeLocation or registerMessage.
A concrete problem with this is that the bridge has no way of knowing when a bunch of such method calls (typically, they happen immediately after each other when the step hits a call or exit port) is over, thus has to update the views (by firing a selection event via selectIfPaused(int)) in each method call. This leads to a lot of unnecessary events and GUI activity, which is even visible as jiggling of layer 0 of the layered tree view.
A possible solution would be to equip each bridge with call and exit methods that accept many arguments, taking all of the step information for that port at once. In the course of doing this, the step (and, for TraleSLD, its variant registerRuleApplication) should probably be removed and the call methods should take care of creating the step instead. + just one Jasper call per port, these calls are bottlenecks
- clients (tralesld_hooks.pl, kahinasicstus.pl, kahinaswi.pl) need more invasive adapting
Another possible solution would be to introduce a new bridge method portDone to mark the end of step data transmission for the current port. Only when this method is called should a selection event be fired.
- more instead of less Jasper calls
+ clients need less invasive adapting