/** * Plugin Ces Mine Laying Artillery * $Id$ * $HeadURL$ * $Author$ * Created by Nino Pinzer, ESZS, 12.03.2026 */ #pragma once #include #include #include #include #include #include namespace MineLayingArtillery { class MineLayingArtilleryPlugin : public QObject , public CentralEffectSimulation::Plugin::Plugin { Q_OBJECT Q_PLUGIN_METADATA(IID "special:3:ces.MineLayingArtilleryPlugin") Q_INTERFACES(CentralEffectSimulation::Plugin::Plugin) public: MineLayingArtilleryPlugin() = default; ~MineLayingArtilleryPlugin() = default; std::shared_ptr createInterface(CentralEffectSimulation::Plugin::DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, CentralEffectSimulation::MainHandler *mainHandler) override; }; class MineLayingArtilleryPluginInterfaceImpl final : public CentralEffectSimulation::Plugin::Interface { Q_OBJECT public: MineLayingArtilleryPluginInterfaceImpl(CentralEffectSimulation::Plugin::DataProvider *pdp, const std::shared_ptr &dDSConnector, NGL::Settings *settings, CentralEffectSimulation::MainHandler *mainHandler); ~MineLayingArtilleryPluginInterfaceImpl() = default; // bool init(); const char *name() const override { return "CentralEffectMineLayingArtillery"; } QString echo(const QString &message) override; private Q_SLOTS: bool init(int domainId, int exerciseId) override; private: CentralEffectSimulation::Plugin::DataProvider *m_pdp; std::shared_ptr m_ddsConnector; CentralEffectSimulation::MainHandler *m_mainHandler{nullptr}; std::shared_ptr m_ddsHandler; std::shared_ptr m_handlerMineLayingArtillery; CentralEffectSimulation::LOGGER_T &m_logger; ///< Interface to the Logging-Facility int m_domainId = 0; int m_exerciseId = 0; }; } // namespace MineLayingArtillery