By default subclass data objects are embedded within host class data objects. This function directs the repository to hold subclass data objects in another repository. This is done on a per-member basis and only applies to member with of a CLASS data type.

Return TypeFunction nameArguments
hzEcodehdbObjRepos::InitMbrRepos(hzString&,hzString&,)

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

Function Logic:

0:START 1:items pMbr 2:unknown 3:Return hzerr(E_NOTFOUND,No such member as %s in class %s\n,*mbrName,m_pClass->txtType()) 4:unknown 5:Return hzerr(E_TYPE,Member %s has non binary base type,*mbrName) 6:unknown 7:Return hzerr(E_ARGUMENT,No Binary Repository named) 8:pRepos 9:unknown 10:Return hzerr(E_NOTFOUND,Repository %s does not exist,*reposName) 11:items 12:Return E_OK

Function body:

hzEcode hdbObjRepos::InitMbrRepos (hzString& mbrName)hzString& reposName, 
{
   //  By default subclass data objects are embedded within host class data objects. This function directs the repository to hold subclass data objects in another repository. This
   //  is done on a per-member basis and only applies to member with of a CLASS data type.
   //  
   //  Arguments: 1) mbrName The member name. The named member must exist and be of a CLASS data type.
   //     2) pRepos Pointer to the target repository
   //  
   //  Returns: E_NOTFOUND If the named member does not exist.
   //     E_TYPE  If the named member is not of a BINARY data type
   //     E_OK  If the operation was successful.
   _hzfunc("hdbObjRepos::InitMbrRepos") ;
   const hdbObjRepos*  pRepos ;    //  External repository
   const hdbMember*    pMbr ;      //  Named class member
   _hdb_ck_initstate(m_Name, m_eReposInit, HDB_REPOS_INIT_PROG) ;
   pMbr = m_pClass->GetMember(mbrName) ;
   if (!pMbr)
       return hzerr(E_NOTFOUND, "No such member as %s in class %s\n", *mbrName, m_pClass->txtType()) ;
   if (pMbr->Basetype() != BASETYPE_BINARY && pMbr->Basetype() != BASETYPE_TEXT && pMbr->Basetype() != BASETYPE_TXTDOC)
       return hzerr(E_TYPE, "Member %s has non binary base type", *mbrName) ;
   if (!reposName)
       return hzerr(E_ARGUMENT, "No Binary Repository named") ;
   //  A pre-existing hdbObjRepos has been named so the member will use this.
   pRepos = m_pADP->GetObjRepos(reposName) ;
   if (!pRepos)
       return hzerr(E_NOTFOUND, "Repository %s does not exist", *reposName) ;
   m_mapRepos.Insert(pMbr->Posn(), pRepos) ;
   return E_OK ;
}