Fixes TopicLockMaster Dtc include, namespace and member access

This commit is contained in:
berrux-dev committed 2026-09-18 17:45:16 +02:00
1 parent 15a961182a
commit f974625b0f
2 files changed
+12 -6

No files matched your search

@@ -28,13 +28,13 @@ bool TopicLockMaster::init(const std::shared_ptr<DDSConnector::DdsConnector> &dd
m_coreDtc->enableAll();
m_coreDtc->lockedEntitys([this] (const LockedEntity &data) {
m_lockedEntitys << key(data.entityId(), data.exerciseId(), QString::fromStdString(data.entityTypeName()));
m_lockedEntitys << key(data.entityId, data.exerciseId, QString::fromStdString(data.entityTypeName));
});
connect(m_coreDtc.get(), &Interface::Dtc::lockedEntityChanged, this,
[this] (const LockedEntity &data, DataModification modType)
{
key k(data.entityId(), data.exerciseId(), QString::fromStdString(data.entityTypeName()));
key k(data.entityId, data.exerciseId, QString::fromStdString(data.entityTypeName));
if (modType == DataModification::eAdded)
m_lockedEntitys << k;
else if (modType == DataModification::eRemoved)
@@ -7,10 +7,14 @@
#include <Core/core_export.h>
#if BUILD_RTI
#include <Core/core_dtc.h>
// Resolves to the codegen-generated core_dtc.h via the build-dir include
// root (build4/Lts). The old <Core/core_dtc.h> spelling hit the migration
// stub tree (include/Core/core_dtc.h), whose DDS::Core::Interface forward
// declarations don't match the generated Core::Interface::Dtc.
#include <DDS/Core/core_dtc.h>
#else
// Forward declarations for moc compatibility when BUILD_RTI=OFF
namespace DDS { namespace Core { namespace Interface { class Dtc; } } }
namespace Core { namespace Interface { class Dtc; } }
#endif
namespace DDSConnector
@@ -66,14 +70,16 @@ public:
template<typename E>
bool isLocked(const E &data, int exerciseId)
{
auto it = m_lockedEntitys.constFind(key(data.id(), exerciseId, QString::fromStdString(typeid(E).name())));
// rtiddsgen -stl generates plain public data members, so the id is
// accessed directly instead of the old getter call data.id().
auto it = m_lockedEntitys.constFind(key(data.id, exerciseId, QString::fromStdString(typeid(E).name())));
return !(it == m_lockedEntitys.cend());
}
private:
QSet<key> m_lockedEntitys;
#if BUILD_RTI
std::shared_ptr<DDS::Core::Interface::Dtc> m_coreDtc;
std::shared_ptr<Core::Interface::Dtc> m_coreDtc;
#endif
};