/** * Publish static data (pdm, asm, ism) for THP * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2016-01-13 */ #pragma once #include "dds_handler.h" #include #include #include #include #include #include #include #include namespace FileManagement { namespace Database { struct FlmFileContent; } } namespace InfrastructureManagement { class DatabaseInterface; } namespace ProjectDataManagement { class DatabaseInterface; } namespace SituationReplay { class StaticPublisher final : public QObject { Q_OBJECT public: StaticPublisher(const std::shared_ptr &ddsInterface, const QSqlDatabase &db); ~StaticPublisher(); Q_SIGNALS: void fileContentAvailable(const FileManagement::Database::FlmFileContent &data); private: void publishData(); // including footprint void publishMainStructureElement(const std::shared_ptr &db); void publishTranslationBlob(const std::shared_ptr &db); private: std::shared_ptr m_ddsInterface; std::unique_ptr m_asmTrainingArea; std::unique_ptr m_exmExercise; std::unique_ptr m_exmExercisePhase; std::unique_ptr m_flmFileContent; std::unique_ptr m_flmFileTypeInfo; std::unique_ptr m_flmFolder; std::unique_ptr m_ismMainFootprint; std::unique_ptr m_ismMainStructureElement; std::unique_ptr m_ppmType; std::unique_ptr m_pdmCanComponentString; std::unique_ptr m_pdmChargeType; std::unique_ptr m_pdmFirePurpose; std::unique_ptr m_pdmGearType; std::unique_ptr m_ppmGearTypeChargeType; std::unique_ptr m_pdmIgniterType; std::unique_ptr m_pdmIgniterFunction; std::unique_ptr m_pdmLoadType; std::unique_ptr m_pdmChargeTypeIgniterTypeIgniterFunction; std::unique_ptr m_pdmChargeTypeLoadType; std::unique_ptr m_pdmLanguageHmi; std::unique_ptr m_pdmTranslationBlob; std::unique_ptr m_pdmVulnerabilityKind; QSqlDatabase m_db; }; }