diff options
Diffstat (limited to 'indra/llcommon/lltracerecording.h')
-rw-r--r-- | indra/llcommon/lltracerecording.h | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/indra/llcommon/lltracerecording.h b/indra/llcommon/lltracerecording.h index 05e1577a5a..7a0266529b 100644 --- a/indra/llcommon/lltracerecording.h +++ b/indra/llcommon/lltracerecording.h @@ -119,6 +119,7 @@ namespace LLTrace // gather data from recording, ignoring time relationship (for example, pulling data from slave threads) void mergeRecording(const Recording& other); + // grab latest recorded data void update(); // Timer accessors @@ -134,11 +135,11 @@ namespace LLTrace LLUnit<LLUnits::Bytes, U32> getSum(const TraceType<MemStatAccumulator>& stat) const; LLUnit<LLUnits::Bytes, F32> getPerSec(const TraceType<MemStatAccumulator>& stat) const; - // Count accessors + // CountStatHandle accessors F64 getSum(const TraceType<CountAccumulator<F64> >& stat) const; S64 getSum(const TraceType<CountAccumulator<S64> >& stat) const; template <typename T> - T getSum(const Count<T>& stat) const + T getSum(const CountStatHandle<T>& stat) const { return (T)getSum(static_cast<const TraceType<CountAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -146,7 +147,7 @@ namespace LLTrace F64 getPerSec(const TraceType<CountAccumulator<F64> >& stat) const; F64 getPerSec(const TraceType<CountAccumulator<S64> >& stat) const; template <typename T> - T getPerSec(const Count<T>& stat) const + T getPerSec(const CountStatHandle<T>& stat) const { return (T)getPerSec(static_cast<const TraceType<CountAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -155,11 +156,11 @@ namespace LLTrace U32 getSampleCount(const TraceType<CountAccumulator<S64> >& stat) const; - // Measurement accessors + // MeasurementStatHandle accessors F64 getSum(const TraceType<MeasurementAccumulator<F64> >& stat) const; S64 getSum(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getSum(const Measurement<T>& stat) const + T getSum(const MeasurementStatHandle<T>& stat) const { return (T)getSum(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -167,7 +168,7 @@ namespace LLTrace F64 getPerSec(const TraceType<MeasurementAccumulator<F64> >& stat) const; F64 getPerSec(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getPerSec(const Measurement<T>& stat) const + T getPerSec(const MeasurementStatHandle<T>& stat) const { return (T)getPerSec(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -175,7 +176,7 @@ namespace LLTrace F64 getMin(const TraceType<MeasurementAccumulator<F64> >& stat) const; S64 getMin(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getMin(const Measurement<T>& stat) const + T getMin(const MeasurementStatHandle<T>& stat) const { return (T)getMin(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -183,7 +184,7 @@ namespace LLTrace F64 getMax(const TraceType<MeasurementAccumulator<F64> >& stat) const; S64 getMax(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getMax(const Measurement<T>& stat) const + T getMax(const MeasurementStatHandle<T>& stat) const { return (T)getMax(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -191,7 +192,7 @@ namespace LLTrace F64 getMean(const TraceType<MeasurementAccumulator<F64> >& stat) const; F64 getMean(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getMean(Measurement<T>& stat) const + T getMean(MeasurementStatHandle<T>& stat) const { return (T)getMean(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -199,7 +200,7 @@ namespace LLTrace F64 getStandardDeviation(const TraceType<MeasurementAccumulator<F64> >& stat) const; F64 getStandardDeviation(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getStandardDeviation(const Measurement<T>& stat) const + T getStandardDeviation(const MeasurementStatHandle<T>& stat) const { return (T)getMean(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -207,7 +208,7 @@ namespace LLTrace F64 getLastValue(const TraceType<MeasurementAccumulator<F64> >& stat) const; S64 getLastValue(const TraceType<MeasurementAccumulator<S64> >& stat) const; template <typename T> - T getLastValue(const Measurement<T>& stat) const + T getLastValue(const MeasurementStatHandle<T>& stat) const { return (T)getLastValue(static_cast<const TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> >&> (stat)); } @@ -217,6 +218,8 @@ namespace LLTrace LLUnit<LLUnits::Seconds, F64> getDuration() const { return LLUnit<LLUnits::Seconds, F64>(mElapsedSeconds); } + void syncTo(Recording& other); + private: friend class ThreadRecorder; @@ -337,9 +340,9 @@ namespace LLTrace } template <typename T> - typename TraceType<T>::mean_t getPeriodMean(const TraceType<T>& stat) const + typename MeanValueType<TraceType<T> >::type getPeriodMean(const TraceType<T>& stat) const { - typename TraceType<T>::mean_t mean = 0.0; + typename MeanValueType<TraceType<T> >::type mean = 0.0; for (S32 i = 0; i < mNumPeriods; i++) { if (mRecordingPeriods[i].getDuration() > 0.f) @@ -352,9 +355,9 @@ namespace LLTrace } template <typename T> - typename TraceType<T>::mean_t getPeriodMeanPerSec(const TraceType<T>& stat) const + typename MeanValueType<TraceType<T> >::type getPeriodMeanPerSec(const TraceType<T>& stat) const { - typename TraceType<T>::mean_t mean = 0.0; + typename MeanValueType<TraceType<T> >::type mean = 0.0; for (S32 i = 0; i < mNumPeriods; i++) { if (mRecordingPeriods[i].getDuration() > 0.f) @@ -391,6 +394,7 @@ namespace LLTrace { public: void extend(); + Recording& getAcceptedRecording() { return mAcceptedRecording; } // implementation for LLStopWatchControlsMixin |