pool::RootTreeContainer Node1 pool::RootTreeContainer # m_tree # m_type # m_branches # m_dbH # m_rootDb # m_branchName # m_ioBytes # m_treeFillMode # m_isDirty + RootTreeContainer() + ~RootTreeContainer() + close() + open() + getOption() + setOption() + isShapeSupported() + select() + size() + getTTree() and 11 more... - addBranch() - addObject() - selectRow() - finishTransAct() - branch() - setBranchOffsetTabLen() Node4 pool::RootTreeIndexContainer - m_indexBranch - m_index_entries - m_index_multi - m_index - m_indexBump - m_firstRead + RootTreeIndexContainer() + RootTreeIndexContainer() + operator=() + ~RootTreeIndexContainer() + open() + nextRecordId() + useNextRecordId() + loadObject() + writeObject() Node1->Node4 Node2 pool::DbContainerImp # m_name # m_canUpdate # m_canDestroy - m_stack - m_size - m_writeSize - m_stackType + DbContainerImp() + release() + size() + name() + nextRecordId() + useNextRecordId() + close() + getOption() + setOption() + transAct() and 15 more... # ~DbContainerImp() # stackType() # stackSize() # updatesPending() # stackEntry() # destroyObject() # updateObject() # writeObject() # commitTransaction() Node2->Node1 Node3 pool::IDbContainer + release() + size() + name() + isShapeSupported() + setOption() + getOption() + allocate() + allocate() + free() + nextRecordId() and 15 more... # ~IDbContainer() Node3->Node2