12 #ifndef ScalarRecordHppIncluded 13 #define ScalarRecordHppIncluded 32 template <
typename data>
56 Bool
PrevDiff(Clock const ExecClock) const;
57 data const &
PrevData(Clock const ExecClock) const;
97 template <typename data>
110 template <
typename data>
123 template <
typename data>
138 template <
typename data>
152 template <
typename data>
156 if (
this == &that)
return *
this;
169 template <
typename data>
173 if (
this == &that)
return *
this;
186 template<
typename data>
199 template<
typename data>
213 template<
typename data>
227 template<
typename data>
249 template<
typename data>
254 Warn(ExecClock < that.
mPrevClock, eClockConflict);
274 template<
typename data>
286 template<
typename data>
299 template<
typename data>
312 template<
typename data>
325 template<
typename data>
338 template<
typename data>
353 #endif//ScalarRecordHppIncluded void updateExecData(Clock const ExecClock, data const &Data)
Update the execution data.
Definition: scalarrecord.hpp:228
ScalarRecord()
Default constructor.
Definition: scalarrecord.hpp:111
Scalar records store expression scalar metrics.
Definition: scalarrecord.hpp:33
#define openKangarooSpace
Open the project namespace.
Definition: project.hpp:74
void initialiseExecData(data const &Data)
Initialise the execution data.
Definition: scalarrecord.hpp:214
data mExecBuffer
ExecBuffer is valid after initialisation.
Definition: scalarrecord.hpp:86
data const & PrevData(Clock const ExecClock) const
PrevData = PrevDiff ? PrevBuffer : ExecBuffer().
Definition: scalarrecord.hpp:300
Bool PrevDiff(Clock const ExecClock) const
PrevDiff = (PrevClock == ExecClock).
Definition: scalarrecord.hpp:313
Data types, metadata types, limits, and ordering.
data const & ExecData() const
Return execution data in execution buffer.
Definition: scalarrecord.hpp:287
Scalar base is the base class for scalar metrics.
Definition: scalarbase.hpp:31
void finaliseRecord(data const &Data)
Finalise the record for constants.
Definition: scalarrecord.hpp:200
virtual Serial DataTypeSerial() const overridefinal
Data type serial.
Definition: scalarrecord.hpp:275
data const & PrevBuffer() const
Return previous data in previous buffer: validity depends on PrevDiff.
Definition: scalarrecord.hpp:339
Clock mPrevClock
PrevClock determines validity of PrevBuffer.
Definition: scalarrecord.hpp:87
void syncExecClock()
Synchronise with the execution clock.
Definition: scalarrecord.hpp:187
data DataType
Data type.
Definition: scalarrecord.hpp:37
Scalar base is the base class for scalar metrics.
data const & ExecBuffer() const
Return execution data in execution buffer.
Definition: scalarrecord.hpp:326
data mPrevBuffer
PrevBuffer is valid only at PrevClock.
Definition: scalarrecord.hpp:85
ScalarRecord< data > & operator=(ScalarRecord< data > &&that) noexcept
Move assignment.
Definition: scalarrecord.hpp:153
#define closeKangarooSpace
Close the project namespace.
Definition: project.hpp:75
void swapExecData(Clock const ExecClock, ScalarRecord< data > &that)
Swap two execution data.
Definition: scalarrecord.hpp:250
Represents data type meta.
Definition: datatypes.hpp:73
~ScalarRecord()
Destructor.
Definition: scalarrecord.hpp:98