BUILD_RTI=OFF: 1902/1902 Targets erfolgreich, DDS-Stubs vervollständigt
Neue Stub-Header für BUILD_RTI=OFF Konfiguration: - include/DDS/Generic/generic_base.h: Topic-Name-Templates, Helper-Funktionen - include/DDS/Generic/generic_logger.h: Logger-Wrapper mit DataType-Enum - include/DDS/Generic/ddsgen_export.h: Export-Makros (leer für OFF) - include/DDS/Generic/generic_data_reader.h: Data Reader Template-Stub - include/DDS/DTC/generic_dtc.h: Minimale DDS-Typen für DTC - include/LtsUtils/LtsUtilsCore/data_modification_enum.h: DataModification Enum - include/FileManagement/flm_dtc_impl.h: Virtuelle Methoden für Name-Helper - include/OperatorManagement/opm_dtc_impl.h: DtcImpl ohne Q_OBJECT Wichtige Änderungen: - QObject-Basisklasse entfernt für DatabaseInterfaceImpl und DtcImpl (BUILD_RTI=OFF) - Logger-Stub verwendet Qt-Logging (qDebug/qWarning/qCritical) - FileStatus als int-Alias statt enum class für BUILD_RTI=OFF - CMake: DDS-Bibliotheken als leere INTERFACE-Targets für BUILD_RTI=OFF - std::optional: is_set() → has_value(), get() → value() - QList → std::vector Konversionen korrigiert - qAsConst-Fehler mit rvalue expressions behoben Build-Status: 1902/1902 Targets erfolgreich (BUILD_RTI=OFF) Tests: Nicht ausführbar ohne RTI Connext DDS (BUILD_RTI=ON erforderlich)
This commit is contained in:
1 parent
eafbbbbbe9
commit
851d47e114
17 files changed
+606
-40
No files matched your search
+27
-21
@@ -13,8 +13,10 @@
|
||||
#include <QJsonObject>
|
||||
#include <QVariantList>
|
||||
#include <QtCore/QVector>
|
||||
#if BUILD_RTI
|
||||
#include <DDS/DTC/generic_dtc.h>
|
||||
#include <DDS/Generic/generic_data_reader.h>
|
||||
#endif
|
||||
|
||||
namespace OperatorManagement
|
||||
{
|
||||
@@ -25,12 +27,12 @@ DtcImplCustom::DtcImplCustom(const std::shared_ptr<DDSConnector::DdsConnector> &
|
||||
{
|
||||
}
|
||||
|
||||
QVector<int> DtcImplCustom::getOperatorsByOperatorRight(int operatorRight)
|
||||
std::vector<int> DtcImplCustom::getOperatorsByOperatorRight(int operatorRight)
|
||||
{
|
||||
QVector<int> ret;
|
||||
std::vector<int> ret;
|
||||
|
||||
DEBUG_LOG(m_logger) << "OperatorRight: " << operatorRight;
|
||||
for (const User &user : qAsConst(m_userCont))
|
||||
for (const User &user : std::as_const(m_userCont))
|
||||
{
|
||||
for (int acl : user.effectiveAcls())
|
||||
{
|
||||
@@ -38,7 +40,7 @@ QVector<int> DtcImplCustom::getOperatorsByOperatorRight(int operatorRight)
|
||||
continue;
|
||||
|
||||
DEBUG_LOG(m_logger) << "Found acl in Operator " << user.id() << ", operatorRight=" << operatorRight << ", acl=" << acl;
|
||||
ret.append(user.id());
|
||||
ret.push_back(user.id());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -46,13 +48,13 @@ QVector<int> DtcImplCustom::getOperatorsByOperatorRight(int operatorRight)
|
||||
return ret;
|
||||
}
|
||||
|
||||
QVector<int> DtcImplCustom::operatorForExerciseParty(int exerciseId, int partyId)
|
||||
std::vector<int> DtcImplCustom::operatorForExerciseParty(int exerciseId, int partyId)
|
||||
{
|
||||
QVector<int> ret = {};
|
||||
std::vector<int> ret;
|
||||
|
||||
DEBUG_LOG(m_logger) << LOGFUNCTION << " exerciseId: " << exerciseId << ", partyId: " << partyId;
|
||||
|
||||
for (const User &user : qAsConst(m_userCont))
|
||||
for (const User &user : std::as_const(m_userCont))
|
||||
{
|
||||
const auto visiblePartiesByExercise = user.visiblePartiesByExercise();
|
||||
for (const auto &pbe : visiblePartiesByExercise)
|
||||
@@ -60,14 +62,17 @@ QVector<int> DtcImplCustom::operatorForExerciseParty(int exerciseId, int partyId
|
||||
if (pbe.exerciseId() != exerciseId)
|
||||
continue;
|
||||
|
||||
if (!pbe.visibleParties().is_set())
|
||||
if (!pbe.visibleParties().has_value())
|
||||
continue;
|
||||
|
||||
std::vector<int32_t> hiddenParties = {};
|
||||
if (pbe.hiddenParties().is_set())
|
||||
hiddenParties = pbe.hiddenParties().get();
|
||||
std::vector<int> hiddenParties;
|
||||
if (pbe.hiddenParties().has_value())
|
||||
{
|
||||
const auto& hiddenQVec = pbe.hiddenParties().value();
|
||||
hiddenParties = std::vector<int>(hiddenQVec.begin(), hiddenQVec.end());
|
||||
}
|
||||
|
||||
for (const auto &id : pbe.visibleParties().get())
|
||||
for (const auto &id : pbe.visibleParties().value())
|
||||
{
|
||||
if (id != partyId)
|
||||
continue;
|
||||
@@ -81,7 +86,7 @@ QVector<int> DtcImplCustom::operatorForExerciseParty(int exerciseId, int partyId
|
||||
}
|
||||
|
||||
if (!isHidden)
|
||||
ret.append(user.id());
|
||||
ret.push_back(user.id());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -113,7 +118,7 @@ bool DtcImplCustom::sendAdlerNotification(const QString &jsonStr, const int exer
|
||||
DEBUG_LOG(m_logger) << "sendAdlerNotification";
|
||||
|
||||
const QJsonArray &exercisesArr = doc.object().value(QStringLiteral("Exercises")).toArray();
|
||||
for (const QJsonValue &exercisesVal : qAsConst(exercisesArr))
|
||||
for (const QJsonValue &exercisesVal : exercisesArr)
|
||||
{
|
||||
const QJsonObject exercisesObj = exercisesVal.toObject();
|
||||
|
||||
@@ -135,7 +140,7 @@ bool DtcImplCustom::sendAdlerNotification(const QString &jsonStr, const int exer
|
||||
// 2. Array durchlaufen
|
||||
QJsonArray notifications = exercisesObj.value(QStringLiteral("suppressNotifications")).toArray();
|
||||
|
||||
for (const QJsonValue &val : qAsConst(notifications))
|
||||
for (const QJsonValue &val : notifications)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "sendAdlerNotification notifications";
|
||||
const QJsonObject entry = val.toObject();
|
||||
@@ -159,17 +164,18 @@ bool DtcImplCustom::sendAdlerNotification(const QString &jsonStr, const int exer
|
||||
return !found;
|
||||
}
|
||||
|
||||
QVector<int> DtcImplCustom::getNotificationRecipents(const int exerciseId, const int partyId, const int operatorRight, const int notificationType)
|
||||
std::vector<int> DtcImplCustom::getNotificationRecipents(const int exerciseId, const int partyId, const int operatorRight, const int notificationType)
|
||||
{
|
||||
const QVector<int> operatorsByOperatorRight = getOperatorsByOperatorRight(operatorRight);
|
||||
QVector<int> operatorIds;
|
||||
const std::vector<int> operatorsByOperatorRight = getOperatorsByOperatorRight(operatorRight);
|
||||
std::vector<int> operatorIds;
|
||||
|
||||
for (const auto &userId : operatorsByOperatorRight)
|
||||
{
|
||||
bool inExercise = false;
|
||||
const auto user = m_userCont.value(userId);
|
||||
// Only include operators who are assigned to the exercise.
|
||||
for (const auto &exerciseIdUser : qAsConst(user.exerciseIds()))
|
||||
const auto& exerciseIds = user.exerciseIds();
|
||||
for (const auto &exerciseIdUser : exerciseIds)
|
||||
{
|
||||
if (exerciseIdUser == exerciseId)
|
||||
{
|
||||
@@ -184,7 +190,7 @@ QVector<int> DtcImplCustom::getNotificationRecipents(const int exerciseId, const
|
||||
}
|
||||
DEBUG_LOG(m_logger) << "getNotificationRecipents OperatorId" << user.id() << ", Name=" << user.name() << ", properties=" << user.properties();
|
||||
if (isAdlerAllowedParty(exerciseId, partyId, user.id()) &&
|
||||
sendAdlerNotification(QString::fromStdString(user.properties()), exerciseId, partyId, notificationType))
|
||||
sendAdlerNotification(user.properties(), exerciseId, partyId, notificationType))
|
||||
operatorIds.push_back(user.id());
|
||||
}
|
||||
return operatorIds;
|
||||
@@ -201,7 +207,7 @@ bool DtcImplCustom::isAdlerAllowedParty(int exerciseId, int partyId, int operato
|
||||
if (pbe.exerciseId() != exerciseId)
|
||||
continue;
|
||||
|
||||
const QJsonObject propsObj(QJsonDocument::fromJson(QByteArray::fromStdString(pbe.properties())).object());
|
||||
const QJsonObject propsObj(QJsonDocument::fromJson(pbe.properties().toUtf8()).object());
|
||||
const QJsonArray parties = propsObj.value(QStringLiteral("adlerAllowed")).toArray();
|
||||
|
||||
for (const QJsonValue &val : parties)
|
||||
|
||||
+3
-5
@@ -19,15 +19,13 @@ namespace Interface
|
||||
{
|
||||
class DtcImplCustom final : public Interface::DtcImpl
|
||||
{
|
||||
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DtcImplCustom(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector);
|
||||
|
||||
// custom procs, body must be implemented by user
|
||||
QVector<int> getOperatorsByOperatorRight(int operatorRight) override;
|
||||
QVector<int> operatorForExerciseParty(int exerciseId, int partyId) override;
|
||||
QVector<int> getNotificationRecipents (const int exerciseId, const int partyId, const int operatorRight, const int notificationType) override;
|
||||
std::vector<int> getOperatorsByOperatorRight(int operatorRight) override;
|
||||
std::vector<int> operatorForExerciseParty(int exerciseId, int partyId) override;
|
||||
std::vector<int> getNotificationRecipents (const int exerciseId, const int partyId, const int operatorRight, const int notificationType) override;
|
||||
bool isAdlerAllowedParty(int exerciseId, int partyId, int operatorId) override;
|
||||
|
||||
private:
|
||||
|
||||
Reference in new issue
Block a user