Added test case and setting Test configuration

This commit is contained in:
berrux-dev committed 2026-09-11 13:41:20 +02:00
1 parent f815271486
commit a86f9b5bac
48 files changed
+423 -168

No files matched your search

@@ -38,11 +38,7 @@ bool GeneratorGrantleeBase::initInternal(const XmlReader* reader, StructBuilder*
m_ctx->insert(QStringLiteral("namespace"), reader->getServiceNamespace());
m_ctx->insert(QStringLiteral("namespace_abbr"), reader->getServiceAbbr().toLower());
m_ctx->insert(QStringLiteral("namespace_abbr_upper"), reader->getServiceAbbr().toUpper());
if (reader->getServiceNamespace() == QLatin1String("Core"))
m_ctx->insert(QStringLiteral("include_prefix"),
QStringLiteral("DDS/%1").arg(reader->getServiceNamespace()));
else
m_ctx->insert(QStringLiteral("include_prefix"), reader->getServiceNamespace());
m_ctx->insert(QStringLiteral("include_prefix"), reader->getServiceNamespace());
m_ctx->insert(QStringLiteral("custom_record_replay"), reader->hasCustomRecordReplayPlugin());
}
return true;
@@ -61,17 +61,15 @@ QString MemberInformationWrapper::ddsToJsonElement() const
if (cppMemberName().isEmpty())
return QStringLiteral("obj[QStringLiteral(\"") + cppType() + QStringLiteral("\")] = element;");
const QString memberAccess = isCppStruct() ? cppMemberName() : cppMemberName() + QStringLiteral("()");
// The DDS_PSM_Cxx mapping (see cmake/MacroRTIDDSGen.cmake) gives generated
// types accessor methods, so members are always reached via foo().
if (!isOptional())
return QStringLiteral("obj[QStringLiteral(\"") + cppMemberName() + QStringLiteral("\")] = ") + cppToJsonPre() +
QStringLiteral("element.") + memberAccess + cppToJsonPost();
QStringLiteral("element.") + cppMemberName() + QStringLiteral("()") + cppToJsonPost();
const QString optionalAccess =
isCppStruct() ? cppMemberName() + QStringLiteral(".is_set()") : cppMemberName() + QStringLiteral("().is_set()");
const QString getValue = isCppStruct() ? cppMemberName() : cppMemberName() + QStringLiteral("()");
return QStringLiteral("if (element.") + optionalAccess + QStringLiteral(") ") +
return QStringLiteral("if (element.") + cppMemberName() + QStringLiteral("().is_set()) ") +
QStringLiteral("obj[QStringLiteral(\"") + cppMemberName() + QStringLiteral("\")] = ") + cppToJsonPre() +
QStringLiteral("*element.") + getValue + cppToJsonPost();
QStringLiteral("element.") + cppMemberName() + QStringLiteral("().get()") + cppToJsonPost();
}
QString MemberInformationWrapper::jsonElementToDds() const
@@ -86,12 +84,8 @@ QString MemberInformationWrapper::jsonElementToDds() const
if (isOptional())
ret += QStringLiteral("if (!val.isNull()) ");
if (isCppStruct())
ret += QStringLiteral("element.") + cppMemberName() + QStringLiteral(" = ") + cppFromJsonPre2() +
QStringLiteral("val") + cppFromJsonPost();
else
ret += QStringLiteral("element.") + cppMemberName() + QStringLiteral("(") + cppFromJsonPre2() +
QStringLiteral("val") + cppFromJsonPost() + QStringLiteral(")");
ret += QStringLiteral("element.") + cppMemberName() + QStringLiteral("(") + cppFromJsonPre2() +
QStringLiteral("val") + cppFromJsonPost() + QStringLiteral(")");
return ret;
}
@@ -288,6 +288,8 @@ class FtcGenerator(object):
def generate( self, outfile, parser ):
outputHeader( outfile, parser, 'FTC' )
outfile.write('\n')
outfile.write('#include <DDS/FTC/generic_ftc_impl.h>\n')
outfile.write('\n')
outfile.write('namespace FTC\n')
outfile.write('{\n')
outfile.write('template <typename REQ, typename REP, typename DUMMY> class GenericFtcImpl;\n')
@@ -16,10 +16,10 @@
#include <LtsUtilsCore/data_modification_enum.h>
#include <{{ include_prefix }}/{{ namespace_abbr }}_export.h>
#include <{{ include_prefix }}/{{ namespace_abbr }}.hpp>
#include <{{ include_prefix }}/{{ namespace_abbr }}_dtc_types.h>
// Bring Core namespace types into scope for Interface namespace
using namespace {{ namespace }};
// Bring DTC namespace types into scope for Interface namespace
using namespace DTC;
namespace DDSConnector
{
@@ -8,8 +8,8 @@
{% autoescape off %}
// filename: {{ namespace_abbr }}_ftc_impl.h
#pragma once
#include <{{ include_prefix }}/{{ namespace_abbr }}_ftc.h>
#include <{{ include_prefix }}/{{ namespace_abbr }}_ftc_types.h>
#include <{{ include_prefix }}/{{ namespace_abbr }}_ftc.h>
#include <{{ include_prefix }}/logger.h>
#include <DDS/FTC/abstract_requester.h>