Logo Search packages:      
Sourcecode: maxdb-7.5.00 version File versions  Download package

void cbd500_Tree::bd500SetToRoot ( bool  bCheckLocks = true  )  [inline]

function: bd500SetToRoot description: The internal node is set to the root node.

The PathInfo and the other MemberVariables are initialized.

Definition at line 587 of file gbd500.h.

References cbd300_InvCurrentBasis::bd300LockTreeExclusive(), cbd300_InvCurrentBasis::bd300RootPtrs(), cbd300_InvCurrentBasis::bd300RootRequestKind(), cbd600_Node::bd600GetNode(), cbd600_Node::bd600IsAccessable(), cbd600_Node::bd600Release(), cbd600_Node::m_Current, and cbd600_Node::m_RequestKind.

Referenced by cbd400_InvTree::bd400_SetToNewSubRoot(), cbd400_InvTree::bd400DropTreeKeepLeaves(), bd500FindNode(), and bd500SetToNodeOnEdge().

{
    ROUTINE_DBG_MEO00 ("bd500SetToRoot");

    if ( bCheckLocks )
    {
        if ( nr_for_update   == m_Node.m_RequestKind
             &&
             LEAF_LEVEL_BD00 == m_Node.m_Current.bd300RootPtrs().np_ptr()->nd_level()
             &&
             nr_for_read     == m_Node.m_Current.bd300RootRequestKind() )
        {
            m_Node.m_Current.bd300LockTreeExclusive();
            if ( e_ok != m_TrError ) return;

            bd500_Init(); // ReInitialize the Tree 
        }
    }
    else
        bd500_Init(); // ReInitialize the Tree

    if ( m_Node.bd600IsAccessable() )
        m_Node.bd600Release ( nr_for_update == m_Node.m_RequestKind );

    m_Node.bd600GetNode(m_Node.m_Current.bd300RootPtrs().np_ptr()->nd_id(),
                        m_Node.m_Current.bd300RootRequestKind());
}


Generated by  Doxygen 1.6.0   Back to index