49 lines
1.2 KiB
C++
Executable File
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();
|
|
}
|