MeVisLab Toolbox Reference
MLCallGraphNode Class Reference

#include <mlCallGraph.h>

Public Types

typedef std::unordered_map< MLCallGraphFunction *, MLCallGraphFunction * > CallGraphCopyFunctionMap
 

Public Member Functions

 MLCallGraphNode (MLTimeProfile *timeProfile=nullptr, MLCallGraphNode *parent=nullptr, void *userData=nullptr, const MLCallGraphFunctionPtr &callGraphFunction=MLCallGraphFunctionPtr(), const std::string &nodeInfo="")
 
 ~MLCallGraphNode ()
 
MLCallGraphNode * createChild (MLTimeProfile *timeProfile, const MLCallGraphFunctionPtr &function, void *userData, const std::string &nodeInfo)
 
const MLTimer & timer () const
 
const MLTimeProfile * timeProfile () const
 
const MLCallGraphFunctionPtr & function () const
 
void clearFunctionRecursive ()
 
const std::vector< MLCallGraphNode * > & children () const
 
MLCallGraphNode * parent () const
 
bool isRecursive (const MLTimeProfile *timeProfile) const
 Returns true if the node is a recursive call of its function regarding the time profile.
 
bool isRecursive () const
 Returns true if the node is a recursive call of its function.
 
void print (std::ostream &out, const std::string &indent="") const
 
void printTrace (std::ostream &out) const
 Prints the current call graph node for tracing.
 
void removeFromParent ()
 Removes the node from its parent.
 
const MLTimeStatistics & statistics () const
 Returns the time statistics of the call graph node.
 
void * userData () const
 Returns the user data.
 
const std::string & nodeInfo () const
 Returns the node information.
 
void clearUserData ()
 Clears the user data.
 
MLCallGraphNode * deepCopy (CallGraphCopyFunctionMap *copyFunctionMap) const
 

Friends

class MLProfilingManager
 
class MLTimeProfile
 

Detailed Description

Definition at line 95 of file mlCallGraph.h.

Member Typedef Documentation

◆ CallGraphCopyFunctionMap

Definition at line 98 of file mlCallGraph.h.

Constructor & Destructor Documentation

◆ MLCallGraphNode()

MLCallGraphNode::MLCallGraphNode ( MLTimeProfile *  timeProfile = nullptr,
MLCallGraphNode *  parent = nullptr,
void *  userData = nullptr,
const MLCallGraphFunctionPtr &  callGraphFunction = MLCallGraphFunctionPtr(),
const std::string &  nodeInfo = "" 
)

◆ ~MLCallGraphNode()

MLCallGraphNode::~MLCallGraphNode ( )

Member Function Documentation

◆ children()

const std::vector< MLCallGraphNode * > & MLCallGraphNode::children ( ) const
inline

Definition at line 115 of file mlCallGraph.h.

◆ clearFunctionRecursive()

void MLCallGraphNode::clearFunctionRecursive ( )

◆ clearUserData()

void MLCallGraphNode::clearUserData ( )
inline

Clears the user data.

Definition at line 148 of file mlCallGraph.h.

◆ createChild()

MLCallGraphNode * MLCallGraphNode::createChild ( MLTimeProfile *  timeProfile,
const MLCallGraphFunctionPtr &  function,
void *  userData,
const std::string &  nodeInfo 
)

◆ deepCopy()

MLCallGraphNode * MLCallGraphNode::deepCopy ( CallGraphCopyFunctionMap *  copyFunctionMap) const

◆ function()

const MLCallGraphFunctionPtr & MLCallGraphNode::function ( ) const
inline

Definition at line 113 of file mlCallGraph.h.

◆ isRecursive() [1/2]

bool MLCallGraphNode::isRecursive ( ) const
inline

Returns true if the node is a recursive call of its function.

Definition at line 263 of file mlCallGraph.h.

◆ isRecursive() [2/2]

bool MLCallGraphNode::isRecursive ( const MLTimeProfile *  timeProfile) const
inline

Returns true if the node is a recursive call of its function regarding the time profile.

If it is false, isRecursive() can still return true.

Definition at line 277 of file mlCallGraph.h.

◆ nodeInfo()

const std::string & MLCallGraphNode::nodeInfo ( ) const
inline

Returns the node information.

Definition at line 145 of file mlCallGraph.h.

◆ parent()

MLCallGraphNode * MLCallGraphNode::parent ( ) const
inline

Definition at line 116 of file mlCallGraph.h.

◆ print()

void MLCallGraphNode::print ( std::ostream &  out,
const std::string &  indent = "" 
) const

◆ printTrace()

void MLCallGraphNode::printTrace ( std::ostream &  out) const

Prints the current call graph node for tracing.

◆ removeFromParent()

void MLCallGraphNode::removeFromParent ( )

Removes the node from its parent.

This is used by MLTimeProfile when call graph nodes are deleted. Otherwise, the parent would delete the invalid child pointer again.

◆ statistics()

const MLTimeStatistics & MLCallGraphNode::statistics ( ) const
inline

Returns the time statistics of the call graph node.

Definition at line 136 of file mlCallGraph.h.

◆ timeProfile()

const MLTimeProfile * MLCallGraphNode::timeProfile ( ) const
inline

Definition at line 112 of file mlCallGraph.h.

◆ timer()

const MLTimer & MLCallGraphNode::timer ( ) const
inline

Definition at line 111 of file mlCallGraph.h.

◆ userData()

void * MLCallGraphNode::userData ( ) const
inline

Returns the user data.

Definition at line 142 of file mlCallGraph.h.

Friends And Related Symbol Documentation

◆ MLProfilingManager

friend class MLProfilingManager
friend

Definition at line 163 of file mlCallGraph.h.

◆ MLTimeProfile

friend class MLTimeProfile
friend

Definition at line 164 of file mlCallGraph.h.


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