module->frameStarted(header);
module->pointsAdded(
AnalysisDataPointSetRef(header, 0, ncol, y, dy, present));
- module->frameFinished();
+ module->frameFinished(header);
}
if (!_bInData)
{
void
-AbstractAnalysisData::notifyFrameFinish() const
+AbstractAnalysisData::notifyFrameFinish(const AnalysisDataFrameHeader &header) const
{
GMX_ASSERT(_impl->_bInData, "notifyDataStart() not called");
GMX_ASSERT(_impl->_bInFrame, "notifyFrameStart() not called");
+ GMX_ASSERT(header.index() == _impl->_currHeader.index(),
+ "Header does not correspond to current frame");
_impl->_bInFrame = false;
Impl::ModuleList::const_iterator i;
for (i = _impl->_modules.begin(); i != _impl->_modules.end(); ++i)
{
- (*i)->frameFinished();
+ (*i)->frameFinished(header);
}
}
+void
+AbstractAnalysisData::notifyFrameFinish() const
+{
+ notifyFrameFinish(_impl->_currHeader);
+}
+
+
void
AbstractAnalysisData::notifyDataFinish() const
{
* Should be called once for each call of notifyFrameStart(), after any
* notifyPointsAdd() calls for the frame.
*/
+ void notifyFrameFinish(const AnalysisDataFrameHeader &header) const;
+ /*! \brief
+ * Deprecated convenience method for not needing a frame header.
+ *
+ * Will be removed as part of future work.
+ */
void notifyFrameFinish() const;
/*! \brief
* Notifies attached modules of the end of data.
notifyPointsAdd(AnalysisDataPointSetRef(header, 0, columnCount(),
&_value[i * columnCount()],
NULL, NULL));
- notifyFrameFinish();
+ notifyFrameFinish(header);
}
notifyDataFinish();
}
/*! \brief
* Called when a data frame is finished.
*/
- virtual void frameFinished() = 0;
+ virtual void frameFinished(const AnalysisDataFrameHeader &header) = 0;
/*! \brief
* Called (once) when no more data is available.
*/
void
-AnalysisDataProxy::frameFinished()
+AnalysisDataProxy::frameFinished(const AnalysisDataFrameHeader &header)
{
- notifyFrameFinish();
+ notifyFrameFinish(header);
}
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &frame);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
void
-AnalysisDataAverageModule::frameFinished()
+AnalysisDataAverageModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
}
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
//! Convenience access to the average of a data column.
void
-AnalysisDataDisplacementModule::frameFinished()
+AnalysisDataDisplacementModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
if (_impl->nstored <= 1)
{
header, 0, k, _impl->currd, NULL, NULL));
}
- notifyFrameFinish();
+ notifyFrameFinish(header);
}
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
void
-BasicAverageHistogramModule::frameFinished()
+BasicAverageHistogramModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
++frameCount_;
}
void
-AnalysisDataSimpleHistogramModule::frameFinished()
+AnalysisDataSimpleHistogramModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
storeThisFrame(&impl_->hist_[0], NULL, NULL);
}
void
-AnalysisDataWeightedHistogramModule::frameFinished()
+AnalysisDataWeightedHistogramModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
storeThisFrame(&impl_->hist_[0], NULL, NULL);
}
void
-AnalysisDataBinAverageModule::frameFinished()
+AnalysisDataBinAverageModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
}
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
void
-AbstractPlotModule::frameFinished()
+AbstractPlotModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
if (!isFileOpen())
{
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points) = 0;
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
protected:
void startReferenceFrame(const AnalysisDataFrameHeader &header);
void checkReferencePoints(const AnalysisDataPointSetRef &points);
- void finishReferenceFrame();
+ void finishReferenceFrame(const AnalysisDataFrameHeader &header);
// Could be scoped_ptrs
std::auto_ptr<TestReferenceChecker> rootChecker_;
frameChecker_.reset(new TestReferenceChecker(
rootChecker_->checkCompound("DataFrame",
formatString("Frame%d", frameIndex_).c_str())));
- ++frameIndex_;
frameChecker_->checkReal(header.x(), "X");
}
void
-MockAnalysisModule::Impl::finishReferenceFrame()
+MockAnalysisModule::Impl::finishReferenceFrame(const AnalysisDataFrameHeader &header)
{
EXPECT_TRUE(frameChecker_.get() != NULL);
+ EXPECT_EQ(frameIndex_, header.index());
+ ++frameIndex_;
frameChecker_.reset();
}
.WillOnce(Invoke(StaticDataPointsChecker(&frame, &points, 0,
data.columnCount())));
}
- EXPECT_CALL(*this, frameFinished());
+ EXPECT_CALL(*this, frameFinished(_))
+ .WillOnce(Invoke(StaticDataFrameHeaderChecker(&frame)));
}
EXPECT_CALL(*this, dataFinished());
}
EXPECT_CALL(*this, pointsAdded(_))
.WillOnce(Invoke(StaticDataPointsChecker(&frame, &points, firstcol, n)));
}
- EXPECT_CALL(*this, frameFinished());
+ EXPECT_CALL(*this, frameFinished(_))
+ .WillOnce(Invoke(StaticDataFrameHeaderChecker(&frame)));
}
EXPECT_CALL(*this, dataFinished());
}
EXPECT_CALL(*this, pointsAdded(_))
.WillOnce(Invoke(StaticDataPointsStorageChecker(source, &data, row,
storageCount)));
- EXPECT_CALL(*this, frameFinished());
+ EXPECT_CALL(*this, frameFinished(_))
+ .WillOnce(Invoke(StaticDataFrameHeaderChecker(&frame)));
}
EXPECT_CALL(*this, dataFinished());
}
Expectation pointsAdd = EXPECT_CALL(*this, pointsAdded(_))
.After(dataStart)
.WillRepeatedly(Invoke(impl_, &Impl::checkReferencePoints));
- Expectation frameFinish = EXPECT_CALL(*this, frameFinished())
+ Expectation frameFinish = EXPECT_CALL(*this, frameFinished(_))
.After(dataStart)
.WillRepeatedly(Invoke(impl_, &Impl::finishReferenceFrame));
EXPECT_CALL(*this, dataFinished())
MOCK_METHOD1(dataStarted, void(AbstractAnalysisData *data));
MOCK_METHOD1(frameStarted, void(const AnalysisDataFrameHeader &header));
MOCK_METHOD1(pointsAdded, void(const AnalysisDataPointSetRef &points));
- MOCK_METHOD0(frameFinished, void());
+ MOCK_METHOD1(frameFinished, void(const AnalysisDataFrameHeader &header));
MOCK_METHOD0(dataFinished, void());
void setupStaticCheck(const AnalysisDataTestInput &data,
virtual void dataStarted(AbstractAnalysisData *data);
virtual void frameStarted(const AnalysisDataFrameHeader &header);
virtual void pointsAdded(const AnalysisDataPointSetRef &points);
- virtual void frameFinished();
+ virtual void frameFinished(const AnalysisDataFrameHeader &header);
virtual void dataFinished();
private:
}
-void IndexFileWriterModule::frameFinished()
+void IndexFileWriterModule::frameFinished(const AnalysisDataFrameHeader & /*header*/)
{
}