/** * Plugin Explosions * $Id$ * $HeadURL$ * $Author$ * Created by Gerlinde Rudolphus, SLTE, 2024-01-05 */ #pragma once #include "handler_explosions.h" #include "handler_vulcano.h" #include #include #include #include #include #include namespace CesExplosions { //using DbHandler = NGLDB::DbServiceHandler; class CentralEffectSimulationExplosionsPlugin : public QObject, public CentralEffectSimulation::Plugin::Plugin { Q_OBJECT Q_PLUGIN_METADATA(IID "special:3:ces.CentralEffectSimulationExplosionsPlugin") Q_INTERFACES(CentralEffectSimulation::Plugin::Plugin) public: CentralEffectSimulationExplosionsPlugin() = default; ~CentralEffectSimulationExplosionsPlugin() = default; std::shared_ptr createInterface(CentralEffectSimulation::Plugin::DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, CentralEffectSimulation::MainHandler *mainHandler) override; }; class CesExplosionInterfaceImpl final : public CentralEffectSimulation::Plugin::Interface { Q_OBJECT public: CesExplosionInterfaceImpl(CentralEffectSimulation::Plugin::DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, CentralEffectSimulation::MainHandler *mainHandler); ~CesExplosionInterfaceImpl(); //bool init(); const char *name() const override { return "CentralEffectSimulationExplosions"; } QString echo(const QString &message) override; private Q_SLOTS: bool init(int domainId, int exerciseId) override; private: CentralEffectSimulation::Plugin::DataProvider *m_pdp{nullptr}; std::shared_ptr m_ddsConnector; CentralEffectSimulation::MainHandler *m_mainHandler{nullptr}; std::shared_ptr m_ddsHandler; std::shared_ptr m_db; std::shared_ptr m_handlerParticipant; ///< Pointer to handler for all participants std::shared_ptr m_handlerExplosions; ///< Pointer to handler for participant outside from Buildings std::shared_ptr m_handlerVulcano; ///< Pointer to handler for participant outside from Buildings CentralEffectSimulation::LOGGER_T &m_logger; int m_domainId{0}; int m_exerciseId{0}; }; } // namespace CesExplosions