Return TypeFunction nameArguments
hzEcodehdsVE::AddChild(hdsVE*,)

Declared in file: hzDissemino.h
Defined in file : hdsCore.cpp

Function Logic:

0:START 1:!pChild 2:hzexit 3:m_flagVE&VE_COMPLETE 4:hzexit 5:pChild==this 6:hzexit 7:!pChild->m_VID 8:hzexit 9:!m_Children 10:m_Children 11:hdsVE::Children pVE hdsVE::Sibling 12:pVE->Sibling() 13:pVE&&pVE->Sibling(); 14:pVE==pChild 15:Return E_OK 16:!pVE 17:hzexit 18:pVE 19:items 20:Return E_OK

Function body:

hzEcode hdsVE::AddChild (hdsVE* pChild)
{
   _hzfunc("hdsVE::AddChild") ;
   hdsVE*  pVE ;
   if (!pChild)
       hzexit(E_ARGUMENT, "%s: Null child supplied to Visible Entity", *m_Tag) ;
   if (m_flagVE & VE_COMPLETE)
       hzexit(E_SEQUENCE, "%s: Visible Entity is already complete, cannot add child %s", *m_Tag, *pChild->m_Tag) ;
   if (pChild == this)
       hzexit(E_CORRUPT, "%s: Child is same as parent", *m_Tag) ;
   if (!pChild->m_VID)
       hzexit(E_CORRUPT, "%s: Supplied child (%s) has no ID", *m_Tag, *pChild->m_Tag) ;
   if (!m_Children)
   {
       m_Children = pChild->m_VID ;
   }
   else
   {
       pVE = Children() ;
       if (pVE->Sibling())
       {
           for (; pVE && pVE->Sibling() ; pVE = pVE->Sibling())
           {
               if (pVE == pChild)
                   return E_OK ;
           }
       }
       if (!pVE)
           hzexit(E_CORRUPT, "Last child already had a sibling value") ;
       pVE->m_Sibling = pChild->m_VID ;
   }
   m_nChildren++ ;
   return E_OK ;
}