Merge origin/feature/migrate-and-test-DDS-targets into feature/qt6-migration-basis-modules
Resolve merge conflicts between Qt6 migration basis modules and DDS test/target migration:
- codegen_simple.py: Keep Qt6 includes (generic_dtc_impl.h, service header)
- svc_ftc_impl.cpp.grantlee: Adopt DDS branch conditional logic ({% if ft.isCoreFt %})
- generic_dtc.h/.impl.h (include/ and Lts/): Keep Qt6 full-path includes, explicit wrapper methods for consistency
- connext.h: Add logger initialization for Requester/Replier (DDS branch enhancement)
- new_docker_build.sh:
- Add GROUP4_TARGETS for DDS tests
- Smart DOCKER_IMAGE selection (prebuilt vs ubuntu:26.04)
- Add BUILD_TESTING=ON to cmake
- Add Group 4 (DDS Tests) build step
Strategy: Preserve Qt6 migration decisions while incorporating DDS test/target changes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
34 files changed
+617
-200
No files matched your search
@@ -16,6 +16,7 @@
|
||||
#include <DDS/Generic/generic_data_reader.h>
|
||||
#include <DDS/Generic/subscriber_listener.h>
|
||||
#include <DDS/Generic/generic_logger.h>
|
||||
|
||||
#include <dds/core/cond/StatusCondition.hpp>
|
||||
#include <dds/core/cond/WaitSet.hpp>
|
||||
|
||||
|
||||
@@ -8,45 +8,23 @@
|
||||
* when BUILD_RTI=ON, or provides stub implementation when BUILD_RTI=OFF.
|
||||
*/
|
||||
|
||||
#include <dds/sub/subfwd.hpp>
|
||||
#include <functional>
|
||||
#include <string>
|
||||
|
||||
#ifdef BUILD_RTI
|
||||
// RTI DDS is available - include full implementation from Lts
|
||||
// MUST be included BEFORE namespace DDSGeneric to avoid namespace pollution
|
||||
#include <Lts/DDS/Generic/dynamic_data_reader.h>
|
||||
#include <Lts/DDS/Generic/generic_data_reader.h>
|
||||
|
||||
namespace DDSGeneric
|
||||
{
|
||||
|
||||
#ifdef BUILD_RTI
|
||||
// RTI DDS is available - include full DynamicDataReader implementation
|
||||
#include <Lts/DDS/Generic/dynamic_data_reader.h>
|
||||
|
||||
// Forward declaration stub for DataReader
|
||||
// RTI 7.7 signature: template <typename T, template <typename Q> class DELEGATE = dds::sub::detail::DataReaderImpl>
|
||||
template<typename T>
|
||||
class GenericDataReader {
|
||||
public:
|
||||
using DataType = T;
|
||||
using ReaderType = dds::sub::DataReader<T>;
|
||||
|
||||
// Minimal interface - extend as needed
|
||||
bool has_data() const { return false; }
|
||||
T read_data() { return T{}; }
|
||||
void cleanup() {}
|
||||
|
||||
// Access to underlying RTI reader if needed
|
||||
ReaderType& reader() { return m_reader; }
|
||||
const ReaderType& reader() const { return m_reader; }
|
||||
|
||||
private:
|
||||
ReaderType m_reader;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class GenericDataReaderContentFilter {
|
||||
public:
|
||||
using DataType = T;
|
||||
// Minimal stub - extend as needed
|
||||
};
|
||||
// Full implementation is in Lts/DDS/Generic/generic_data_reader.h
|
||||
// This file just provides the include path redirection
|
||||
} // namespace DDSGeneric
|
||||
|
||||
#else
|
||||
// BUILD_RTI=OFF: Provide minimal stub definitions
|
||||
// BUILD_RTI=OFF: Provide minimal stub definitions for RTI types
|
||||
|
||||
namespace dds {
|
||||
namespace sub {
|
||||
@@ -73,16 +51,95 @@ public:
|
||||
} // namespace sub
|
||||
} // namespace dds
|
||||
|
||||
// GenericDataReader stub template
|
||||
namespace DDSGeneric
|
||||
{
|
||||
|
||||
// GenericDataReader stub template (only when BUILD_RTI=OFF)
|
||||
template<typename T>
|
||||
class GenericDataReader {
|
||||
public:
|
||||
using DataType = T;
|
||||
using TopicType = T;
|
||||
using TopicTypeRead = T;
|
||||
using DataReader = void*;
|
||||
using DataTopic = void*;
|
||||
using DataReaderQos = void*;
|
||||
using SubscriberCallback = std::function<void(const TopicTypeRead&, int)>;
|
||||
using SubscriberCallbackWithSampleInfo = std::function<void(const TopicTypeRead&, const void*)>;
|
||||
|
||||
// Minimal stub methods - extend as needed
|
||||
bool has_data() const { return false; }
|
||||
T read_data() { return T{}; }
|
||||
void cleanup() {}
|
||||
GenericDataReader()
|
||||
: m_dataReader(nullptr), m_ddsTopic(nullptr), m_bHaveSubscriberCallback(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~GenericDataReader()
|
||||
{
|
||||
m_ddsTopic = nullptr;
|
||||
m_dataReader = nullptr;
|
||||
}
|
||||
|
||||
DataReader getDataReader() const
|
||||
{
|
||||
return m_dataReader;
|
||||
}
|
||||
|
||||
bool create(const void* domainParticipant, const void* ddsSubscriber,
|
||||
const std::string& topicName = std::string(),
|
||||
bool bCreateDataReader = true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool hasSamples() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void* readAlive(bool& bSeenNewSamples)
|
||||
{
|
||||
bSeenNewSamples = false;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void* takeAlive(bool& bSeenNewSamples)
|
||||
{
|
||||
bSeenNewSamples = false;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void* takeDisposed()
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
template <typename C> bool read(C callbackFunc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void setHaveSubscriberCallback(bool bHave)
|
||||
{
|
||||
m_bHaveSubscriberCallback = bHave;
|
||||
}
|
||||
|
||||
std::string topicName() const
|
||||
{
|
||||
return std::string();
|
||||
}
|
||||
|
||||
DataReader dataReader() const
|
||||
{
|
||||
return m_dataReader;
|
||||
}
|
||||
|
||||
virtual void recreateReader()
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
DataReader m_dataReader;
|
||||
DataReaderQos m_dataReaderQos;
|
||||
DataTopic m_ddsTopic;
|
||||
bool m_bHaveSubscriberCallback;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
@@ -111,6 +168,6 @@ public:
|
||||
bool hasSamples() const { return false; }
|
||||
};
|
||||
|
||||
#endif // BUILD_RTI
|
||||
} // namespace DDSGeneric
|
||||
|
||||
} // namespace DDSGeneric
|
||||
#endif // BUILD_RTI
|
||||
Reference in new issue
Block a user