/** * MainHandler for AereaEffectSimulation * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include #include "aes_db.h" #include "dds_handler.h" #include "logger.h" namespace NGLDB { template class DbServiceHandler; } namespace AreaEffectSimulation { using DbHandler = NGLDB::DbServiceHandler; class HandlerAirSupportImpact; class HandlerExplosionSingle; class HandlerExplosionArea; class HandlerEffectCluster; class HandlerExplosionCluster; class HandlerNContamination; class HandlerBCContamination; class HandlerBoobyTrap; class HandlerOffRouteMine; class HandlerMineArea; class HandlerMineCorridor; class HandlerDangerArea; class HandlerChargeAdministration; class HandlerFunctionalArea; class HandlerTechnicalArea; class HandlerReconArea; class MeteoDataProvider; class SpecialAreaProvider; class HandlerBorderline; class HandlerGasPipe; class HandlerDusSingleMine; class HandlerChargeEffect; class HandlerTrajectory; class HandlerEffector; class MainHandler : public QObject { Q_OBJECT public: explicit MainHandler(QObject *parent = nullptr); ~MainHandler(); bool init(int domainId, int exerciseId); std::shared_ptr dds() { return m_ddsHandler; } std::shared_ptr db(); std::shared_ptr dbEx0(); std::shared_ptr meteoData() { return m_meteoData; } std::shared_ptr specialAreaProvider() { return m_specialAreaProvider; } std::shared_ptr chargeAdministrationHandler() { return m_handlerChargeAdmin; } std::shared_ptr bcContaminationHandler() { return m_handlerBCContamination; } std::shared_ptr boobyTrapHandler() { return m_handlerBoobyTrap; } std::shared_ptr mineAreaHandler() { return m_handlerMineArea; } std::shared_ptr mineCorridorHandler() { return m_handlerMineCorridor; } std::shared_ptr explosionAreaHandler() { return m_handlerExplosionArea; } std::shared_ptr explosionClusterHandler() { return m_handlerExplosionCluster; } std::shared_ptr explosionSingleHandler() { return m_handlerExplosionSingle; } std::shared_ptr reconAreaHandler() { return m_handlerReconArea; } std::shared_ptr dangerAreaHandler() { return m_handlerDangerArea; } std::shared_ptr chargeEffectHandler() { return m_handlerChargeEffect; } std::shared_ptr trajectoryHandler() { return m_handlerTrajectory; } std::shared_ptr effectorHandler() { return m_handlerEffector; } std::shared_ptr effectClusterHandler() { return m_handlerEffectCluster; } // some helper: ProjectDataManagement::GearClass gearClassOfChargeTypeId(int chargeTypeId) const; private: bool initAESHandler(); private: std::shared_ptr m_handlerAirSupportImpact; std::shared_ptr m_handlerExplosionSingle; std::shared_ptr m_handlerExplosionArea; std::shared_ptr m_handlerExplosionCluster; std::shared_ptr m_handlerEffectCluster; std::shared_ptr m_handlerFunctionalArea; std::shared_ptr m_handlerTechnicalArea; std::shared_ptr m_handlerNContamination; std::shared_ptr m_handlerBCContamination; std::shared_ptr m_handlerBoobyTrap; std::shared_ptr m_handlerOffRouteMine; std::shared_ptr m_handlerMineArea; std::shared_ptr m_handlerMineCorridor; std::shared_ptr m_handlerDangerArea; std::shared_ptr m_handlerChargeAdmin; std::shared_ptr m_handlerReconArea; std::shared_ptr m_handlerBorderline; std::shared_ptr m_handlerGasPipe; std::shared_ptr m_handlerDusSingleMine; std::shared_ptr m_handlerChargeEffect; std::shared_ptr m_handlerTrajectory; std::shared_ptr m_handlerEffector; std::shared_ptr m_ddsHandler; std::shared_ptr m_dbHandler; std::shared_ptr m_dbHandlerEx0; std::shared_ptr m_meteoData; std::shared_ptr m_specialAreaProvider; LOGGER_T m_logger; }; } // namespace AreaEffectSimulation