| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hdbADP::InitSubscribers | (const hzString&,) |
Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp
Function Logic:
Function body:
hzEcode hdbADP::InitSubscribers (const hzString& dataDir)
{
_hzfunc("hdbADP::InitSubscribers") ;
hzString S ;
hzEcode rc = E_OK ;
if (!this)
hzexit(E_CORRUPT, "No ADP instance") ;
if (m_pClassSubscriber)
rc = hzerr(E_DUPLICATE, "Subscriber class already declared") ;
S = "subscriber" ;
if (m_mapRepositories.Exists(S))
rc = hzerr(E_DUPLICATE, "This function has already been called") ;
if (!dataDir)
rc = hzerr(E_ARGUMENT, "No application data directory") ;
if (rc != E_OK)
return rc ;
m_pClassSubscriber = new hdbClass(*this, HDB_CLASS_DESIG_SYS) ;
rc = m_pClassSubscriber->InitStart(S) ;
if (rc == E_OK) { S = "username" ; rc = m_pClassSubscriber->InitMember(S, datatype_STRING, HDB_MBR_POP_SINGLE_COMPULSORY) ; }
if (rc == E_OK) { S = "userpass" ; rc = m_pClassSubscriber->InitMember(S, datatype_STRING, HDB_MBR_POP_SINGLE_COMPULSORY) ; }
if (rc == E_OK) { S = "userEmail" ; rc = m_pClassSubscriber->InitMember(S, datatype_EMADDR, HDB_MBR_POP_SINGLE_OPTIONAL) ; }
if (rc == E_OK) { S = "userUID" ; rc = m_pClassSubscriber->InitMember(S, datatype_UINT32, HDB_MBR_POP_SINGLE_OPTIONAL) ; }
if (rc == E_OK) { S = "userType" ; rc = m_pClassSubscriber->InitMember(S, datatype_STRING, HDB_MBR_POP_SINGLE_OPTIONAL) ; }
if (rc == E_OK)
{
rc = m_pClassSubscriber->InitDone() ;
m_pMbr_Subscriber_username = m_pClassSubscriber->GetMember(0);
m_pMbr_Subscriber_userpass = m_pClassSubscriber->GetMember(1);
m_pMbr_Subscriber_email = m_pClassSubscriber->GetMember(2);
m_pMbr_Subscriber_UID = m_pClassSubscriber->GetMember(3);
m_pMbr_Subscriber_type = m_pClassSubscriber->GetMember(4);
}
if (rc == E_OK)
rc = RegisterDataClass(m_pClassSubscriber) ;
if (rc != E_OK)
hzexit(rc, "Could not init subsriber class") ;
m_pReposSubscriber = new hdbObjRepos(*this) ;
if (!m_pReposSubscriber)
hzexit(E_MEMORY, "No subsciber cache allocated") ;
rc = m_pReposSubscriber->InitStart(m_pClassSubscriber, m_pClassSubscriber->strName(), dataDir, HDB_REPOS_CACHE) ;
if (rc != E_OK)
hzexit(rc, "Could not init subsriber repos") ;
rc = m_pReposSubscriber->InitMbrIndex(m_pMbr_Subscriber_username, true) ;
if (rc != E_OK)
hzexit(rc, "Could not init subsriber repos index") ;
rc = m_pReposSubscriber->InitDone() ;
if (rc != E_OK)
hzexit(rc, "Could not complete subsriber repos initialization") ;
rc = m_mapRepositories.Insert(m_pReposSubscriber->strName(), m_pReposSubscriber) ;
/*
** if (rc == E_OK)
** {
** m_pMbr_Subscriber_username = m_pClassSubscriber->GetMember(0) ;
** m_pMbr_Subscriber_userpass = m_pClassSubscriber->GetMember(1) ;
** m_pMbr_Subscriber_email = m_pClassSubscriber->GetMember(2) ;
** m_pMbr_Subscriber_UID = m_pClassSubscriber->GetMember(3) ;
** m_pMbr_Subscriber_type = m_pClassSubscriber->GetMember(4) ;
** }
** */
return rc ;
}