diff --git a/indra/llcommon/lltrace.h b/indra/llcommon/lltrace.h index 25d95d9670c18819c0b50d5977b494768a170d0e..0cb6a84aec45557046dbac16b36637a0e76833cc 100644 --- a/indra/llcommon/lltrace.h +++ b/indra/llcommon/lltrace.h @@ -223,7 +223,7 @@ namespace LLTrace typedef typename MeanValueType<TraceType<ACCUMULATOR> >::type mean_t; TraceType(const char* name, const char* description = NULL) - : LLInstanceTracker(name), + : LLInstanceTracker<TraceType<ACCUMULATOR>, std::string>(name), mName(name), mDescription(description ? description : "") { @@ -459,16 +459,17 @@ namespace LLTrace { public: typedef typename LLUnits::HighestPrecisionType<T>::type_t storage_t; + typedef TraceType<MeasurementAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> > trace_t; Measurement(const char* name, const char* description = NULL) - : TraceType(name, description) + : trace_t(name, description) {} template<typename UNIT_T> void sample(UNIT_T value) { T converted_value(value); - getPrimaryAccumulator().sample(LLUnits::rawValue(converted_value)); + trace_t::getPrimaryAccumulator().sample(LLUnits::rawValue(converted_value)); } }; @@ -478,16 +479,17 @@ namespace LLTrace { public: typedef typename LLUnits::HighestPrecisionType<T>::type_t storage_t; + typedef TraceType<CountAccumulator<typename LLUnits::HighestPrecisionType<T>::type_t> > trace_t; Count(const char* name, const char* description = NULL) - : TraceType(name) + : trace_t(name) {} template<typename UNIT_T> void add(UNIT_T value) { T converted_value(value); - getPrimaryAccumulator().add(LLUnits::rawValue(converted_value)); + trace_t::getPrimaryAccumulator().add(LLUnits::rawValue(converted_value)); } }; }