本文整理汇总了C++中ProfileNode::firstChild方法的典型用法代码示例。如果您正苦于以下问题:C++ ProfileNode::firstChild方法的具体用法?C++ ProfileNode::firstChild怎么用?C++ ProfileNode::firstChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProfileNode
的用法示例。
在下文中一共展示了ProfileNode::firstChild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: traverseNextNodePostOrder
ProfileNode* ProfileNode::traverseNextNodePostOrder() const
{
ProfileNode* next = m_nextSibling;
if (!next)
return m_parent;
while (ProfileNode* firstChild = next->firstChild())
next = firstChild;
return next;
}
示例2: removeProfileStart
// The console.profile that started this ProfileGenerator will be the first child.
void ProfileGenerator::removeProfileStart()
{
ProfileNode* currentNode = nullptr;
for (ProfileNode* next = m_rootNode.get(); next; next = next->firstChild())
currentNode = next;
if (currentNode->callIdentifier().functionName() != "profile")
return;
currentNode->parent()->removeChild(currentNode);
}
示例3: removeProfileStart
// The console.ProfileGenerator that started this ProfileGenerator will be the first child.
void ProfileGenerator::removeProfileStart()
{
ProfileNode* currentNode = 0;
for (ProfileNode* next = m_head.get(); next; next = next->firstChild())
currentNode = next;
if (currentNode->callIdentifier().m_name != "profile")
return;
// Attribute the time of the node aobut to be removed to the self time of its parent
currentNode->parent()->setSelfTime(currentNode->parent()->selfTime() + currentNode->totalTime());
currentNode->parent()->removeChild(currentNode);
}
示例4: forEach
void Profile::forEach(void (ProfileNode::*function)())
{
ProfileNode* currentNode = m_head->firstChild();
for (ProfileNode* nextNode = currentNode; nextNode; nextNode = nextNode->firstChild())
currentNode = nextNode;
if (!currentNode)
currentNode = m_head.get();
ProfileNode* endNode = m_head->traverseNextNodePostOrder();
while (currentNode && currentNode != endNode) {
(currentNode->*function)();
currentNode = currentNode->traverseNextNodePostOrder();
}
}