Support for parallel data modules.
Main changes:
- Add parallelDataStarted() to AnalysisDataModuleInterface to
initialize modules for parallel processing of data. If this method
is called, and the module returns true, then the module accepts that
frame notification methods can be called in relaxed order: the frames
can be started in any order, and multiple frames may be active
simultaneously.
- Implement this method in the existing modules, either explicitly or
by using convenience base classes.
- Add notification methods to AnalysisDataModuleManager to notify
parallel frames. These methods are called as soon as the data is
available to notify those modules that accept parallel data.
Existing methods were changed to only notify the serial modules.
- Make AnalysisDataStorage call the new notification methods
appropriately. In most cases, this absorbs the complexity that these
new methods bring.
- Update (part of) the unit tests to make it possible to test this
relaxed frame ordering.
Part of #869.
Change-Id: I3cccf78a09221b8181c3d8b217a793c996d0c522
21 files changed: