Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Services/InfrastructureManagement/handler_main_structure_element.h
T
torstenandCopilot 7a6be7474e Qt6 migration: Fix BUILD_RTI=OFF build errors in TrainingAreaBase
- training_area_telegrams.cpp: Fixed QJsonObject initializer syntax (Qt6 requires {{}} not ({}))
- training_area_telegrams.cpp: Fixed fromJson() methods to access m_* members directly
- training_area_telegrams.cpp: Fixed brace mismatches in multiple toJson() methods
- training_area_telegrams.h: Changed Header struct to public members for consistency
- tx_mixin.cpp: Fixed getEquipmentNumber() template for direct member access
- lts_coordinate.cpp: Added missing #include <iomanip>
- MIGRATION_STATUS.md: Added migration progress tracking document

C++17 constraint enforced due to RTI Connext DDS 7.7.0 incompatibility with C++20+

Build status: BUILD_RTI=OFF successful (0 errors, warnings only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-23 20:49:23 +02:00

97 lines
4.1 KiB
C++
Executable File

/**
* @RDE_HEADER@
* ISM Handler Main Structure Elements
* $Id$
* $HeadURL$
* $Author$
* Created by Iuliana Ojog, SLSE, 2016-11-26
*/
#pragma once
#include <QtCore/QMap>
#include <QtCore/QSet>
#include "main_handler.h"
#include "base.h"
//-------------------------------------------------------------------------------------------------------------
namespace InfrastructureManagement
{
class ObjectMainStructureElement;
class ObjectStructureElement;
class MainHandler;
class HandlerMainStructureElement : public Base
, protected Interface::Fts::MainStructureElementModifyRequestHandler
, protected Interface::Fts::MainStructureElementModifyBridgeStatusRequestHandler
, protected Interface::Fts::MainStructureElementModifyPositionRequestHandler
, protected Interface::Fts::MainStructureElementRemoveRequestHandler
, protected Interface::Fts::StructureElementModifyRequestHandler
, protected Interface::Fts::StructureElementUpdateEffectOverrideRequestHandler
{
public:
explicit HandlerMainStructureElement(MainHandler *mainHandler);
~HandlerMainStructureElement();
bool init();
QHash<int, ObjectMainStructureElement *> getMainStructureElementsMap() const
{
return m_objectMainStructureElementMap;
}
ObjectMainStructureElement *getMainStructureElement(int mseId)
{
return m_objectMainStructureElementMap.value(mseId, nullptr);
}
QMap<int, ObjectStructureElement *> getStructureElementMap() const
{
return m_objectStructureElementMap;
}
ObjectStructureElement *getStructureElement(int seId)
{
return m_objectStructureElementMap.value(seId, nullptr);
}
void publishMainStructureElement(int buildingId);
void removedStructureElements(const QMap<int, ObjectStructureElement *> &removedElements);
void addedStructureElements(const QMap<int, ObjectStructureElement *> &addedElements);
public slots:
void onExerciseStateChanged(const ExerciseManagement::Exercise &data, DataModification mod);
private:
void onMainStructureElementModifyRequest(const rti::core::SampleIdentity &cookie,
const MainStructureElementModifyRequest &request) override;
Core::FunctionReplyObject onMainStructureElementCreate(const MainStructureElementModifyRequest &request);
Core::FunctionReplyObject onMainStructureElementModify(const MainStructureElementModifyRequest &request);
Core::FunctionReplyObject onStructureElementUpdateEffectOverrideModify(const StructureElementUpdateEffectOverrideRequest &request);
void onMainStructureElementRemoveRequest(const rti::core::SampleIdentity &cookie,
const MainStructureElementRemoveRequest &request) override;
void onMainStructureElementModifyPositionRequest(const rti::core::SampleIdentity &cookie,
const MainStructureElementModifyPositionRequest &request) override;
void onMainStructureElementModifyBridgeStatusRequest(const rti::core::SampleIdentity &cookie,
const MainStructureElementModifyBridgeStatusRequest &request) override;
void onStructureElementModifyRequest(const rti::core::SampleIdentity &cookie,
const StructureElementModifyRequest &request) override;
void onStructureElementUpdateEffectOverrideRequest(const rti::core::SampleIdentity &cookie,
const StructureElementUpdateEffectOverrideRequest &request) override;
Core::FunctionReplyObject onStructureElementModify(const StructureElementModifyRequest &request);
void changeBuildingNameinMountingPoints(const StructureElement &se, MainStructureElementModifyRequest &mseData);
static void udpatePropertiesForRelayOverride(const int relay,
const InfrastructureManagement::EffectOverride state,
InfrastructureManagement::StructureElement &se);
private:
QHash<int, ObjectMainStructureElement *> m_objectMainStructureElementMap;
QMap<int, ObjectStructureElement *> m_objectStructureElementMap; // all structure element of all buildings, must be sorted!
};
}