#include "pdm_handler.h" #include "main_handler.h" #include namespace Buildings { PdmHandler::PdmHandler(MainHandler *mainHandler) : m_mainHandler(mainHandler) , m_bPdmInitialized(false), m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {} PdmHandler::~PdmHandler() {} void PdmHandler::initializePdm() { if (m_bPdmInitialized) return; m_bPdmInitialized = true; auto dtcPdm = ProjectDataManagement::Interface::Dtc::create(m_mainHandler->ddsHandler()->ddsConnector()); if (!dtcPdm->enableChargeType() || !dtcPdm->enableBuildingChargeEffect() || !dtcPdm->waitForHistoricalDataChargeType(20000) || !dtcPdm->waitForHistoricalDataBuildingChargeEffect(20000)) { ERROR_LOG(m_logger) << "Can not read charge/gear types from PDM"; m_bPdmInitialized = false; return; } m_buildingChargeEffects = dtcPdm->buildingChargeEffects(); m_chargeTypes = dtcPdm->chargeTypes(); } QMap PdmHandler::buildingChargeEffects() { initializePdm(); return m_buildingChargeEffects; } QMap PdmHandler::chargeTypes() { initializePdm(); return m_chargeTypes; } }