BUILDFIX: don't multiple define class statics...use inline static method instead
parent
5b48107dbf
commit
715385eed7
|
|
@ -265,6 +265,8 @@ public:
|
|||
|
||||
size_t getIndex() const { return mAccumulatorIndex; }
|
||||
|
||||
virtual const char* getUnitLabel() { return ""; }
|
||||
|
||||
const std::string& getName() const { return mName; }
|
||||
|
||||
protected:
|
||||
|
|
@ -662,6 +664,9 @@ public:
|
|||
EventStatHandle(const char* name, const char* description = NULL)
|
||||
: trace_t(name, description)
|
||||
{}
|
||||
|
||||
/*virtual*/ const char* getUnitLabel() { return LLGetUnitLabel<T>::getUnitLabel(); }
|
||||
|
||||
};
|
||||
|
||||
template<typename T, typename VALUE_T>
|
||||
|
|
@ -682,6 +687,8 @@ public:
|
|||
SampleStatHandle(const char* name, const char* description = NULL)
|
||||
: trace_t(name, description)
|
||||
{}
|
||||
|
||||
/*virtual*/ const char* getUnitLabel() { return LLGetUnitLabel<T>::getUnitLabel(); }
|
||||
};
|
||||
|
||||
template<typename T, typename VALUE_T>
|
||||
|
|
@ -703,6 +710,7 @@ public:
|
|||
: trace_t(name)
|
||||
{}
|
||||
|
||||
/*virtual*/ const char* getUnitLabel() { return LLGetUnitLabel<T>::getUnitLabel(); }
|
||||
};
|
||||
|
||||
template<typename T, typename VALUE_T>
|
||||
|
|
@ -755,6 +763,8 @@ public:
|
|||
MemStatHandle(const char* name)
|
||||
: trace_t(name)
|
||||
{}
|
||||
|
||||
/*virtual*/ const char* getUnitLabel() { return "B"; }
|
||||
};
|
||||
|
||||
// measures effective memory footprint of specified type
|
||||
|
|
|
|||
|
|
@ -406,6 +406,22 @@ COMPARISON_OPERATORS(>=)
|
|||
COMPARISON_OPERATORS(==)
|
||||
COMPARISON_OPERATORS(!=)
|
||||
|
||||
|
||||
template<typename T>
|
||||
struct LLGetUnitLabel
|
||||
{
|
||||
static const char* getUnitLabel() { return ""; }
|
||||
};
|
||||
|
||||
template<typename T, typename STORAGE_T>
|
||||
struct LLGetUnitLabel<LLUnit<T, STORAGE_T> >
|
||||
{
|
||||
static const char* getUnitLabel() { return T::getUnitLabel(); }
|
||||
};
|
||||
|
||||
//
|
||||
// Unit declarations
|
||||
//
|
||||
namespace LLUnits
|
||||
{
|
||||
template<typename T>
|
||||
|
|
@ -427,9 +443,8 @@ struct HighestPrecisionType<LLUnit<UNIT_TYPE, STORAGE_TYPE> >
|
|||
struct unit_name \
|
||||
{ \
|
||||
typedef base_unit_name base_unit_t; \
|
||||
static const char* sUnitLabel; \
|
||||
static const char* getUnitLabel() { return unit_label; } \
|
||||
}; \
|
||||
const char* unit_name::sUnitLabel = unit_label; \
|
||||
template<typename STORAGE_TYPE> \
|
||||
struct ConversionFactor<unit_name, base_unit_name, STORAGE_TYPE> \
|
||||
{ \
|
||||
|
|
@ -448,8 +463,7 @@ struct ConversionFactor<base_unit_name, unit_name, STORAGE_TYPE> \
|
|||
} \
|
||||
}
|
||||
|
||||
struct Bytes { typedef Bytes base_unit_t; static const char* sUnitLabel;};
|
||||
const char* Bytes::sUnitLabel = "B";
|
||||
struct Bytes { typedef Bytes base_unit_t; static const char* getUnitLabel() { return "B"; }};
|
||||
LL_DECLARE_DERIVED_UNIT(1024, Bytes, Kilobytes, "KiB");
|
||||
LL_DECLARE_DERIVED_UNIT(1024 * 1024, Bytes, Megabytes, "MiB");
|
||||
LL_DECLARE_DERIVED_UNIT(1024 * 1024 * 1024, Bytes, Gigabytes, "GiB");
|
||||
|
|
@ -458,28 +472,24 @@ LL_DECLARE_DERIVED_UNIT(1024 / 8, Bytes, Kilobits, "Kib");
|
|||
LL_DECLARE_DERIVED_UNIT(1024 / 8, Bytes, Megabits, "Mib");
|
||||
LL_DECLARE_DERIVED_UNIT(1024 * 1024 * 1024 / 8, Bytes, Gigabits, "Gib");
|
||||
|
||||
struct Seconds { typedef Seconds base_unit_t; static const char* sUnitLabel; };
|
||||
const char* Seconds::sUnitLabel = "s";
|
||||
struct Seconds { typedef Seconds base_unit_t; static const char* getUnitLabel() { return "s"; } };
|
||||
LL_DECLARE_DERIVED_UNIT(60, Seconds, Minutes, "min");
|
||||
LL_DECLARE_DERIVED_UNIT(60 * 60, Seconds, Hours, "h");
|
||||
LL_DECLARE_DERIVED_UNIT(1.0 / 1000.0, Seconds, Milliseconds, "ms");
|
||||
LL_DECLARE_DERIVED_UNIT(1.0 / 1000000.0, Seconds, Microseconds, "\x09\x3cs");
|
||||
LL_DECLARE_DERIVED_UNIT(1.0 / 1000000000.0, Seconds, Nanoseconds, "ns");
|
||||
|
||||
struct Meters { typedef Meters base_unit_t; static const char* sUnitLabel; };
|
||||
const char* Meters::sUnitLabel = "m";
|
||||
struct Meters { typedef Meters base_unit_t; static const char* getUnitLabel() { return "m"; } };
|
||||
LL_DECLARE_DERIVED_UNIT(1000, Meters, Kilometers, "km");
|
||||
LL_DECLARE_DERIVED_UNIT(1.0 / 100.0, Meters, Centimeters, "cm");
|
||||
LL_DECLARE_DERIVED_UNIT(1.0 / 1000.0, Meters, Millimeters, "mm");
|
||||
|
||||
struct Hertz { typedef Hertz base_unit_t; static const char* sUnitLabel; };
|
||||
const char* Hertz::sUnitLabel = "Hz";
|
||||
struct Hertz { typedef Hertz base_unit_t; static const char* getUnitLabel() { return "Hz"; } };
|
||||
LL_DECLARE_DERIVED_UNIT(1000, Hertz, Kilohertz, "KHz");
|
||||
LL_DECLARE_DERIVED_UNIT(1000 * 1000, Hertz, Megahertz, "MHz");
|
||||
LL_DECLARE_DERIVED_UNIT(1000 * 1000 * 1000, Hertz, Gigahertz, "GHz");
|
||||
|
||||
struct Radians { typedef Radians base_unit_t; static const char* sUnitLabel;};
|
||||
const char* Radians::sUnitLabel = "rad";
|
||||
struct Radians { typedef Radians base_unit_t; static const char* getUnitLabel() { return "rad"; } };
|
||||
LL_DECLARE_DERIVED_UNIT(DEG_TO_RAD, Radians, Degrees, "deg");
|
||||
} // namespace LLUnits
|
||||
|
||||
|
|
|
|||
|
|
@ -523,12 +523,18 @@ void LLSceneMonitor::dumpToFile(std::string file_name)
|
|||
std::ostringstream row;
|
||||
row << it->getName();
|
||||
|
||||
const char* unit_label = it->getUnitLabel();
|
||||
if(unit_label[0])
|
||||
{
|
||||
row << "(" << unit_label << ")";
|
||||
}
|
||||
|
||||
S32 samples = 0;
|
||||
|
||||
for (S32 i = frame_count - 1; i >= 0; --i)
|
||||
for (S32 frame = 0; frame < frame_count; frame++)
|
||||
{
|
||||
samples += scene_load_recording.getPrevRecording(i).getSampleCount(*it);
|
||||
row << ", " << scene_load_recording.getPrevRecording(i).getSum(*it);
|
||||
samples += scene_load_recording.getPrevRecording(frame_count - frame).getSampleCount(*it);
|
||||
row << ", " << scene_load_recording.getPrevRecording(frame_count - frame).getSum(*it);
|
||||
}
|
||||
|
||||
row << std::endl;
|
||||
|
|
@ -550,10 +556,10 @@ void LLSceneMonitor::dumpToFile(std::string file_name)
|
|||
|
||||
S32 samples = 0;
|
||||
|
||||
for (S32 i = frame_count - 1; i >= 0; --i)
|
||||
for (S32 frame = 0; frame < frame_count; frame++)
|
||||
{
|
||||
samples += scene_load_recording.getPrevRecording(i).getSampleCount(*it);
|
||||
row << ", " << scene_load_recording.getPrevRecording(i).getMean(*it);
|
||||
samples += scene_load_recording.getPrevRecording(frame_count - frame).getSampleCount(*it);
|
||||
row << ", " << scene_load_recording.getPrevRecording(frame_count - frame).getMean(*it);
|
||||
}
|
||||
|
||||
row << std::endl;
|
||||
|
|
@ -575,10 +581,10 @@ void LLSceneMonitor::dumpToFile(std::string file_name)
|
|||
|
||||
S32 samples = 0;
|
||||
|
||||
for (S32 i = frame_count - 1; i >= 0; --i)
|
||||
for (S32 frame = 0; frame < frame_count; frame++)
|
||||
{
|
||||
samples += scene_load_recording.getPrevRecording(i).getSampleCount(*it);
|
||||
row << ", " << scene_load_recording.getPrevRecording(i).getMean(*it);
|
||||
samples += scene_load_recording.getPrevRecording(frame_count - frame).getSampleCount(*it);
|
||||
row << ", " << scene_load_recording.getPrevRecording(frame_count - frame).getMean(*it);
|
||||
}
|
||||
|
||||
row << std::endl;
|
||||
|
|
@ -596,9 +602,9 @@ void LLSceneMonitor::dumpToFile(std::string file_name)
|
|||
{
|
||||
os << it->getName();
|
||||
|
||||
for (S32 i = frame_count - 1; i >= 0; --i)
|
||||
for (S32 frame = 0; frame < frame_count; frame++)
|
||||
{
|
||||
os << ", " << scene_load_recording.getPrevRecording(i).getSum(*it).as<LLUnits::Megabytes>().value();
|
||||
os << ", " << scene_load_recording.getPrevRecording(frame_count - frame).getSum(*it).value();
|
||||
}
|
||||
|
||||
os << std::endl;
|
||||
|
|
@ -606,7 +612,6 @@ void LLSceneMonitor::dumpToFile(std::string file_name)
|
|||
|
||||
os.flush();
|
||||
os.close();
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Reference in New Issue