Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/include/AreaEffectSimulation/aes_dtc.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

123 lines
3.2 KiB
C++

#pragma once
// STUB-HEADER: Diese Datei wird normalerweise von ddsdtc generiert
// Für die Migration erstellen wir minimale Forward-Declarations
#include <functional>
#include <memory>
#include <ostream>
#include <string>
#include <QtCore/QObject>
#include "LtsUtils/LtsUtilsCore/data_modification_enum.h"
namespace AreaEffectSimulation
{
// AesItem-Struct (wird normalerweise von DDS generiert)
struct AesItem
{
int32_t id() const { return m_id; }
const std::string& name() const { return m_name; }
int32_t m_id = 0;
std::string m_name;
};
inline std::ostream& operator<<(std::ostream& os, const AesItem& item)
{
os << "AesItem{id=" << item.id() << ", name=" << item.name() << "}";
return os;
}
// BCContamination-Struct (wird normalerweise von DDS generiert)
struct BCContamination : public AesItem
{
};
// BoobyTrap-Struct (wird normalerweise von DDS generiert)
struct BoobyTrap : public AesItem
{
};
// OffRouteMine-Struct (wird normalerweise von DDS generiert)
struct OffRouteMine : public AesItem
{
};
namespace Interface
{
// Dtc - Data Transfer Component für Area Effect Simulation
// DDS-generierte Klasse mit Signals für AES-Item-Änderungen
class Dtc : public QObject {
Q_OBJECT
public:
Dtc() = default;
~Dtc() override = default;
// Callback registration for AES item changes
void bcContaminations(std::function<void(const BCContamination&)> callback) {
m_bcCallback = callback;
}
void boobyTraps(std::function<void(const BoobyTrap&)> callback) {
m_boobyTrapCallback = callback;
}
void offRouteMines(std::function<void(const OffRouteMine&)> callback) {
m_offRouteMineCallback = callback;
}
void aesItems(std::function<void(const AesItem&)> callback) {
m_aesCallback = callback;
}
// Trigger methods for STUB testing
void triggerBCContaminationChanged(const BCContamination& item, DataModification modType) {
emit bcContaminationChanged(item, modType);
if (m_bcCallback) {
m_bcCallback(item);
}
}
void triggerBoobyTrapChanged(const BoobyTrap& item, DataModification modType) {
emit boobyTrapChanged(item, modType);
if (m_boobyTrapCallback) {
m_boobyTrapCallback(item);
}
}
void triggerOffRouteMineChanged(const OffRouteMine& item, DataModification modType) {
emit offRouteMineChanged(item, modType);
if (m_offRouteMineCallback) {
m_offRouteMineCallback(item);
}
}
void triggerAesItemChanged(const AesItem& item, DataModification modType) {
emit aesItemChanged(item, modType);
if (m_aesCallback) {
m_aesCallback(item);
}
}
signals:
void bcContaminationChanged(const BCContamination& item, DataModification modType);
void boobyTrapChanged(const BoobyTrap& item, DataModification modType);
void offRouteMineChanged(const OffRouteMine& item, DataModification modType);
void aesItemChanged(const AesItem& item, DataModification modType);
private:
std::function<void(const BCContamination&)> m_bcCallback;
std::function<void(const BoobyTrap&)> m_boobyTrapCallback;
std::function<void(const OffRouteMine&)> m_offRouteMineCallback;
std::function<void(const AesItem&)> m_aesCallback;
};
class Ftc;
} // namespace Interface
} // namespace AreaEffectSimulation