4.3 KiB
4.3 KiB
DDS Migration Summary
Completed Tasks
1. Target Discovery
Discovered all 13 DDS CMake targets in Lts/DDS/:
- Buildable targets (7): ddscore, svcCoreClient, ddsftccore, ddsfts, ddsgen, ddsQoS, ddsconnector
- INTERFACE libraries (6): ddsdtc, ddsdts, ddsfts_connext, topic_type_plugin, routing_plugin, ddsfts_connext
2. Build Script Updates
Updated new_docker_build.sh GROUP1_TARGETS to include all 7 buildable DDS targets.
3. Compilation Fixes Applied
NGL Logger Fixes
Z/src/NGLLogger/INGLLogger.h: Fixed log macros to use::NGL::INGLLoggernamespaceLts/DDS/Core/logger.h: Fixed LOGGER_T typedefLts/DDS/Core/logger.cpp: Fixed getLogger() to use NGLLoggerBootstrapLts/DDS/FTS/connext.h: Added m_logger member declarations
Core Namespace Fixes
Lts/DDS/Core/pacemaker.h: Fixed Core::PortType → Core::CorePortTypeLts/DDS/Core/topic_lock_master.h/.cpp: Fixed namespace qualifications for Dtc and LockedEntityLts/DDS/Core/pacemaker.cpp: Fixed omg::types::optional usage (.value() instead of ())
Generic/FTC Fixes
include/DDS/DTC/generic_dtc.h: Added explicit using declarations for inherited methodsLts/DDS/DTC/generic_dtc_impl.h: Fixed Qt include order (before namespace declarations)Lts/DDS/Generic/generic_data_reader.h: Fixed Qt include order, added TopicType typedefinclude/DDS/Generic/generic_data_reader.h: Wrapped stub in #ifndef BUILD_RTI guardLts/DDS/FTC/generic_ftc_impl.h: Fixed QMetaMethod::invoke() signature for Qt6
Grantlee Template Fixes
Lts/Common/CodeGen/svc_dtc_impl.cpp.grantlee: Fixed getKey to use direct member access for RTI structsLts/Common/CodeGen/svc_ftc_impl.cpp.grantlee: Fixed FunctionReplyObject to use method calls
Build System Fixes
Lts/DDS/Core/CMakeLists.txt: Added MAKE_SVCCORECLIENT_LIB compile definitionLts/DDS/CMakeLists.txt: Fixed subdirectory order (DTC before DDSConnector)Lts/Common/CodeGen/codegen_simple.py: Added generic_dtc.h include to DtcGeneratortests/test_migration_stubs.cpp: Fixed DDS namespace errorsnew_docker_build.sh: Added INTEGRATION_TEST default variable
4. Build Results
- All 7 buildable DDS targets compile successfully with BUILD_RTI=ON and BUILD_GRANTLEE=ON
- CTest: 462/498 tests passed (93%)
- 36 tests not run (DDS unit tests require proper build configuration)
Remaining Issues
DDS Unit Tests Not Building
The DdsUnitTests subdirectory (ddsGenericDataTests, ddsDataTopicTests, ddsFunctionTopicTests) is not being built because:
- CMake condition requires TARGET ddsgen AND TARGET ddsdtc AND TARGET ddsfts AND TARGET ddsQoS
- These targets exist but the condition may not be evaluating correctly
Qt5 SIGNAL/SLOT Syntax
File Lts/DDS/DdsUnitTests/function_topic_tests.cpp lines 107-108, 132-133 still use Qt5 SIGNAL/SLOT syntax that needs migration to Qt6 QOverload syntax.
Key Technical Findings
- RTI Struct Member Access: RTI-generated structs use direct member access (e.g.,
data.entityId), NOT method calls - FunctionReplyObject: Unlike RTI structs, this Qt wrapper class uses methods (id(), str(), args(), etc.)
- Namespace Pollution: Qt includes must come BEFORE namespace declarations to prevent conflicts
- Include Path Order: CMake adds
include/beforeLts/, causing stub headers to be found first - Logger Pattern: Use
NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger("name") - omg::types::optional: Requires .value() or operator* to access, not function call syntax ()
Files Modified (18 total)
- new_docker_build.sh
- Z/src/NGLLogger/INGLLogger.h
- Lts/DDS/Core/logger.h
- Lts/DDS/Core/logger.cpp
- Lts/DDS/Core/pacemaker.h
- Lts/DDS/Core/topic_lock_master.h
- Lts/DDS/Core/topic_lock_master.cpp
- Lts/DDS/FTS/connext.h
- Lts/DDS/Core/pacemaker.cpp
- include/DDS/DTC/generic_dtc.h
- Lts/DDS/DTC/generic_dtc_impl.h
- Lts/DDS/Generic/generic_data_reader.h
- include/DDS/Generic/generic_data_reader.h
- Lts/DDS/FTC/generic_ftc_impl.h
- Lts/Common/CodeGen/svc_dtc_impl.cpp.grantlee
- Lts/Common/CodeGen/svc_ftc_impl.cpp.grantlee
- Lts/Plugins/ExerciseManagement/Gui/ExerciseEdit/exm_edit_gui_plugin.cpp
- Lts/Plugins/ParticipantManagement/Gui/ParticipantEdit/tactical_organisation.cpp
- Lts/DDS/Core/CMakeLists.txt
- Lts/Common/CodeGen/codegen_simple.py
- Lts/DDS/CMakeLists.txt
- tests/test_migration_stubs.cpp