Improve AbstractAnalysisData data access interface.
authorTeemu Murtola <teemu.murtola@gmail.com>
Tue, 27 Dec 2011 20:15:25 +0000 (22:15 +0200)
committerTeemu Murtola <teemu.murtola@gmail.com>
Wed, 22 Feb 2012 05:38:08 +0000 (07:38 +0200)
commit4220bfdf6f4d134c014658da2a5b30e2dd7cafda
treea40770c5d0cdce2b301a52ee7a11422cc0509137
parent920d5bf05de2b8acaf614a669d271e3a88ff5253
Improve AbstractAnalysisData data access interface.

Access to stored data is now done through wrapper object instead of
retrieving raw pointers.  Also refactored the implementation such that
the pure virtual methods that implement the actual data access are now
protected, and the public members are now simple non-virtual wrappers
that perform common checking and indexing.

Also removed support for negative data frame indexing.  It is no longer
necessary because the data frame index is now passed to
AnalysisDataModuleInterface::pointsAdded(), so it's easy to compute the
absolute index of past frames, and additionally it didn't work properly
in parallelization schemes.  Also removed possibility to access the
current frame from pointsAdded(), as it would just create complications
to allow access to an incomplete frame.

Part of issue #827.

Change-Id: If932c3f6b8394f8ceacc632fb9d87ec1933f56ca
16 files changed:
src/gromacs/analysisdata/abstractdata-impl.h
src/gromacs/analysisdata/abstractdata.cpp
src/gromacs/analysisdata/abstractdata.h
src/gromacs/analysisdata/analysisdata.cpp
src/gromacs/analysisdata/arraydata.cpp
src/gromacs/analysisdata/arraydata.h
src/gromacs/analysisdata/dataframe.cpp
src/gromacs/analysisdata/dataframe.h
src/gromacs/analysisdata/dataproxy.cpp
src/gromacs/analysisdata/dataproxy.h
src/gromacs/analysisdata/modules/displacement.cpp
src/gromacs/analysisdata/modules/displacement.h
src/gromacs/analysisdata/tests/analysisdata.cpp
src/gromacs/analysisdata/tests/datatest.h
src/gromacs/analysisdata/tests/mock_module.cpp
src/gromacs/trajectoryanalysis/modules/distance.cpp