/** * Handler for all training area objects * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2016-03-04 */ #pragma once #include #include #include #include "asm_db_structs.h" #include "object_map_description.h" #include "dds_handler.h" #include "logger.h" namespace AssetManagement { class MainHandler; class ObjectTrainingArea; class HandlerTrainingArea final : public QObject , protected Interface::Fts::TrainingAreaModifyRequestHandler , protected Interface::Fts::TrainingAreaRemoveRequestHandler , protected Interface::Fts::MapDescriptionModifyRequestHandler , protected Interface::Fts::MapDescriptionRemoveRequestHandler { Q_OBJECT public: struct MapDescriptionSeq { QMap map2D; QMap scene3D; QMap elevation; QMap sceneObj; }; public: explicit HandlerTrainingArea(MainHandler *mainHandler, QObject *parent = nullptr); ~HandlerTrainingArea(); bool init(); private: void onTrainingAreaModifyRequest(const rti::core::SampleIdentity &cookie, const TrainingArea &request) override; Core::FunctionReplyObject trainingAreaModifyRequest(const TrainingArea &request); void onTrainingAreaRemoveRequest(const rti::core::SampleIdentity &cookie, const Core::RemoveElementRequest &request) override; void removeMapDescriptions(int trainingAreaId); void onMapDescriptionModifyRequest(const rti::core::SampleIdentity &cookie, const MapDescription &request) override; Core::FunctionReplyObject mapDescriptionModifyRequest(const MapDescription &request); void onMapDescriptionRemoveRequest(const rti::core::SampleIdentity &cookie, const Core::RemoveElementRequest &request) override; private: QMap m_objectTrainingAreaMap; QMap m_objectMapDescriptionMap; MainHandler *m_mainHandler; NGL::INGLLogger &m_logger; }; }