| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hdsApp::InitResources | (void) |
Declared in file: hzDissemino.h
Defined in file : hdsCore.cpp
Function Logic:
Function body:
hzEcode hdsApp::InitResources (void)
{
_hzfunc("hdsApp::InitResources") ;
hzMD5 valMD5 ;
hzString valURL ;
hzString cfgs ;
uint32_t fdate ;
uint32_t n ;
hzEcode rc = E_OK ;
if (!m_Datadir)
return hzerr(E_NOINIT, "No data directory") ;
threadLog("m_Configs Population %u\n", m_Configs.Count()) ;
cfgs = m_Datadir ;
cfgs += "/config.cache" ;
m_Configs.DeltaSet(cfgs) ;
m_Configs.DeltaOpen() ;
threadLog("Opened file %s\n", *cfgs) ;
threadLog("m_Configs Population %u\n", m_Configs.Count()) ;
for (n = 0; n < m_Configs.Count() ; n++)
{
valURL = m_Configs.GetKey(n) ;
fdate = m_Configs.GetObj(n) ;
threadLog("Have config of %010u [%s]\n", fdate, *valURL) ;
}
if (!m_pClass_Resource)
{
if (rc == E_OK) m_pClass_Resource = new hdbClass(m_ADP, HDB_CLASS_DESIG_CFG) ;
if (rc == E_OK) rc = m_pClass_Resource->InitStart(s_cls_Resource) ;
if (rc == E_OK) rc = m_pClass_Resource->InitMember(s_mbr_Resource_DATE, "xdate", HDB_MBR_POP_SINGLE_COMPULSORY) ;
if (rc == E_OK) rc = m_pClass_Resource->InitMember(s_mbr_Resource_PATH, "string", HDB_MBR_POP_SINGLE_COMPULSORY) ;
if (rc == E_OK) rc = m_pClass_Resource->InitMember(s_mbr_Resource_MD5, "hashMD5", HDB_MBR_POP_SINGLE_COMPULSORY) ;
if (rc == E_OK) rc = m_pClass_Resource->InitMember(s_mbr_Resource_XML, "binary", HDB_MBR_POP_SINGLE_COMPULSORY) ;
if (rc == E_OK) rc = m_pClass_Resource->InitMember(s_mbr_Resource_HTM, "binary", HDB_MBR_POP_SINGLE_OPTIONAL) ;
if (rc == E_OK) rc = m_pClass_Resource->InitMember(s_mbr_Resource_Zip, "binary", HDB_MBR_POP_SINGLE_OPTIONAL) ;
if (rc == E_OK) rc = m_pClass_Resource->InitDone() ;
if (rc == E_OK) rc = m_ADP.RegisterDataClass(m_pClass_Resource) ;
if (rc == E_OK)
m_pLog->Log("Registered resource class\n") ;
else
{
m_pLog->Log("Could not register resource class\n") ;
return rc ;
}
m_pMbr_Resource_DATE = m_pClass_Resource->GetMember(s_mbr_Resource_DATE) ;
m_pMbr_Resource_PATH = m_pClass_Resource->GetMember(s_mbr_Resource_PATH) ;
m_pMbr_Resource_MD5 = m_pClass_Resource->GetMember(s_mbr_Resource_MD5) ;
m_pMbr_Resource_XML = m_pClass_Resource->GetMember(s_mbr_Resource_XML) ;
m_pMbr_Resource_HTM = m_pClass_Resource->GetMember(s_mbr_Resource_HTM) ;
m_pMbr_Resource_Zip = m_pClass_Resource->GetMember(s_mbr_Resource_Zip) ;
}
if (!m_pRepos_Resource)
{
if (rc == E_OK) m_pRepos_Resource = new hdbObjRepos(m_ADP) ;
if (rc == E_OK) m_pStore_Resource = new hdbBinRepos(m_ADP) ;
m_pLog->Log("Resource Repos %p, Binary %p\n", m_pRepos_Resource, m_pStore_Resource) ;
rc = m_pStore_Resource->Init(s_bin_Resource, m_Datadir) ;
if (rc != E_OK)
{ m_pLog->Log("Could not init resource binary datum repository\n") ; return rc ; }
rc = m_pStore_Resource->Open() ;
if (rc != E_OK)
{ m_pLog->Log("Could not open resource binary datum repository\n") ; return rc ; }
rc = m_pStore_Resource->Integ(*m_pLog) ;
if (rc != E_OK)
{ m_pLog->Log("Could not integrity check resource binary datum repository\n") ; return rc ; }
if (rc == E_OK) rc = m_pRepos_Resource->InitStart(m_pClass_Resource, s_rep_Resource, m_Datadir, HDB_REPOS_CACHE) ;
if (rc == E_OK) rc = m_pRepos_Resource->InitMbrIndex(s_mbr_Resource_PATH, false) ;
if (rc == E_OK) rc = m_pRepos_Resource->InitDone() ;
if (rc == E_OK) rc = m_pRepos_Resource->Open() ;
if (rc == E_OK)
m_pLog->Log("Initialized and opened resource repository\n") ;
else
{
m_pLog->Log("Could not init/open resource repository\n") ;
return rc ;
}
}
rc = m_objResource.Init(m_pClass_Resource) ;
if (rc != E_OK)
m_pLog->Log("Could not init resource object\n") ;
for (n = 0; n < m_pRepos_Resource->Count() ; n++)
{
rc = m_pRepos_Resource->Fetch(m_objResource, n+1);
if (rc != E_OK)
{
m_pLog->Log("Could not fetch resource item %d (err=%s)\n", n+1,Err2Txt(rc)) ;
continue ;
}
m_objResource.GetMbrValue(valURL, m_pMbr_Resource_PATH) ;
m_objResource.GetMbrValue(valMD5, m_pMbr_Resource_MD5) ;
m_pLog->Log("Inserted Resource %s %s\n", valMD5.Txt(), *valURL) ;
}
return rc ;
}