pool::DbSession Node1 pool::DbSession + DbSession() + DbSession() + DbSession() + ~DbSession() + operator=() + operator=() + refCount() + find() + add() + remove() + open() + close() + db() - switchPtr() Node2 pool::DbHandleBase < DbSessionObj > # m_ptr + operator->() + operator->() + operator!() + ptr() + ptr() + isValid() + type() # ~DbHandleBase() # DbHandleBase() # setType() # setPtr() Node2->Node1 Node3 pool::DbType + MASK + MINOR_MASK + MAJOR_MASK - m_type + DbType() + DbType() + DbType() + ~DbType() + operator=() + operator==() + operator<() + type() + majorType() + minorType() and 6 more... + getType() Node3->Node2 #m_type