/** * Plugin Building Ownership * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLTE, 2016-04-14 */ #include "plugin.h" #include #include namespace CesBuildings { std::shared_ptr CesBuildingsPlugin::createInterface(CentralEffectSimulation::Plugin::DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, CentralEffectSimulation::MainHandler *mainHandler) { return std::make_shared(pdp, dDSConnector, settings, mainHandler); } CesBuildingsInterfaceImpl::CesBuildingsInterfaceImpl(CentralEffectSimulation::Plugin::DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, CentralEffectSimulation::MainHandler *mainHandler) : m_pdp(pdp) , m_ddsConnector(dDSConnector) , m_mainHandler(mainHandler) , m_ddsHandler(m_mainHandler->dds()) , m_db(m_mainHandler->db()) , m_handlerBuildingData(m_mainHandler->handlerBuildingData()) , m_handlerParticipant(m_mainHandler->handlerParticipant()) , m_logger(CentralEffectSimulation::getLogger("Plugin.Buildings.CesBuildingsInterfaceImpl")) { Q_UNUSED(settings) } CesBuildingsInterfaceImpl::~CesBuildingsInterfaceImpl() { m_handlerBuildingOwnership.reset(); m_handlerAesData.reset(); m_handlerContaminations.reset(); } bool CesBuildingsInterfaceImpl::init(int domainId, int exerciseId) { m_domainId = domainId; m_exerciseId = exerciseId; INFO_LOG(m_logger) << "CesBuildingsInterfaceImpl::init()" << " m_domainId=" << m_domainId << " m_exerciseId=" << m_exerciseId; // initialize handlerBuildingOwnership INFO_LOG(m_logger) << "initialize handlerBuildingOwnership ----------------------------"; m_handlerBuildingOwnership = std::make_shared(m_ddsHandler, m_handlerParticipant, m_handlerBuildingData, m_db, this); if (!m_handlerBuildingOwnership->init()) { ERROR_LOG(m_logger) << "Initialisation m_handlerBuildingOwnership failed."; return false; } INFO_LOG(m_logger) << "end initialize handlerBuildingOwnership ----------------------------"; // initialize handlerAesData INFO_LOG(m_logger) << "initialize handlerAesData ----------------------------"; m_handlerAesData = std::make_shared(m_ddsHandler, m_handlerBuildingData, this); if (!m_handlerAesData->init()) { ERROR_LOG(m_logger) << "Initialisation m_handlerAesData failed."; return false; } INFO_LOG(m_logger) << "end initialize HandlerAesData ----------------------------"; // initialize handlerAesData INFO_LOG(m_logger) << "initialize handlerContaminations ----------------------------"; m_handlerContaminations = std::make_shared(m_ddsHandler, this); if (!m_handlerContaminations->init()) { ERROR_LOG(m_logger) << "Initialisation m_handlerContaminations failed."; return false; } INFO_LOG(m_logger) << "end initialize HandlerContaminations ----------------------------"; // initialize handlerBuildingModel INFO_LOG(m_logger) << "initialize handlerBuildingModel ----------------------------"; m_handlerBuildingModel = std::make_shared(m_ddsHandler, m_handlerAesData, this); if (!m_handlerBuildingModel->init()) { ERROR_LOG(m_logger) << "Initialisation m_handlerBuildingModel failed."; return false; } INFO_LOG(m_logger) << "end initialize handlerBuildingModel ----------------------------"; // Maybe not all MainStructureElements are processed yet. // So give MainEventLoop time to finish their processing: // suggest Qtimer::singleShot() QTimer::singleShot(1000, this, [this]() { std::shared_ptr proxyBuilding = m_mainHandler->proxyBuilding(); if (proxyBuilding) { INFO_LOG(m_logger) << "set_handlerBuildingModel ----------------------------"; proxyBuilding->set_handlerBuildingModel(m_handlerBuildingModel); } }); INFO_LOG(m_logger) << "CesBuildingsInterfaceImpl::init() return true"; return true; } QString CesBuildingsInterfaceImpl::echo(const QString &message) { QString ret(QStringLiteral("<<<< %1 >>>> CentralEffectSimulationBuildingOwnershipInterfaceImpl::echo").arg(message)); INFO_LOG(m_logger) << "CentralEffectSimulationBuildingOwnershipInterfaceImpl::echo return:" << ret; DEBUG_LOG(m_logger) << "DEBUG: CentralEffectSimulationBuildingOwnershipInterfaceImpl::echo return:" << ret; return ret; } } //namespace CesBuildings