asg::UnitTestTool2 Node1 asg::UnitTestTool2 + m_regPublicHandle + m_regPrivateHandle + m_regPrivateArray - m_wasUserConfiguredPublic - m_wasUserConfiguredPrivate - m_allowEmpty + UnitTestTool2() + initialize() + toolHandleEmpty() + getToolHandle() + retrieveToolHandle() + wasUserConfigured() + getArray() Node2 asg::IUnitTestTool2 + toolHandleEmpty() + getToolHandle() + retrieveToolHandle() + wasUserConfigured() + getArray() Node2->Node1 Node3 asg::IAsgTool + ~IAsgTool() + print() Node3->Node2 Node5 asg::AsgTool + AsgTool() + ~AsgTool() + AsgTool() + operator=() + initialize() + print() * getProperty() * msg_level_name() * getName() * getKey() Node3->Node5 Node5->Node1 Node6 AsgToolBase + AthAlgTool() + ~AthAlgTool() - AthAlgTool() - AthAlgTool() - operator=() Node6->Node5 Node13 asg::AnaToolHandle < asg::IUnitTestTool1 > - m_parentPtr - m_mode - m_allowEmpty + testInvariant() + AnaToolHandle() + AnaToolHandle() + AnaToolHandle() + ~AnaToolHandle() + operator=() + operator=() + swap() + empty() + isPublic() and 29 more... + setProperty() + setProperty() + setProperty() + setProperty() - getMode() - getMode() - makeToolRetrieve() * setProperty() * setProperty() * setProperty() * setProperty() Node13->Node1 +m_anaPublicHandle +m_anaPrivateHandle Node14 std::vector< std::function < StatusCode()> > + elements Node14->Node13 -m_extraInit Node15 std::atomic< bool > + ptr Node15->Node13 -m_isInitialized Node16 std::recursive_mutex Node16->Node13 -m_initializeMutex Node17 std::shared_ptr< void > + ptr + operator->() Node17->Node13 -m_cleanup