-void ProfileNode::calculateVisibleTotalTime()
-{
- double sumOfVisibleChildrensTime = 0.0;
-
- for (unsigned i = 0; i < m_children.size(); ++i) {
- if (m_children[i]->visible())
- sumOfVisibleChildrensTime += m_children[i]->totalTime();
- }
-
- m_visibleTotalTime = m_visibleSelfTime + sumOfVisibleChildrensTime;
-}
-
-bool ProfileNode::focus(const CallIdentifier& callIdentifier)
-{
- if (!m_visible)
- return false;
-
- if (m_callIdentifier != callIdentifier) {
- m_visible = false;
- return true;
- }
-
- for (ProfileNode* currentParent = m_parent; currentParent; currentParent = currentParent->parent())
- currentParent->setVisible(true);
-
- return false;
-}
-
-void ProfileNode::exclude(const CallIdentifier& callIdentifier)
-{
- if (m_visible && m_callIdentifier == callIdentifier) {
- setTreeVisible(this, false);
-
- m_parent->setVisibleSelfTime(m_parent->selfTime() + m_visibleTotalTime);
- }
-}
-
-void ProfileNode::restore()
-{
- m_visibleTotalTime = m_actualTotalTime;
- m_visibleSelfTime = m_actualSelfTime;
- m_visible = true;
-}
-
-void ProfileNode::endAndRecordCall()
-{
- m_actualTotalTime += m_startTime ? getCount() - m_startTime : 0.0;
- m_startTime = 0.0;
-
- ++m_numberOfCalls;
-}
-
-void ProfileNode::startTimer()
-{
- if (!m_startTime)
- m_startTime = getCount();
-}
-
-void ProfileNode::resetChildrensSiblings()
-{
- unsigned size = m_children.size();
- for (unsigned i = 0; i < size; ++i)
- m_children[i]->setNextSibling(i + 1 == size ? 0 : m_children[i + 1].get());
-}
-
-#ifndef NDEBUG
-void ProfileNode::debugPrintData(int indentLevel) const