80 lines
2.6 KiB
C++
Executable File
80 lines
2.6 KiB
C++
Executable File
/**
|
|
* 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 <QSqlDatabase>
|
|
#include <QObject>
|
|
#include <AssetManagement/asm_dts_types.h>
|
|
#include <ExerciseManagement/exm_dts_types.h>
|
|
#include <FileManagement/flm_dts_types.h>
|
|
#include <InfrastructureManagement/ism_dts_types.h>
|
|
#include <ParticipantManagement/ppm_dts_types.h>
|
|
#include <ProjectDataManagement/pdm_dts_types.h>
|
|
|
|
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<DdsHandler> &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<InfrastructureManagement::DatabaseInterface> &db);
|
|
void publishTranslationBlob(const std::shared_ptr<ProjectDataManagement::DatabaseInterface> &db);
|
|
private:
|
|
std::shared_ptr<DdsHandler> m_ddsInterface;
|
|
std::unique_ptr<DTS::TrainingArea> m_asmTrainingArea;
|
|
std::unique_ptr<DTS::Exercise> m_exmExercise;
|
|
std::unique_ptr<DTS::ExercisePhase> m_exmExercisePhase;
|
|
std::unique_ptr<DTS::FileContent> m_flmFileContent;
|
|
std::unique_ptr<DTS::FileTypeInfo> m_flmFileTypeInfo;
|
|
std::unique_ptr<DTS::Folder> m_flmFolder;
|
|
std::unique_ptr<DTS::MainFootprint> m_ismMainFootprint;
|
|
std::unique_ptr<DTS::MainStructureElement> m_ismMainStructureElement;
|
|
std::unique_ptr<DTS::Type> m_ppmType;
|
|
std::unique_ptr<DTS::CanComponentString> m_pdmCanComponentString;
|
|
std::unique_ptr<DTS::ChargeType> m_pdmChargeType;
|
|
std::unique_ptr<DTS::FirePurpose> m_pdmFirePurpose;
|
|
std::unique_ptr<DTS::GearType> m_pdmGearType;
|
|
std::unique_ptr<DTS::GearTypeChargeType> m_ppmGearTypeChargeType;
|
|
std::unique_ptr<DTS::IgniterType> m_pdmIgniterType;
|
|
std::unique_ptr<DTS::IgniterFunction> m_pdmIgniterFunction;
|
|
std::unique_ptr<DTS::LoadType> m_pdmLoadType;
|
|
std::unique_ptr<DTS::ChargeTypeIgniterTypeIgniterFunction> m_pdmChargeTypeIgniterTypeIgniterFunction;
|
|
std::unique_ptr<DTS::ChargeTypeLoadType> m_pdmChargeTypeLoadType;
|
|
std::unique_ptr<DTS::LanguageHmi> m_pdmLanguageHmi;
|
|
std::unique_ptr<DTS::TranslationBlob> m_pdmTranslationBlob;
|
|
std::unique_ptr<DTS::VulnerabilityKind> m_pdmVulnerabilityKind;
|
|
QSqlDatabase m_db;
|
|
};
|
|
}
|