SG::Iterator< DATA > Node1 SG::Iterator< DATA > + Iterator() + Iterator() + setState() - equal() - dereference() Node2 SG::detail::IteratorBase + proxy() + key() # IteratorBase() # IteratorBase() # IteratorBase() # ~IteratorBase() # operator=() # setState() # increment() # eql() # const_check() - addRef() - release() Node2->Node1 Node3 std::vector< SG::DataProxy * > Node3->Node2 -m_proxies Node4 SG::DataProxy + DataProxy() + DataProxy() + DataProxy() + DataProxy() + DataProxy() + DataProxy() + ~DataProxy() * handleList_t * mutex_t * lock_t * objMutex_t * objLock_t * SG::DataStore * m_refCount * m_resetFlag * m_boundHandles * m_origConst and 56 more... Node4->Node3 +elements Node5 IRegistry Node5->Node4 Node6 SG::IRegisterTransient + ~IRegisterTransient() + registerTransient() Node6->Node4 Node7 SG::TransientAddress - m_storeID - m_clearAddress - m_consultProvider - m_address + TransientAddress() + TransientAddress() + TransientAddress() + TransientAddress() + TransientAddress() + ~TransientAddress() + operator=() + operator=() + setID() + reset() and 21 more... - TransientAddress() Node7->Node4 -m_tAddress Node18 enum Node18->Node4 -m_errno Node19 std::atomic< bool > + ptr Node19->Node4 -m_const Node33 boost::iterator_facade < Iterator< DATA >, DATA, boost::forward_traversal_tag > Node33->Node1