| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hdbADP::Import | (const hzString&,) |
Declared in file: hzDatabase.h
Defined in file : hdbClass.cpp
Function Logic:
Function body:
hzEcode hdbADP::Import (const hzString& appName)
{
_hzfunc("hdbADP::Import") ;
hzArray <hzString> ar ;
ifstream is ;
hzDocXml docADP ;
hzChain Z ;
hzChain Y ;
hzXmlNode* pRoot ;
hzXmlNode* pN ;
hzAttrset ai ;
hdbEnum* pEnum ;
hzString fname ;
hzString bkfile ;
hzString cname ;
hzString str_id ;
hzString str_uid ;
hzString str_min ;
hzString str_max ;
hzString str_typ ;
hzString str_sub ;
hzString str_nam ;
hzString S ;
uint32_t n ;
hzEcode rc = E_OK ;
fname = "/etc/hzDelta.d/" + appName + ".adp" ;
if (TestFile(*fname) == E_OK)
{
is.open(*fname) ;
Y << is ;
is.close() ;
}
rc = docADP.Load(*fname) ;
if (rc != E_OK)
{
threadLog("Could not load ADP document (%s)\n", *fname) ;
threadLog(docADP.Error()) ;
return rc ;
}
pRoot = docADP.GetRoot() ;
if (!pRoot)
{
threadLog("ADP document (%s) has no route\n", *fname) ;
return E_NOINIT ;
}
for (pN = pRoot->GetFirstChild() ; pN ; pN = pN->Sibling())
{
if (pN->NameEQ("enum"))
{
for (ai = pN ; ai.Valid() ; ai.Advance())
{
if (ai.NameEQ("name"))
str_nam = ai.Value() ;
else
{ rc = E_SYNTAX ; threadLog("Line %d: <enum> bad param %s=%s\n", pN->Line(), ai.Name(), ai.Value()) ; break ; }
}
pEnum = new hdbEnum() ;
pEnum->SetTypename(str_nam) ;
m_mapDatatypes.Insert(str_nam, pEnum) ;
m_mapEnums.Insert(str_nam, pEnum) ;
SplitCSV(ar, pN->m_fixContent) ;
for (n = 0; n < ar.Count() ; n++)
{
S = ar[n] ;
pEnum->AddItem(S) ;
}
}
else if (pN->NameEQ("class"))
{
rc = _rdClass(pN) ;
if (rc != E_OK)
break ;
}
}
return rc ;
}