/** * Subscribe to MeteoDataManagement and provide the correct weather for the given position * $Id$ * $HeadURL$ * $Author$ */ #include "special_area_provider.h" #include "main_handler.h" #include "settings.h" using namespace AreaEffectSimulation; SpecialAreaProvider::SpecialAreaProvider(MainHandler *mainHandler) : QObject() , m_mainHandler(mainHandler) , m_ismDtc(InfrastructureManagement::Interface::Dtc::create(m_mainHandler->dds()->ddsConnector())) { connect(m_ismDtc.get(), &InfrastructureManagement::Interface::Dtc::specialAreaChanged, this, &SpecialAreaProvider::specialAreaChanged); m_ismDtc->enableSpecialArea(); } SpecialAreaProvider::~SpecialAreaProvider() {} QMap SpecialAreaProvider::getSpecialAreas() { initSpecialAreas(); return m_specialAreaMap; } void SpecialAreaProvider::specialAreaChanged(const InfrastructureManagement::SpecialArea &data, DataModification modType) { Q_UNUSED(modType); Q_UNUSED(data); // nothing to do - the special area are not changeable, only in db } void SpecialAreaProvider::initSpecialAreas() { if (!m_specialAreaMap.isEmpty()) return; m_ismDtc->waitForHistoricalDataSpecialArea(); m_specialAreaMap = m_ismDtc->specialAreas(); }