Create the subscriber data class and repository

Return TypeFunction nameArguments
hzEcodehdbADP::InitSubscribers(hzString&,)

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

Function Logic:

0:START 1:unknown 2:items 3:unknown 4:rc 5:S 6:unknown 7:rc 8:unknown 9:rc 10:unknown 11:Return rc 12:m_pClassSubscriber rc 13:unknown 14:S rc 15:unknown 16:S rc 17:unknown 18:S rc 19:unknown 20:S rc 21:unknown 22:S rc 23:unknown 24:rc m_pMbr_Subscriber_username m_pMbr_Subscriber_userpass m_pMbr_Subscriber_email m_pMbr_Subscriber_UID m_pMbr_Subscriber_type 25:unknown 26:rc 27:unknown 28:items 29:m_pReposSubscriber 30:unknown 31:items 32:rc 33:unknown 34:items 35:rc 36:unknown 37:items 38:rc 39:unknown 40:items 41:rc 42:Return rc

Function body:

hzEcode hdbADP::InitSubscribers (hzString& dataDir)
{
   //  Create the subscriber data class and repository
   _hzfunc("hdbADP::InitSubscribers") ;
   //  hdbObjRepos* pRepos ;  // Subscriber repository pointer
   hzString        S ;             //  Temporary string
   hzEcode         rc = E_OK ;     //  Return code
   if (!this)
       hzexit(E_CORRUPT, "No ADP instance") ;
   if (m_pClassSubscriber)
       rc = hzerr(E_DUPLICATE, "Subscriber class already declared") ;
   S = "subscriber" ;
   if (m_mapObjRepos.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 ;
   //  Allocate and initialize subscriber class
   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() ;
       //  Obtain member pointers
       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);
   }
   //  Resister subscriber class
   if (rc == E_OK)
       rc = RegisterDataClass(m_pClassSubscriber) ;
   if (rc != E_OK)
       hzexit(rc, "Could not init subsriber class") ;
   //  Create and initialize susscriber repository
   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") ;
   //  S = "username" ;
   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") ;
   //  Resister subscriber repository
   rc = m_mapObjRepos.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 ;
}