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 ; }