Use separate class for data storage.
Moved storage implementation from AbstractAnalysisDataStored and
parallel storage implementation from AnalysisData to a common
AnalysisDataStorage helper class that is used through containment
and delegation instead of inheritance.
Makes the code more reusable in eventual implementation of
parallel-enabled analysis modules, moves implementation details away
from the public interface (AnalysisDataStorage now only needs to be
forward-declared in public headers), and clarifies responsibilities in
the code.
Support for multipoint data is still not very good (but not worse than
it was), but should now be easier to improve. In the future, it could
be considered whether to split the unit tests such that storage tests
test AnalysisDataStorage directly instead of through the AnalysisData
interface, but currently, these classes are quite tightly bound
together, so there is not much to gain from separate testing.
Related to issue #827.
Change-Id: I8c34a618893c770bff6d8216500d1061455bee89
25 files changed: