// // MODULE: APGTSCFG.CPP // Fully implements class CDBLoadConfiguration // // PURPOSE: // Brings together the persistent pieces of the online troubleshooter configuration: // - the Topic Shop // - the registry // - the threads that maintain these. // - the template file for error reporting // Provides functions to get latest values on registry variables and to acquire a // smart pointer to a CTopic based on its name. // // PROJECT: Generic Troubleshooter DLL for Microsoft AnswerPoint // // COMPANY: Saltmine Creative, Inc. (206)-284-7511 support@saltmine.com // // AUTHOR: Roman Mach // // ORIGINAL DATE: 8-2-96 // // NOTES: // 1. Based on Print Troubleshooter DLL // // Version Date By Comments //-------------------------------------------------------------------- // V0.1 - RM Original // V3.0 9/14/98 JM Major revisions as classes for file management have // all been rewritten // #pragma warning(disable:4786) #include "stdafx.h" #include "apgtscfg.h" // // CDBLoadConfiguration::CDBLoadConfiguration(HMODULE hModule, CThreadPool * pThreadPool, const CString& strTopicName, CHTMLLog *pLog) : m_TopicShop(), m_pThreadPool(pThreadPool), m_DirectoryMonitor(m_TopicShop ,strTopicName ), m_RegistryMonitor(m_DirectoryMonitor, pThreadPool, strTopicName, pLog ) { } // // CDBLoadConfiguration::~CDBLoadConfiguration() { } CString CDBLoadConfiguration::GetFullResource() { CString str; m_RegistryMonitor.GetStringInfo(CAPGTSRegConnector::eResourcePath, str); return str; } CString CDBLoadConfiguration::GetLogDir() { CString str; m_RegistryMonitor.GetStringInfo(CAPGTSRegConnector::eLogFilePath, str); return str; } CString CDBLoadConfiguration::GetVrootPath() { CString str; m_RegistryMonitor.GetStringInfo(CAPGTSRegConnector::eVrootPath, str); return str; } DWORD CDBLoadConfiguration::GetMaxThreads() { DWORD dw; m_RegistryMonitor.GetNumericInfo(CAPGTSRegConnector::eMaxThreads, dw); return dw; } // cookie life in minutes (before V3.0, was hours) DWORD CDBLoadConfiguration::GetCookieLife() { DWORD dw; m_RegistryMonitor.GetNumericInfo(CAPGTSRegConnector::eCookieLife, dw); return dw; } DWORD CDBLoadConfiguration::GetReloadDelay() { DWORD dw; m_RegistryMonitor.GetNumericInfo(CAPGTSRegConnector::eReloadDelay, dw); return dw; } DWORD CDBLoadConfiguration::GetThreadsPP() { DWORD dw; m_RegistryMonitor.GetNumericInfo(CAPGTSRegConnector::eThreadsPP, dw); return dw; } DWORD CDBLoadConfiguration::GetMaxWQItems() { DWORD dw; m_RegistryMonitor.GetNumericInfo(CAPGTSRegConnector::eMaxWQItems, dw); return dw; } bool CDBLoadConfiguration::HasDetailedEventLogging() { DWORD dw; m_RegistryMonitor.GetNumericInfo(CAPGTSRegConnector::eDetailedEventLogging, dw); return dw ? true : false; } void CDBLoadConfiguration::GetListOfTopicNames(vector&arrstrTopic) { m_TopicShop.GetListOfTopicNames(arrstrTopic); } // Call this function to obtain a CP_TOPIC as a pointer to the topic (identified by // strTopic) that you want to operate on. As long as the CP_TOPIC remains undeleted, // the associated CTopic is guaranteed to remain undeleted. // Warning: this function can wait a long time for the topic to be built. CP_TOPIC & CDBLoadConfiguration::GetTopic( const CString & strTopic, CP_TOPIC & cpTopic, bool bNewCookie) { return m_TopicShop.GetTopic(strTopic, cpTopic, bNewCookie); } // Call this function to obtain a CP_TEMPLATE as a pointer to the template (identified by // strTopic) that you want to operate on. As long as the CP_TEMPLATE remains undeleted, // the associated CAPGTSHTIReader is guaranteed to remain undeleted. // Warning: this function can wait a long time for the template to be built. CP_TEMPLATE & CDBLoadConfiguration::GetTemplate( const CString & strTemplate, CP_TEMPLATE & cpTemplate, bool bNewCookie) { return m_TopicShop.GetTemplate(strTemplate, cpTemplate, bNewCookie); } // Call this function to add a template to the topic shop catalog of templates and // to add it to the directory monitor list of templates to track for changes. void CDBLoadConfiguration::AddTemplate( const CString & strTemplateName ) { m_TopicShop.AddTemplate( strTemplateName ); // Notify the directory monitor to track this file. m_DirectoryMonitor.AddTemplateToTrack( strTemplateName ); return; } bool CDBLoadConfiguration::RetTemplateInCatalogStatus( const CString & strTemplate, bool & bValid ) { return( m_TopicShop.RetTemplateInCatalogStatus( strTemplate, bValid ) ); } void CDBLoadConfiguration::CreateErrorPage(const CString & strError, CString& out) { m_DirectoryMonitor.CreateErrorPage(strError, out); }