Files
qt-migration-legatus/qt5-before/dlbo/Lts/Proxies/Buildings/building_control_handler.h
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

79 lines
3.6 KiB
C++

/**
* Handle the single building instances
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-02-06
*/
#pragma once
#include <QObject>
#include <QVector>
#include "ism_handler.h"
#include "logger.h"
#include <bld_fts.h>
namespace AssetManagement {
class RelayInfo;
}
namespace Buildings
{
class MainHandler;
class BuildingProcess;
class BuildingControlHandler final : public QObject
, protected Interface::Fts::SetBuildingStatesRequestHandler
, protected Interface::Fts::SetBuildingContaminationStateRequestHandler
, protected Interface::Fts::SetFortifyFactorRequestHandler
, protected Interface::Fts::SendCesHitOnBuildingRequestHandler
, protected Interface::Fts::SendCesHit3DonBuildingRequestHandler
, protected Interface::Fts::TriggerBsmFlashRequestHandler
, protected Interface::Fts::SwitchRelayRequestHandler
{
Q_OBJECT
public:
explicit BuildingControlHandler(MainHandler *mainHandler);
~BuildingControlHandler();
bool init();
QMap<int, BuildingProcess *> getBuildings() { return m_buildings;}
public Q_SLOTS:
void onBuildingRemoved(int buildingId);
void onBuildingChanged(const BuildingInfo &buildingInfo, bool damageInit);
void setEffectStates(const int buildingId, const int assetId, const QByteArray &properties);
void onRelayInfoChanged(const AssetManagement::RelayInfo &info, const DataModification mod);
private:
void onSetBuildingContaminationStateRequest(const rti::core::SampleIdentity &cookie,
const SetBuildingContaminationStateRequest &request) override;
void onSetBuildingStatesRequest(const rti::core::SampleIdentity &cookie,
const SetBuildingStatesRequest &request) override;
void onSetFortifyFactorRequest(const rti::core::SampleIdentity &cookie,
const SetFortifyFactorRequest &request) override;
void onSendCesHitOnBuildingRequest(const rti::core::SampleIdentity &cookie,
const SendCesHitOnBuildingRequest &request) override;
void onSendCesHit3DonBuildingRequest(const rti::core::SampleIdentity &cookie,
const SendCesHit3DonBuildingRequest &request) override;
void onTriggerBsmFlashRequest(const rti::core::SampleIdentity &cookie,
const TriggerBsmFlashRequest &request) override;
void onSwitchRelayRequest(const rti::core::SampleIdentity &cookie,
const SwitchRelayRequest &request) override;
Core::FunctionReplyObject onSetBuildingContaminationStateRequestInternal(const SetBuildingContaminationStateRequest &data);
Core::FunctionReplyObject onSetBuildingStatesRequestInternal(const SetBuildingStatesRequest &data);
Core::FunctionReplyObject onSetFortifyFactorRequestInternal(const SetFortifyFactorRequest &data);
Core::FunctionReplyObject onSendCesHitOnBuildingRequestInternal(const SendCesHitOnBuildingRequest &data);
Core::FunctionReplyObject onSendCesHit3DonBuildingRequestInternal(const SendCesHit3DonBuildingRequest &data);
Core::FunctionReplyObject onTriggerBsmFlashInternal(const TriggerBsmFlashRequest &data);
Core::FunctionReplyObject onSwitchRelayInternal(const SwitchRelayRequest &data);
//bool setEffectStates(const int buildingId, const int assetId, QByteArray &properties);
private:
QMap<int, BuildingProcess *> m_buildings; // key = BuildingId
QMap<int, Buildings::HistoryState> m_historyStates; // key = BuildingId
QMap<int, AssetManagement::RelayInfo> m_relayInfos;
QString m_bcuExecutableName;
MainHandler *m_mainHandler;
LOGGER_T m_logger;
};
} // namespace Buildings