/** * Subscribe to MeteoDataManagement and provide the correct weather for the given position * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "dds_handler.h" #include "logger.h" #include #include namespace EffectShowManagement { /** * @brief Handler for the provision of meto data for the effect shows */ class HandlerMdmData : public QObject { Q_OBJECT public: explicit HandlerMdmData(const std::shared_ptr &ddsHandler, QObject *parent = nullptr); /** * @brief Initialize the handler to manage information from Meteo Data Management */ bool init(); /** * @brief Returns the weather data from the station nearest to the provided position. * @param[in] pos Position of the effect show * @param[out] data Weather data from the station nearest to the position #pos * @return (false)No Weather data provided */ bool getNearestWeather(const Core::GeoPosition2D &pos, MeteoDataManagement::MeteoData &data) const; private Q_SLOTS: void onMeteoDataChanged(const MeteoDataManagement::MeteoData &data, DataModification modType); private: QHash m_meteoData; std::shared_ptr m_ddsHandler; NGL::INGLLogger &m_logger; }; } // namespace EffectShowManagement