34 Stats(
const std::string& name,
unsigned int numberOfFrames);
36 void setName(
const std::string& name) { _name = name; }
37 const std::string&
getName()
const {
return _name; }
41 unsigned int getEarliestFrameNumber()
const {
return _latestFrameNumber < static_cast<unsigned int>(_attributeMapList.size()) ? 0 : _latestFrameNumber -
static_cast<unsigned int>(_attributeMapList.size()) + 1; }
47 bool setAttribute(
unsigned int frameNumber,
const std::string& attributeName,
double value);
49 inline bool getAttribute(
unsigned int frameNumber,
const std::string& attributeName,
double& value)
const
52 return getAttributeNoMutex(frameNumber, attributeName, value);
55 bool getAveragedAttribute(
const std::string& attributeName,
double& value,
bool averageInInverseSpace=
false)
const;
57 bool getAveragedAttribute(
unsigned int startFrameNumber,
unsigned int endFrameNumber,
const std::string& attributeName,
double& value,
bool averageInInverseSpace=
false)
const;
62 return getAttributeMapNoMutex(frameNumber);
68 return getAttributeMapNoMutex(frameNumber);
73 void collectStats(
const std::string& str,
bool flag) { _collectMap[str] = flag; }
79 CollectMap::const_iterator itr = _collectMap.find(str);
80 return (itr != _collectMap.end()) ? itr->second :
false;
83 void report(std::ostream& out,
const char* indent=0)
const;
84 void report(std::ostream& out,
unsigned int frameNumber,
const char* indent=0)
const;
90 bool getAttributeNoMutex(
unsigned int frameNumber,
const std::string& attributeName,
double& value)
const;
99 if (frameNumber > _latestFrameNumber)
return -1;
102 if (frameNumber < getEarliestFrameNumber())
return -1;
104 if (frameNumber >= _baseFrameNumber)
return frameNumber - _baseFrameNumber;
105 else return static_cast<int>(_attributeMapList.size()) - (_baseFrameNumber-frameNumber);
This class provides an object-oriented thread mutex interface.
Definition Mutex:31
bool getAttributeNoMutex(unsigned int frameNumber, const std::string &attributeName, double &value) const
int getIndex(unsigned int frameNumber) const
Definition Stats:96
void report(std::ostream &out, unsigned int frameNumber, const char *indent=0) const
unsigned int getLatestFrameNumber() const
Definition Stats:42
std::map< std::string, bool > CollectMap
Definition Stats:71
bool getAttribute(unsigned int frameNumber, const std::string &attributeName, double &value) const
Definition Stats:49
void collectStats(const std::string &str, bool flag)
Definition Stats:73
bool collectStats(const std::string &str) const
Definition Stats:75
AttributeMap _invalidAttributeMap
Definition Stats:116
std::string _name
Definition Stats:108
OpenThreads::Mutex _mutex
Definition Stats:110
void allocate(unsigned int numberOfFrames)
std::map< std::string, double > AttributeMap
Definition Stats:44
std::vector< AttributeMap > AttributeMapList
Definition Stats:45
void setName(const std::string &name)
Definition Stats:36
const std::string & getName() const
Definition Stats:37
Stats(const std::string &name)
CollectMap _collectMap
Definition Stats:118
unsigned int _latestFrameNumber
Definition Stats:113
unsigned int _baseFrameNumber
Definition Stats:112
unsigned int getEarliestFrameNumber() const
Definition Stats:41
bool setAttribute(unsigned int frameNumber, const std::string &attributeName, double value)
AttributeMap & getAttributeMap(unsigned int frameNumber)
Definition Stats:59
bool getAveragedAttribute(const std::string &attributeName, double &value, bool averageInInverseSpace=false) const
void report(std::ostream &out, const char *indent=0) const
bool getAveragedAttribute(unsigned int startFrameNumber, unsigned int endFrameNumber, const std::string &attributeName, double &value, bool averageInInverseSpace=false) const
const AttributeMap & getAttributeMap(unsigned int frameNumber) const
Definition Stats:65
virtual ~Stats()
Definition Stats:88
const AttributeMap & getAttributeMapNoMutex(unsigned int frameNumber) const
AttributeMap & getAttributeMapNoMutex(unsigned int frameNumber)
Stats(const std::string &name, unsigned int numberOfFrames)
AttributeMapList _attributeMapList
Definition Stats:115
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
#define OSG_EXPORT
Definition osg/Export:39