VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends
makVrf::DtProfileNode Class Reference

Profile node class stores timing data for a profiled section. More...

Public Types

enum  Attributes { ENONE = 0, EVIRTUAL = 1, EINVISIBLE = 2, ENODE = 3 }

Public Member Functions

 DtProfileNode (const char *name, DtProfileManager *mgr, DtProfileNode *parent, Attributes attr)
 CTOR.
 ~DtProfileNode ()
 DTOR.
DtProfileNodegetChildNode (const char *, Attributes attr=ENONE)
 Finds the child with the give name or creates it Strings need to be a string literal since only pointer comparisons are done.
bool isVirtual () const
bool isInvisible () const
DtProfileNodeparent () const
 Get the parent of this node.
DtProfileNodesibling () const
 Get the next sibling to this node.
DtProfileNodechild () const
 Get the first child of this node.
void reset ()
 reset the timing data and call count of this node
const charname () const
 returns the name of the node
int totalCalls () const
 get the total calls since last reset
DtProfileStat totalTime () const
 get the total time since last reset
DtProfileStat timeLastFrame () const
 get the total time since last frame
unsigned nestingLevel () const
 get the nesting level
void nextFrame ()

Protected Types

typedef tbb::spin_mutex StatMutex
 IMPORTANT: compared by pointer value frequently identical string that is not the same object may not work.
typedef tbb::spin_rw_mutex Mutex

Protected Member Functions

DtProfileTimestamp call ()
 increment the call count and timing data of this node
bool finish (const DtProfileTimestamp &start)
 end the current call timing data.

Protected Attributes

DtProfileManagermyManager
const charmyName
StatMutex myStatMutex
DtProfileStat myTotalTime
DtProfileStat myTimeLastFrame
 cumulative since reset
tbb::atomic< intmyTotalCalls
 cumulative time in this frame
tbb::atomic< intmyTotalCallsThisFrame
 number of times function was called
Mutex myMutex
DtProfileNodemyParent
 tree
DtProfileNodemyLogParent
DtProfileNodemyLogRoot
DtProfileNodemyChild
DtProfileNodemySibling
unsigned myNestingLevel
Attributes myAttributes
DtColumnLogger::ColumnmyParentColumn
 column for this node in the log output
DtColumnLogger::ColumnmyTimeColumn
DtColumnLogger::ColumnmyInstColumn
DtColumnLogger::ColumnmyRateColumn

Friends

class DtProfileManager

Detailed Description

Profile node class stores timing data for a profiled section.

Member Typedef Documentation

typedef tbb::spin_mutex makVrf::DtProfileNode::StatMutex
protected

IMPORTANT: compared by pointer value frequently identical string that is not the same object may not work.

typedef tbb::spin_rw_mutex makVrf::DtProfileNode::Mutex
protected

Member Enumeration Documentation

Enumerator:
ENONE 
EVIRTUAL 
EINVISIBLE 

virtual node sums up children stats and presents them

ENODE 

structural node, ignore for stats purposes

Constructor & Destructor Documentation

makVrf::DtProfileNode::DtProfileNode ( const char name,
DtProfileManager mgr,
DtProfileNode parent,
Attributes  attr 
)

CTOR.

makVrf::DtProfileNode::~DtProfileNode ( )

DTOR.

Member Function Documentation

DtProfileNode* makVrf::DtProfileNode::getChildNode ( const char ,
Attributes  attr = ENONE 
)

Finds the child with the give name or creates it Strings need to be a string literal since only pointer comparisons are done.

bool makVrf::DtProfileNode::isVirtual ( ) const
inline
bool makVrf::DtProfileNode::isInvisible ( ) const
inline
DtProfileNode* makVrf::DtProfileNode::parent ( ) const
inline

Get the parent of this node.

DtProfileNode* makVrf::DtProfileNode::sibling ( ) const
inline

Get the next sibling to this node.

DtProfileNode* makVrf::DtProfileNode::child ( ) const
inline

Get the first child of this node.

void makVrf::DtProfileNode::reset ( )

reset the timing data and call count of this node

const char* makVrf::DtProfileNode::name ( void  ) const
inline

returns the name of the node

int makVrf::DtProfileNode::totalCalls ( ) const
inline

get the total calls since last reset

DtProfileStat makVrf::DtProfileNode::totalTime ( ) const
inline

get the total time since last reset

DtProfileStat makVrf::DtProfileNode::timeLastFrame ( ) const

get the total time since last frame

unsigned makVrf::DtProfileNode::nestingLevel ( ) const
inline

get the nesting level

void makVrf::DtProfileNode::nextFrame ( )
DtProfileTimestamp makVrf::DtProfileNode::call ( )
protected

increment the call count and timing data of this node

bool makVrf::DtProfileNode::finish ( const DtProfileTimestamp start)
protected

end the current call timing data.

If this is a recursive function this will only increment the call count, but not end the timing data until the last function ends

Friends And Related Function Documentation

friend class DtProfileManager
friend

Member Data Documentation

DtProfileManager* makVrf::DtProfileNode::myManager
protected
const char* makVrf::DtProfileNode::myName
protected
StatMutex makVrf::DtProfileNode::myStatMutex
mutableprotected
DtProfileStat makVrf::DtProfileNode::myTotalTime
protected
DtProfileStat makVrf::DtProfileNode::myTimeLastFrame
protected

cumulative since reset

tbb::atomic<int> makVrf::DtProfileNode::myTotalCalls
protected

cumulative time in this frame

frame tracking stuff

tbb::atomic<int> makVrf::DtProfileNode::myTotalCallsThisFrame
protected

number of times function was called

Mutex makVrf::DtProfileNode::myMutex
mutableprotected
DtProfileNode* makVrf::DtProfileNode::myParent
protected

tree

DtProfileNode* makVrf::DtProfileNode::myLogParent
protected
DtProfileNode* makVrf::DtProfileNode::myLogRoot
protected
DtProfileNode* makVrf::DtProfileNode::myChild
protected
DtProfileNode* makVrf::DtProfileNode::mySibling
protected
unsigned makVrf::DtProfileNode::myNestingLevel
protected
Attributes makVrf::DtProfileNode::myAttributes
protected
DtColumnLogger::Column* makVrf::DtProfileNode::myParentColumn
protected

column for this node in the log output

DtColumnLogger::Column* makVrf::DtProfileNode::myTimeColumn
protected
DtColumnLogger::Column* makVrf::DtProfileNode::myInstColumn
protected
DtColumnLogger::Column* makVrf::DtProfileNode::myRateColumn
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)