Return TypeFunction nameArguments
hzEcodehdbObject::Init(const hdbClass*,)

Declared in file: hzDatabase.h
Defined in file : hdbObject.cpp

Function Logic:

0:START 1:!this 2:hzexit 3:!pClass 4:Return hzerr(E_ARGUMENT,No data class supplied) 5:!pClass->IsInit() 6:Return hzerr(E_NOINIT,Data class is not initialized) 7:m_pClass 8:Return hzerr(E_DUPLICATE,Object already initialized) 9:hdbObject::Clear m_pClass _obj_data::GetInstance m_pRoot nMbr 10:rc==E_OK&&nMbrMbrCount(); 11:hdbClass::GetMember pMbr 12:!pMbr 13:Return hzerr(E_CORRUPT,No member in position %d,nMbr) 14:!pMbr->txtName() 15:Return hzerr(E_CORRUPT,Member in position %d has no name,nMbr) 16:Return E_OK

Function body:

hzEcode hdbObject::Init (const hdbClass* pClass)
{
   _hzfunc("hdbObject::Init") ;
   const hdbMember*    pMbr ;
   uint32_t            nMbr ;
   hzEcode             rc = E_OK ;
   if (!this)              hzexit(E_CORRUPT, "No instance") ;
   if (!pClass)            return hzerr(E_ARGUMENT, "No data class supplied") ;
   if (!pClass->IsInit())  return hzerr(E_NOINIT, "Data class is not initialized") ;
   if (m_pClass)           return hzerr(E_DUPLICATE, "Object already initialized") ;
   Clear() ;
   m_pClass = pClass ;
   m_pRoot = _obj_data::GetInstance(m_pClass) ;
   for (nMbr = 0; rc == E_OK && nMbr < pClass->MbrCount() ; nMbr++)
   {
       pMbr = pClass->GetMember(nMbr) ;
       if (!pMbr)
           return hzerr(E_CORRUPT, "No member in position %d", nMbr) ;
       if (!pMbr->txtName())
           return hzerr(E_CORRUPT, "Member in position %d has no name", nMbr) ;
   }
   return E_OK ;
}