Fixes merge conflicts, but leaves out-of-DDS-scope build errors (tbc)
This commit is contained in:
6 files changed
+109
-17
No files matched your search
@@ -15,6 +15,7 @@
|
||||
{% endif %}
|
||||
#include <NGLLogger/INGLLogger.h>
|
||||
#include <DDS/DTC/generic_dtc_impl.h>
|
||||
#include <DDS/Core/logger.h>
|
||||
#include <dds/core/cond/StatusCondition.hpp>
|
||||
#include <dds/core/cond/WaitSet.hpp>
|
||||
#include <unordered_map>
|
||||
@@ -22,6 +23,7 @@
|
||||
#include <QThread>
|
||||
|
||||
using namespace NGL;
|
||||
using namespace Core;
|
||||
|
||||
namespace {{ namespace }}
|
||||
{
|
||||
@@ -61,7 +63,7 @@ std::shared_ptr<Dtc> Dtc::create(const std::shared_ptr<DDSConnector::DdsConnecto
|
||||
DtcImpl::DtcImpl(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector)
|
||||
: Dtc()
|
||||
, m_ddsConnector(ddsConnector)
|
||||
, m_logger(&ProjectDataManagement::getLogger("Dtc"))
|
||||
, m_logger(&getLogger("Dtc"))
|
||||
{}
|
||||
|
||||
DtcImpl::~DtcImpl()
|
||||
|
||||
@@ -30,8 +30,11 @@ template <typename DRO_OBJECT, typename SC> class GenericDtcSC
|
||||
|
||||
virtual bool setSubscriberCallback(const SubscriberCallback& subscriberCallback) = 0;
|
||||
virtual dds::sub::LoanedSamples<TopicType> readAlive() const = 0;
|
||||
virtual bool readAlive(TopicType& data) = 0;
|
||||
virtual dds::sub::LoanedSamples<TopicType> takeAlive() const = 0;
|
||||
virtual bool takeAlive(TopicType& data) = 0;
|
||||
virtual dds::sub::LoanedSamples<TopicType> takeDisposed() const = 0;
|
||||
virtual bool takeDisposed(TopicType& data) = 0;
|
||||
virtual bool hasSamples() const = 0;
|
||||
virtual DataReaderObject* dataReader() const = 0;
|
||||
virtual bool waitForHistoricalData(int timeoutMSec) = 0;
|
||||
@@ -46,7 +49,11 @@ class GenericDtc
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, DataModification)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
using BaseClass::SubscriberCallback;
|
||||
bool setSubscriberCallback(const typename BaseClass::SubscriberCallback& callback) override { return BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
@@ -65,7 +72,11 @@ class GenericDtcSampleInfo
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, const dds::sub::SampleInfo&)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
using BaseClass::SubscriberCallback;
|
||||
bool setSubscriberCallback(const typename BaseClass::SubscriberCallback& callback) override { return BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
@@ -84,7 +95,11 @@ class Ddtc
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, const std::string&, DataModification)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
using BaseClass::SubscriberCallback;
|
||||
bool setSubscriberCallback(const typename BaseClass::SubscriberCallback& callback) override { return BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
@@ -103,7 +118,11 @@ class DdtcSampleInfo
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, const std::string&, const dds::sub::SampleInfo&)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
using BaseClass::SubscriberCallback;
|
||||
bool setSubscriberCallback(const typename BaseClass::SubscriberCallback& callback) override { return BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <QtCore/QByteArray>
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
#include "TrainingAreaBase/logger.h"
|
||||
#include "DDS/Core/logger.h"
|
||||
#include <dds/core/cond/GuardCondition.hpp>
|
||||
#include <dds/core/cond/StatusCondition.hpp>
|
||||
#include <dds/core/cond/WaitSet.hpp>
|
||||
@@ -320,7 +320,7 @@ template <typename REQUEST, typename REPLY> class Requester final : public Reply
|
||||
|
||||
m_contentFilteredTopic->filter(dds::topic::Filter(filterContent.data()));
|
||||
}
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "content filter for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "content filter for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< " - related_sample_identity should be: " << writerGuid;
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ template <typename REQUEST, typename REPLY> class Requester final : public Reply
|
||||
m_dataWriter->write(request.data(), request.info());
|
||||
|
||||
const rti::core::SampleIdentity currentSampleIdentity = request.info().identity();
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "send_request for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "send_request for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< ", m_currentSampleIdentity: " << DebugInfo::toReadable(currentSampleIdentity);
|
||||
}
|
||||
|
||||
@@ -370,13 +370,13 @@ template <typename REQUEST, typename REPLY> class Requester final : public Reply
|
||||
|
||||
if (m_dataReader->take(reply.data(), reply.info()) && reply.info().valid())
|
||||
{
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "receive_reply for topic "
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "receive_reply for topic "
|
||||
<< ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< ", SampleIdentity - original publication virtual: "
|
||||
<< DebugInfo::toReadable(
|
||||
reply.info()->original_publication_virtual_sample_identity());
|
||||
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "receive_reply for topic "
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "receive_reply for topic "
|
||||
<< ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< ", SampleIdentity - related original: "
|
||||
<< DebugInfo::toReadable(
|
||||
@@ -389,7 +389,7 @@ template <typename REQUEST, typename REPLY> class Requester final : public Reply
|
||||
dds::core::cond::WaitSet::ConditionSeq activeConditionsSeq = waitset.wait(duration);
|
||||
if (activeConditionsSeq.empty())
|
||||
{
|
||||
ERROR_LOG(::TrainingAreaBase::getLogger("connext")) << "Bailing out!";
|
||||
ERROR_LOG(Core::getLogger("connext")) << "Bailing out!";
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -400,7 +400,7 @@ template <typename REQUEST, typename REPLY> class Requester final : public Reply
|
||||
if (!m_curInstanceHandle.is_nil())
|
||||
{
|
||||
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "Keyed topic - disposing instance: "
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "Keyed topic - disposing instance: "
|
||||
<< ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name();
|
||||
m_dataWriter.dispose_instance(m_curInstanceHandle);
|
||||
}
|
||||
@@ -456,7 +456,7 @@ template <typename REQUEST, typename REPLY> class Replier final : public ReplyRe
|
||||
void send_reply(connext::WriteSampleRef<REPLY>& reply, const rti::core::SampleIdentity& identity,
|
||||
bool bLastSample = true)
|
||||
{
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "send_reply for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "send_reply for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< ", sampleIdentity: " << DebugInfo::toReadable(identity);
|
||||
|
||||
rti::core::SampleFlag sf = reply.info().flag();
|
||||
@@ -466,7 +466,7 @@ template <typename REQUEST, typename REPLY> class Replier final : public ReplyRe
|
||||
sf |= rti::core::SampleFlag::intermediate_reply_sequence();
|
||||
reply.info().flag(sf);
|
||||
reply.info().related_sample_identity(identity);
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "send_reply for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "send_reply for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< ", related sampleIdentity: "
|
||||
<< DebugInfo::toReadable(reply.info().related_sample_identity());
|
||||
|
||||
@@ -480,7 +480,7 @@ template <typename REQUEST, typename REPLY> class Replier final : public ReplyRe
|
||||
|
||||
if (request.info().valid())
|
||||
{
|
||||
DEBUG_LOG(::TrainingAreaBase::getLogger("connext")) << "receive_request for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
DEBUG_LOG(Core::getLogger("connext")) << "receive_request for topic " << ReplyRequestBase<REQUEST, REPLY>::m_requestTopic.name()
|
||||
<< ", sampleIdentity publication_virtual_sample_identity: "
|
||||
<< DebugInfo::toReadable(request.info()->publication_virtual_sample_identity())
|
||||
<< ", original_publication_virtual_sample_identity: "
|
||||
|
||||
@@ -30,8 +30,11 @@ template <typename DRO_OBJECT, typename SC> class GenericDtcSC
|
||||
|
||||
virtual bool setSubscriberCallback(const SubscriberCallback& subscriberCallback) = 0;
|
||||
virtual dds::sub::LoanedSamples<TopicType> readAlive() const = 0;
|
||||
virtual bool readAlive(TopicType& data) = 0;
|
||||
virtual dds::sub::LoanedSamples<TopicType> takeAlive() const = 0;
|
||||
virtual bool takeAlive(TopicType& data) = 0;
|
||||
virtual dds::sub::LoanedSamples<TopicType> takeDisposed() const = 0;
|
||||
virtual bool takeDisposed(TopicType& data) = 0;
|
||||
virtual bool hasSamples() const = 0;
|
||||
virtual DataReaderObject* dataReader() const = 0;
|
||||
virtual bool waitForHistoricalData(int timeoutMSec) = 0;
|
||||
@@ -46,7 +49,11 @@ class GenericDtc
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, DataModification)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
using BaseClass::SubscriberCallback;
|
||||
bool setSubscriberCallback(const typename BaseClass::SubscriberCallback& callback) override { return BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
@@ -65,6 +72,9 @@ class GenericDtcSampleInfo
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, const dds::sub::SampleInfo&)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
@@ -84,6 +94,9 @@ class Ddtc
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, const std::string&, DataModification)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
@@ -103,6 +116,9 @@ class DdtcSampleInfo
|
||||
using TopicType = typename BaseClass::TopicType;
|
||||
|
||||
// Explicitly expose base class methods for accessibility through smart pointers
|
||||
using BaseClass::readAlive;
|
||||
using BaseClass::takeAlive;
|
||||
using BaseClass::takeDisposed;
|
||||
void setSubscriberCallback(std::function<void(const TopicType&, const std::string&, const dds::sub::SampleInfo&)> callback) { BaseClass::setSubscriberCallback(callback); }
|
||||
bool readAlive(TopicType& data) { return BaseClass::readAlive(data); }
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
|
||||
@@ -127,6 +127,17 @@ public:
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool readAlive(TopicTypeRead& data) override final
|
||||
{
|
||||
auto samples = readAlive();
|
||||
if (samples.length() > 0)
|
||||
{
|
||||
data = samples[0].data();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
dds::sub::LoanedSamples<TopicTypeRead> takeAlive() const override final
|
||||
{
|
||||
if (!m_dataReaderObject)
|
||||
@@ -140,6 +151,17 @@ public:
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool takeAlive(TopicTypeRead& data) override final
|
||||
{
|
||||
auto samples = takeAlive();
|
||||
if (samples.length() > 0)
|
||||
{
|
||||
data = samples[0].data();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
dds::sub::LoanedSamples<TopicTypeRead> takeDisposed() const override final
|
||||
{
|
||||
if (!m_dataReaderObject)
|
||||
@@ -148,6 +170,17 @@ public:
|
||||
return m_dataReaderObject->takeDisposed();
|
||||
}
|
||||
|
||||
bool takeDisposed(TopicTypeRead& data) override final
|
||||
{
|
||||
auto samples = takeDisposed();
|
||||
if (samples.length() > 0)
|
||||
{
|
||||
data = samples[0].data();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool hasSamples() const override final
|
||||
{
|
||||
if (!m_dataReaderObject)
|
||||
|
||||
@@ -208,6 +208,7 @@ APT_PACKAGES=(
|
||||
libvlc-dev
|
||||
vlc-plugin-base
|
||||
git
|
||||
python3-pip
|
||||
)
|
||||
|
||||
# INTERFACE libraries (header-only) are built automatically as dependencies
|
||||
@@ -356,7 +357,7 @@ install_qt6_packages() {
|
||||
# Install aqtinstall if not available
|
||||
if ! command -v aqt &> /dev/null; then
|
||||
log_info "Installing aqtinstall via pip3"
|
||||
pip3 install --quiet aqtinstall
|
||||
pip3 install --break-system-packages --quiet aqtinstall
|
||||
fi
|
||||
|
||||
# Install Qt6 modules (same as app/Dockerfile)
|
||||
@@ -592,6 +593,27 @@ log_info() {
|
||||
printf 'INFO: %s\n' "$*"
|
||||
}
|
||||
|
||||
install_qt6_packages() {
|
||||
log_info "Installing Qt6 packages via aqtinstall"
|
||||
|
||||
# Install aqtinstall if not available
|
||||
if ! command -v aqt &> /dev/null; then
|
||||
log_info "Installing aqtinstall via pip3"
|
||||
pip3 install --break-system-packages --quiet aqtinstall
|
||||
fi
|
||||
|
||||
# Install Qt6 modules (same as app/Dockerfile)
|
||||
# Modules: qtmultimedia, qtserialport, qtimageformats, qtwebsockets, qtwebengine,
|
||||
# qtpdf, qtwebview, qt5compat, qtwebchannel, qtpositioning, qtlocation, qtsensors
|
||||
# Note: qtsvg is NOT available via aqtinstall - it's provided by libqt6svg6-dev apt package
|
||||
aqt install-qt linux desktop "${QT_VERSION:-6.10.2}" "${QT_ARCH:-linux_gcc_64}" \
|
||||
-m qtmultimedia qtserialport qtimageformats qtwebsockets qtwebengine \
|
||||
qtpdf qtwebview qt5compat qtwebchannel qtpositioning qtlocation qtsensors \
|
||||
--outputdir "${QT_BASE_DIR:-/opt/Qt}"
|
||||
|
||||
log_info "Qt6 packages installed successfully"
|
||||
}
|
||||
|
||||
run_build_group() {
|
||||
local group_id="$1"
|
||||
local enabled="$2"
|
||||
|
||||
Reference in new issue
Block a user