Return TypeFunction nameArguments
hzEcodehdsApp::ExportStrings(void)

Declared in file: hzDissemino.h
Defined in file : hdsResource.cpp

Function Logic:

0:START 1:hzChain::Printf filepath hzChain::Clear ofstream::open ofstream::fail 2:os.fail() 3:Return hzerr(E_OPENFAIL,Cannot open file [%s]\n,*filepath) 4:n 5:hzSet::GetObj S hzChain::Printf n 6:n 7:hzMapS::GetObj pBlok hdsVE::Children hdsVE::Sibling pBlok pVE 8:pVE; 9:hdsApp::_exportStr 10:n 11:pPage 12:!(pPage->m_flagVE&VE_LANG) 13:hzLogger::Log 14:hzLogger::Log nV 15:nVm_VEs.Count(); 16:pVE hdsApp::_exportStr 17:items close ofstream::clear hzChain::Clear hzLogger::Log nG 18:nG 19:hzMapS::GetObj pAG hdsNavtree::Count hzLogger::Out hzChain::Printf filepath hzChain::Clear ofstream::open ofstream::fail 20:os.fail() 21:hzLogger::Out 22:Return E_OPENFAIL 23:nCount(); 24:hdsNavtree::GetItem pArt 25:!pArt 26:items 27:pArtStd 28:!(pArtStd->m_flagVE&VE_LANG) 29:hzLogger::Out 30:nVm_VEs.Count(); 31:pVE hdsApp::_exportStr 32:items close ofstream::clear hzChain::Clear hzChain::Size hzLogger::Log 33:Return E_OK

Function body:

hzEcode hdsApp::ExportStrings (void)
{
   _hzfunc("hdsApp::ExportStrings") ;
   hzList<hdsVE*>::Iter    ih ;
   hdsArticle*     pArt ;
   hdsArticleStd*  pArtStd ;
   ofstream        os ;
   hzChain         Z ;
   hdsNavtree*     pAG ;
   hdsPage*        pPage ;
   hdsBlock*       pBlok ;
   hdsVE*          pVE ;
   hzString        filepath ;
   hzString        S ;
   uint32_t        nG ;
   uint32_t        n ;
   uint32_t        nV ;
   Z.Printf("%s/website.%s.txt", *m_Docroot, *m_DefaultLang) ;
   filepath = Z ;
   Z.Clear() ;
   os.open(*filepath) ;
   if (os.fail())
       return hzerr(E_OPENFAIL, "Cannot open file [%s]\n", *filepath) ;
   for (n = 0; n < m_setPgSubjects.Count() ; n++)
   {
       S = m_setPgSubjects.GetObj(n) ;
       Z.Printf("s%d) %s\n\n", n, *S) ;
   }
   for (n = 0; n < m_Includes.Count() ; n++)
   {
       pBlok = m_Includes.GetObj(n) ;
       for (pVE = pBlok->Children() ; pVE ; pVE = pVE->Sibling())
           _exportStr(Z, pVE, n+1);
   }
   for (n = 0; n < m_vecPages.Count() ; n++)
   {
       pPage = m_vecPages[n] ;
       if (!(pPage->m_flagVE & VE_LANG))
           { m_pLog->Log("Skipping page %s\n", *pPage->m_Url) ; continue ; }
       m_pLog->Log("Doing Page %s\n", *pPage->m_Url) ;
       for (nV = 0; nV < pPage->m_VEs.Count() ; nV++)
       {
           pVE = pPage->m_VEs[nV] ;
           _exportStr(Z, pVE, pPage->m_RID) ;
       }
   }
   os << Z ;
   os.close() ;
   os.clear() ;
   Z.Clear() ;
   m_pLog->Log("File %s Total %d pages\n", *filepath, n) ;
   for (nG = 0; nG < m_ArticleGroups.Count() ; nG++)
   {
       pAG = m_ArticleGroups.GetObj(nG) ;
       m_pLog->Out("Doing article group %s (total %d articles)\n", *pAG->m_Groupname, pAG->Count()) ;
       Z.Printf("%s/%s.%s.txt", *m_Docroot, *pAG->m_Groupname, *m_DefaultLang) ;
       filepath = Z ;
       Z.Clear() ;
       os.open(*filepath) ;
       if (os.fail())
       {
           m_pLog->Out("%s. Cannot open file [%s]\n", *filepath) ;
           return E_OPENFAIL ;
       }
       for (n = 0; n < pAG->Count() ; n++)
       {
           pArt = (hdsArticle*) pAG->GetItem(n) ;
           if (!pArt)
               continue ;
           pArtStd = dynamic_cast<hdsArticleStd*>(pArt) ;
           if (pArtStd)
           {
               if (!(pArtStd->m_flagVE & VE_LANG))
                   { m_pLog->Out("Skipping article %s\n", *pArtStd->m_Title) ; continue ; }
               for (nV = 0; nV < pArtStd->m_VEs.Count() ; nV++)
               {
                   pVE = pArtStd->m_VEs[nV] ;
                   _exportStr(Z, pVE, pArtStd->m_RID) ;
               }
           }
       }
       os << Z ;
       os.close() ;
       os.clear() ;
       Z.Clear() ;
       m_pLog->Log("File %s Total %d articles (size now %d)\n", *filepath, n, Z.Size()) ;
   }
   return E_OK ;
}