pool::DbAccessObjBase Node1 pool::DbAccessObjBase - m_mode + DbAccessObjBase() + ~DbAccessObjBase() + name() + setName() + mode() + setMode() + type() + db() + db() + refCount() + addRef() + release() Node2 std::atomic< int > + ptr   Node2->Node1 -m_refCount Node3 std::string     Node3->Node1 -m_name Node4 std::basic_string< Char >     Node4->Node3 Node5 pool::DbType + MASK + MINOR_MASK + MAJOR_MASK - m_type + DbType() + DbType() + DbType() + ~DbType() + operator=() + operator==() + operator<() + type() + majorType() + minorType() + match() + exactMatch() + storageName() + getType() Node5->Node1 -m_type Node6 pool::IOODatabase   + ~IOODatabase() + name() + createDomain() + createDatabase() + createContainer() + release() Node6->Node1 -m_pool Node7 pool::RefCounter - m_count + RefCounter() + RefCounter() + operator=() + addRef() + subRef() Node7->Node6