Return TypeFunction nameArguments
hzEcodehdbObject::GetBinary(hzChain&,const hdbMember*,)

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

Function Logic:

0:START 1:!m_pClass 2:Return hzerr(E_NOINIT,Object has no class) 3:!pMbr 4:Return hzerr(E_ARGUMENT,No member supplied) 5:pMbr->Class()!=m_pClass 6:Return hzerr(E_CORRUPT,Member %s does not belong to class %s,pMbr->txtName(),m_pClass->txtName()) 7:pMbr->Basetype()!=BASETYPE_BINARY&&pMbr->Basetype()!=BASETYPE_TXTDOC 8:Return E_TYPE 9:hzChain::Clear 10:!m_pRepos 11:Return hzerr(E_NOINIT,No repository) 12:!m_pRepos->BinRepos() 13:Return hzerr(E_NOINIT,Associated repository has no binary datum repository) 14:!m_pRoot 15:Return E_OK 16:hdbMember::OsetAux pCh hzChain::Size 17:pCh->Size() 18:Z 19:Return E_OK 20:hdbMember::OsetStd pId 21:*pId 22:hdbObjRepos::BinRepos hdbBinRepos::Fetch rc 23:Return rc

Function body:

hzEcode hdbObject::GetBinary (hzChain& Z, const hdbMember* pMbr)
{
   _hzfunc("hdbObject::GetBinary") ;
   hzChain*            pCh ;
   uint32_t*           pId ;
   hzEcode             rc = E_OK ;
   if (!m_pClass)  return hzerr(E_NOINIT, "Object has no class") ;
   if (!pMbr)      return hzerr(E_ARGUMENT, "No member supplied") ;
   if (pMbr->Class() != m_pClass)
       return hzerr(E_CORRUPT, "Member %s does not belong to class %s", pMbr->txtName(), m_pClass->txtName()) ;
   if (pMbr->Basetype() != BASETYPE_BINARY && pMbr->Basetype() != BASETYPE_TXTDOC)
       return E_TYPE ;
   Z.Clear() ;
   if (!m_pRepos)
       return hzerr(E_NOINIT, "No repository") ;
   if (!m_pRepos->BinRepos())
       return hzerr(E_NOINIT, "Associated repository has no binary datum repository") ;
   if (!m_pRoot)
       return E_OK ;
   pCh = (hzChain*) (m_pRoot->m_Core + pMbr->OsetAux()) ;
   if (pCh->Size())
   {
       Z = *pCh ;
       return E_OK ;
   }
   pId = (uint32_t*) (m_pRoot->m_Core + pMbr->OsetStd()) ;
   if (*pId)
   {
       rc = m_pRepos->BinRepos()->Fetch(Z, *pId) ;
   }
   return rc ;
}