Return TypeFunction nameArguments
hzEcodehdsApp::CheckProject(void)

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

Function Logic:

0:START 1:hzLogger::Log 2:!m_nPortSTD 3:_hzGlobal_Dissemino 4:m_nPortSTD hzLogger::Log 5:rc hzLogger::Log 6:!m_nPortSSL 7:_hzGlobal_Dissemino 8:m_nPortSSL hzLogger::Log 9:rc hzLogger::Log 10:rc!=E_OK 11:Return E_OK 12:hzLogger::Log x 13:x 14:hzMapS::GetKey S_key hzMapS::GetObj hzLogger::Log 15:hdbADP::Report hzLogger::Log hzLogger::Log x 16:x 17:hzMapS::GetKey S_key hzMapS::GetObj pFormdef 18:pFormdef 19:hzLogger::Log 20:hzLogger::Log 21:hzLogger::Log x 22:x 23:hzMapS::GetKey S_key hzMapS::GetObj pFormHdl 24:pFormHdl 25:hzLogger::Log 26:hzLogger::Log 27:hzLogger::Log x 28:x 29:hzMapM::GetKey pFormref hzMapM::GetObj S_obj pFormdef 30:pFormdef 31:hzLogger::Log 32:hzLogger::Log 33:hzLogger::Log x 34:x 35:hzMapS::GetKey S_key hzMapS::GetObj S_obj pFormHdl pFormref 36:!pFormHdl 37:hzLogger::Log 38:hzLogger::Log 39:hzVect::Count hzLogger::Log x 40:x 41:pPage hzLogger::Log 42:pPage->m_Subj 43:!m_setPgSubjects.Exists(pPage->m_Subj) 44:hzSet::Insert hzList::Add 45:hzMapM::Insert fi 46:fi.Valid(); 47:hzList::Iter::Element pFormref pFormdef 48:pFormdef 49:pPage 50:hdsPage::WriteValidationJS 51:hzMapS::Count hzLogger::Log x 52:x 53:hzMapS::GetObj pRes items 54:!pPage 55:hzLogger::Log fi 56:fi.Valid(); 57:hzList::Iter::Element pFormref pFormdef 58:!pFormdef 59:hzLogger::Log 60:hzLogger::Log y 61:ym_vecFlds.Count(); 62:pFld hzLogger::Log 63:hzMapS::Count hzLogger::Log x 64:x 65:hzMapS::GetObj pRes items 66:!pPage 67:hzLogger::Log fi 68:fi.Valid(); 69:hzList::Iter::Element pFormref pFormdef 70:!pFormdef 71:hzLogger::Log 72:hzLogger::Log y 73:ym_vecFlds.Count(); 74:pFld hzLogger::Log 75:hzSet::Count hzLogger::Log x 76:x 77:hzSet::GetObj S_obj pRes 78:!pRes 79:hzLogger::Log 80:hzLogger::Log 81:hzSet::Count hzLogger::Log items 82:m_OpFlags&DS_APP_ROBOT 83:hzChain::Clear items hzChain::Printf hzChain::Printf m_Robot items hzMapS::Count hzLogger::Log x 84:x 85:hzMapS::GetObj pRes items 86:!pPage 87:!pPage->m_Subj 88:pPage->m_Title==Login 89:pPage->m_Title==Logout 90:hzChain::Printf hzChain::Printf 91:hzMapS::Count hzLogger::Log y 92:y 93:hzMapS::GetObj pAG 94:!pAG 95:hzLogger::Log x 96:xCount(); 97:hdsNavtree::GetItem pArt 98:pArt 99:hzLogger::Log hzChain::Printf hzChain::Printf 100:hzLogger::Log 101:items Gzip Gzip 102:m_OpFlags&DS_APP_GUIDE 103:items items x 104:x 105:hzMapS::GetObj pRes items 106:!pPage 107:!pPage->m_Subj 108:hzChain::Printf y 109:y 110:hzMapS::GetObj pAG 111:!pAG 112:hzChain::Printf x 113:xCount(); 114:hdsNavtree::GetItem pArt 115:pArt 116:hzChain::Printf 117:items Gzip 118:hzLogger::Log 119:Return rc

Function body:

hzEcode hdsApp::CheckProject (void)
{
   _hzfunc("hdsApp::checkProject") ;
   hzList<hdsFormref*>::Iter   fi ;
   hzChain             report ;
   hzChain             Z ;
   hdsFldspec          vd ;
   hzPair              p ;
   hdsResource*        pRes ;
   hdsPage*            pPage ;
   hdsFormdef*         pFormdef ;
   hdsFormref*         pFormref ;
   hdsFormhdl*         pFormHdl ;
   hdsField*           pFld ;
   hdsNavtree*         pAG ;
   const hdsArticle*   pArt ;
   hzString            S_key ;
   hzString            S_obj ;
   uint32_t            x ;
   uint32_t            y ;
   hzEcode             rc = E_OK ;
   m_pLog->Log("APPLICATION REPORT: %s\n", *m_Appname) ;
   if (!m_nPortSTD)
   {
       if (_hzGlobal_Dissemino)
       {
           m_nPortSTD = _hzGlobal_Dissemino->m_nCommonPortSTD ;
           m_pLog->Log("Inheriting HTTP port %d\n", m_nPortSTD) ;
       }
       else
       {
           rc = E_INITFAIL ;
           m_pLog->Log("No HTTP port specified and no overriding dissemino instance to inherit from\n") ;
       }
   }
   if (!m_nPortSSL)
   {
       if (_hzGlobal_Dissemino)
       {
           m_nPortSSL = _hzGlobal_Dissemino->m_nCommonPortSSL ;
           m_pLog->Log("Inheriting HTTPS port %d\n", m_nPortSSL) ;
       }
       else
       {
           rc = E_INITFAIL ;
           m_pLog->Log("No HTTPS port specified and no overriding dissemino instance to inherit from\n") ;
       }
   }
   if (rc != E_OK)
       return E_OK ;
   m_pLog->Log("User Categories\n") ;
   for (x = 0; x < m_UserTypes.Count() ; x++)
   {
       S_key = m_UserTypes.GetKey(x) ;
       m_pLog->Log(" -- %s (%08x)\n", *S_key, m_UserTypes.GetObj(x)) ;
   }
   m_ADP.Report(report) ;
   m_pLog->Log(report) ;
   /*
   **  ** Forms report
   **      */
   m_pLog->Log("Form Definitions\n") ;
   for (x = 0; x < m_FormDefs.Count() ; x++)
   {
       S_key = m_FormDefs.GetKey(x) ;
       pFormdef = m_FormDefs.GetObj(x) ;
       if (pFormdef)
           m_pLog->Log("\t\t -- Form def %s - %s (%p)\n", *S_key, *pFormdef->m_Formname, pFormdef) ;
       else
           m_pLog->Log("\t\t -- Form def %s - NULL\n", *S_key) ;
   }
   m_pLog->Log("Form Handlers\n") ;
   for (x = 0; x < m_FormHdls.Count() ; x++)
   {
       S_key = m_FormHdls.GetKey(x) ;
       pFormHdl = m_FormHdls.GetObj(x) ;
       if (pFormHdl)
           m_pLog->Log("\t\t -- Form handler %s applied to form %p %s\n", *S_key, pFormHdl->m_pFormdef, *pFormHdl->m_pFormdef->m_Formname) ;
       else
           m_pLog->Log("\t\t -- Form handler %s not created\n", *S_key) ;
   }
   m_pLog->Log("Form References\n") ;
   for (x = 0; x < m_FormRef2Url.Count() ; x++)
   {
       pFormref = m_FormRef2Url.GetKey(x) ;
       S_obj = m_FormRef2Url.GetObj(x) ;
       pFormdef = m_FormDefs[pFormref->m_Formname] ;
       if (pFormdef)
           m_pLog->Log("\t\t -- Ref [%p] -> %p %s on %s\n", pFormref, pFormdef, *pFormdef->m_Formname, *S_obj) ;
       else
           m_pLog->Log("\t\t -- Ref [%p] -> NULL_FORM_DEF on %s\n", *S_obj) ;
   }
   m_pLog->Log("Submission URLs to Form Handlers\n") ;
   for (x = 0; x < m_FormUrl2Hdl.Count() ; x++)
   {
       S_key = m_FormUrl2Hdl.GetKey(x) ;
       S_obj = m_FormUrl2Hdl.GetObj(x) ;
       pFormHdl = m_FormHdls[S_obj] ;
       pFormref = m_FormUrl2Ref[S_obj] ;
       if (!pFormHdl)
           m_pLog->Log("\t\t -- URL %s -> NULL (ref %p)\n", *S_key, pFormref) ;
       else
           m_pLog->Log("\t\t -- URL %s -> %s (ref %p)\n", *S_key, *pFormHdl->m_Refname, pFormref) ;
   }
   /*
   **  ** Pages report
   **      */
   m_pLog->Log("Pages (by incidence) Total %u\n", m_vecPages.Count()) ;
   for (x = 0; x < m_vecPages.Count() ; x++)
   {
       pPage = m_vecPages[x] ;
       m_pLog->Log(" -- access=%08x %s (%s) subj=%s\n", pPage->m_resAccess, *pPage->m_Url, *pPage->m_Title, *pPage->m_Subj) ;
       if (pPage->m_Subj)
       {
           if (!m_setPgSubjects.Exists(pPage->m_Subj))
           {
               m_setPgSubjects.Insert(pPage->m_Subj) ;
               m_lstPgSubjects.Add(pPage->m_Subj) ;
           }
           m_mapSubj2Res.Insert(pPage->m_Subj, pPage) ;
           /*
           **  pSubj = m_setPgSubjects[pPage->m_Subj] ;
           **     if (!pSubj)
           **     {
           **      pSubj = new hdsSubject() ;
           **      pSubj->subject = pPage->m_Subj ;
           **      pSubj->first = pPage->m_Url ;
           **  
           **      m_setPgSubjects.Insert(pSubj->subject, pSubj) ;
           **      m_vecPgSubjects.Add(pSubj) ;
           **     }
           **  
           **     pSubj->pglist.Add(pPage) ;
           **                */
       }
       for (fi = pPage->m_xForms ; fi.Valid() ; fi++)
       {
           pFormref = fi.Element() ;
           pFormdef = m_FormDefs[pFormref->m_Formname] ;
           if (pFormdef)
               pPage->m_bScriptFlags |= pFormdef->m_bScriptFlags ;
       }
       pPage->WriteValidationJS() ;
   }
   m_pLog->Log("Pages (by name) Total %u\n", m_ResourcesName.Count()) ;
   for (x = 0; x < m_ResourcesName.Count() ; x++)
   {
       pRes = m_ResourcesName.GetObj(x) ;
       pPage = dynamic_cast<hdsPage*>(pRes) ;
       if (!pPage)
           continue ;
       m_pLog->Log(" -- access=%08x %s (%s)\n", pPage->m_resAccess, *pPage->m_Url, *pPage->m_Title) ;
       for (fi = pPage->m_xForms ; fi.Valid() ; fi++)
       {
           pFormref = fi.Element() ;
           pFormdef = m_FormDefs[pFormref->m_Formname] ;
           if (!pFormdef)
               m_pLog->Log("\t -- form ref %p NULL form def\n", pFormref) ;
           else
           {
               m_pLog->Log("\t -- form ref %p -> %s\n", pFormref, *pFormdef->m_Formname) ;
               for (y = 0; y < pFormdef->m_vecFlds.Count() ; y++)
               {
                   pFld = pFormdef->m_vecFlds[y] ;
                   m_pLog->Log("\t\t -- fld %s\n", *pFld->m_Varname) ;
               }
           }
       }
   }
   m_pLog->Log("Pages (by path) Total %u\n", m_ResourcesPath.Count()) ;
   for (x = 0; x < m_ResourcesPath.Count() ; x++)
   {
       pRes = m_ResourcesPath.GetObj(x) ;
       pPage = dynamic_cast<hdsPage*>(pRes) ;
       if (!pPage)
           continue ;
       m_pLog->Log(" -- access=%08x %s (%s)\n", pPage->m_resAccess, *pPage->m_Url, *pPage->m_Title) ;
       for (fi = pPage->m_xForms ; fi.Valid() ; fi++)
       {
           pFormref = fi.Element() ;
           pFormdef = m_FormDefs[pFormref->m_Formname] ;
           if (!pFormdef)
               m_pLog->Log("\t -- form ref %p NULL form def\n", pFormref) ;
           else
           {
               m_pLog->Log("\t -- form ref %p -> %s\n", pFormref, *pFormdef->m_Formname) ;
               for (y = 0; y < pFormdef->m_vecFlds.Count() ; y++)
               {
                   pFld = pFormdef->m_vecFlds[y] ;
                   m_pLog->Log("\t\t -- fld %s\n", *pFld->m_Varname) ;
               }
           }
       }
   }
   m_pLog->Log("Verifying %u Links\n", m_Links.Count()) ;
   for (x = 0; x < m_Links.Count() ; x++)
   {
       S_obj = m_Links.GetObj(x) ;
       pRes = m_ResourcesPath[S_obj] ;
       if (!pRes)
           m_pLog->Log("ERROR: %u No such link as %s\n", x, *S_obj) ;
       else
           m_pLog->Log("Verified link %u %s\n", x, *S_obj) ;
   }
   m_pLog->Log("Verifying %u Links\n", m_Links.Count()) ;
   m_nLoadComplete++ ;
   /*
   **  ** Build Sitemap
   **      */
   if (m_OpFlags & DS_APP_ROBOT)
   {
       Z.Clear() ;
       Z << "User-agent: *\r\nDisallow:\r\n" ;
       Z.Printf("Sitemap: http://%s/sitemap.xml\r\n", *m_Domain) ;
       Z.Printf("Sitemap: http://%s/sitemap.txt\r\n", *m_Domain) ;
       m_Robot = Z ;
       m_rawSitemapXml <<
       "<?xml version="1.0" encoding="utf-8"?>\r\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">\r\n"
                                                                            ;
       m_pLog->Log("Checking %u Pages\n", m_ResourcesPath.Count()) ;
       for (x = 0; x < m_ResourcesPath.Count() ; x++)
       {
           pRes = m_ResourcesPath.GetObj(x) ;
           pPage = dynamic_cast<hdsPage*>(pRes) ;
           if (!pPage)
               continue ;
           if (!pPage->m_Subj)
               continue ;
           if (pPage->m_Title == "Login")  continue ;
           if (pPage->m_Title == "Logout") continue ;
           m_rawSitemapTxt.Printf("http://%s%s\r\n", *m_Domain, *pPage->m_Url) ;
           m_rawSitemapXml.Printf("\t<url><loc>http://%s%s</loc><changefreq>daily</changefreq></url>\r\n", *m_Domain, *pPage->m_Url) ;
       }
       m_pLog->Log("Checking %u Article Groups\n", m_ArticleGroups.Count()) ;
       for (y = 0; y < m_ArticleGroups.Count() ; y++)
       {
           pAG = m_ArticleGroups.GetObj(y) ;
           if (!pAG)
               continue ;
           m_pLog->Log("Checking Article Group %s\n", *pAG->m_Groupname) ;
           for (x = 0; x < pAG->Count() ; x++)
           {
               pArt = pAG->GetItem(x) ;
               if (pArt)
               {
                   m_pLog->Log("Exporting article link %s\n", *pArt->m_Title) ;
                   m_rawSitemapTxt.Printf("http://%s%s?%s=%s\r\n", *m_Domain, *pAG->m_Hostpage, *pAG->m_Groupname, *pArt->m_Url) ;
                   m_rawSitemapXml.Printf("\t<url><loc>http://%s%s?%s=%s</loc><changefreq>daily</changefreq></url>\r\n",
                       *m_Domain, *pAG->m_Hostpage, *pAG->m_Groupname, *pArt->m_Url) ;
               }
           }
           m_pLog->Log("Checking Article Group %s\n", *pAG->m_Groupname) ;
       }
       m_rawSitemapXml << "</urlset>\r\n" ;
       Gzip(m_zipSitemapTxt, m_rawSitemapTxt) ;
       Gzip(m_zipSitemapXml, m_rawSitemapXml) ;
   }
   if (m_OpFlags & DS_APP_GUIDE)
   {
       m_rawSiteguide << "<!DOCTYPE html>\n<head>\n<title>Site Guide</title>\n</head>\n<body>\n" ;
       m_rawSiteguide << "<p>Main Pages</p>\n" ;
       for (x = 0; x < m_ResourcesPath.Count() ; x++)
       {
           pRes = m_ResourcesPath.GetObj(x) ;
           pPage = dynamic_cast<hdsPage*>(pRes) ;
           if (!pPage)
               continue ;
           if (!pPage->m_Subj)
               continue ;
           m_rawSiteguide.Printf("<p><a href="http://%s%s">%s</a></p>\n"  , *m_Domain, *pPage->m_Url, *pPage->m_Title) ;
       }
       for (y = 0; y < m_ArticleGroups.Count() ; y++)
       {
           pAG = m_ArticleGroups.GetObj(y) ;
           if (!pAG)
               continue ;
           m_rawSiteguide.Printf("<p>Article from %s</p>\n", *pAG->m_Groupname) ;
           for (x = 0; x < pAG->Count() ; x++)
           {
               pArt = (hdsArticle*) pAG->GetItem(x) ;
               if (pArt)
                   m_rawSiteguide.Printf("<p><a href="http://%s%s-%s">%s</a></p>\n"  , *m_Domain, *pAG->m_Hostpage, *pArt->m_Title, *pArt->m_Title) ;
           }
       }
       m_rawSiteguide << "</body>\n</html>\n" ;
       Gzip(m_zipSiteguide, m_rawSiteguide) ;
   }
   /*
   **  ** Add the webmaster admin functions as CIFs
   **      */
   /*
   **  if (rc == E_OK) rc = AddCIFunc(&_masterMainMenu, "/masterMainMenu",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterCfgList,  "/masterCfgList",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterCfgEdit,  "/masterCfgEdit",  ACCESS_ADMIN, HTTP_POST) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterResList,  "/masterResList",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterVisList,  "/masterVisList",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterDomain,  "/masterDomain",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterEmaddr,  "/masterEmaddr",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterStrFix,  "/masterStrFix",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterStrGen,  "/masterStrGen",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterBanned,  "/masterBanned",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterMemstat,  "/masterMemstat",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterUSL,   "/masterUSL",   ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterFileList, "/masterFileList",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterFileEdit, "/masterFileEdit",  ACCESS_ADMIN, HTTP_POST) ;
   **   //if (rc == E_OK) rc = AddCIFunc(&_masterDataModel, "/masterDataModel",  ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterCfgRestart, "/masterCfgRestart", ACCESS_ADMIN, HTTP_GET) ;
   **   if (rc == E_OK) rc = AddCIFunc(&_masterLogout,  "/masterLogout",  ACCESS_ADMIN, HTTP_GET) ;
   **      */
   m_pLog->Log(" -- END of REPORT --\n") ;
   return rc ;
}