Files
qt5-legatus-legacy/Lts/Services/AreaEffectSimulation/special_area_provider.cpp
T
2026-08-13 18:33:10 +02:00

49 lines
1.2 KiB
C++
Executable File

/**
* 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<int,InfrastructureManagement::SpecialArea> 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();
}