Migrates remaining services and plugins to generated rtiddsgen API

Converts accessor calls to plain member access across the residual service set.
This commit is contained in:
berrux-dev committed 2026-09-21 02:47:48 +02:00
1 parent 6a8c31b735
commit c3eda18234
104 files changed
+2424 -2430

No files matched your search

@@ -167,23 +167,23 @@ static Database::ExmExercise copyBaseData(const T &in)
Database::ExmExercise newData;
// exerciseState defined in ObjectExercise
newData.id = in.id();
newData.name = QString::fromStdString(in.name());
newData.beginTime = QDateTime::fromMSecsSinceEpoch(in.beginTime());
newData.endTime = QDateTime::fromMSecsSinceEpoch(in.endTime());
newData.startTime = QDateTime::fromMSecsSinceEpoch(in.startTime());
newData.stopTime = QDateTime::fromMSecsSinceEpoch(in.stopTime());
newData.trainingAreaId = in.trainingAreaId();
if (in.radioGroupId().is_set())
newData.radioGroupId = in.radioGroupId().get();
newData.symbolFillTypeId = in.symbolFillTypeId();
newData.linkedExerciseId = in.linkedExerciseId();
newData.defaultTimeZone = QLatin1Char(in.defaultTimeZone());
newData.sendToWms = in.sendToWMS();
newData.transferred = in.transferred();
newData.hasHlaInterface = in.hasHlaInterface();
newData.forces = QString::fromStdString(in.forces());
newData.description = QString::fromStdString(in.description());
newData.id = in.id;
newData.name = QString::fromStdString(in.name);
newData.beginTime = QDateTime::fromMSecsSinceEpoch(in.beginTime);
newData.endTime = QDateTime::fromMSecsSinceEpoch(in.endTime);
newData.startTime = QDateTime::fromMSecsSinceEpoch(in.startTime);
newData.stopTime = QDateTime::fromMSecsSinceEpoch(in.stopTime);
newData.trainingAreaId = in.trainingAreaId;
if (in.radioGroupId.is_set())
newData.radioGroupId = in.radioGroupId.get();
newData.symbolFillTypeId = in.symbolFillTypeId;
newData.linkedExerciseId = in.linkedExerciseId;
newData.defaultTimeZone = QLatin1Char(in.defaultTimeZone);
newData.sendToWms = in.sendToWMS;
newData.transferred = in.transferred;
newData.hasHlaInterface = in.hasHlaInterface;
newData.forces = QString::fromStdString(in.forces);
newData.description = QString::fromStdString(in.description);
return newData;
}
@@ -241,11 +241,11 @@ Core::FunctionReplyObject HandlerExercise::exerciseCreateRequest(const ExerciseC
// Create default phase for exercise
ExercisePhaseCreateRequest phaseData;
phaseData.name(tr("Phase 1").toStdString());
phaseData.description(tr("Default exercise phase").toStdString());
phaseData.beginTime(request.beginTime());
phaseData.endTime(request.endTime());
phaseData.exerciseId(ifs->id());
phaseData.name = tr("Phase 1").toStdString();
phaseData.description = tr("Default exercise phase").toStdString();
phaseData.beginTime = request.beginTime;
phaseData.endTime = request.endTime;
phaseData.exerciseId = ifs->id();
ret = m_mainHandler->exercisePhaseHandler()->exercisePhaseCreateRequest(phaseData);
if (hasError(ret, ifs))
@@ -291,21 +291,21 @@ Core::FunctionReplyObject HandlerExercise::exerciseModifyRequest(const ExerciseM
{
INFO_LOG(m_logger) << "onExerciseModifyRequest: " << request;
ObjectExercise *ifs = m_exeObjMap.value(request.id());
ObjectExercise *ifs = m_exeObjMap.value(request.id);
if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Exercise with id %1 not found")).arg(request.id());
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Exercise with id %1 not found")).arg(request.id);
if (ifs->exerciseState() == ExerciseState::Created &&
request.newState() == ExerciseState::Started)
request.newState == ExerciseState::Started)
{
// check if the running exercise has CnrChannels, which are already included in the global CnrConfigs
QStringList doubleChannelNames = doubleChannels(request.id(), 0);
QStringList doubleChannelNames = doubleChannels(request.id, 0);
if (!doubleChannelNames.isEmpty())
{
std::sort(doubleChannelNames.begin(), doubleChannelNames.end());
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "The following channel(s) are already planned in the global CnrConfig: %1")).arg(doubleChannelNames.join(QLatin1String(", ")));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "The following channel(s) are already planned in the global CnrConfig: %1")).arg(doubleChannelNames.join(QLatin1String(", ")));
}
// check if another exercise is already running, only allow N active exercises in parallel
@@ -317,7 +317,7 @@ Core::FunctionReplyObject HandlerExercise::exerciseModifyRequest(const ExerciseM
{
const auto state = ex->exerciseState();
if (ex->linkedExerciseId() == request.id())
if (ex->linkedExerciseId() == request.id)
{
doubleChannelNames = doubleChannels(ex->id(), 0);
@@ -325,7 +325,7 @@ Core::FunctionReplyObject HandlerExercise::exerciseModifyRequest(const ExerciseM
{
std::sort(doubleChannelNames.begin(), doubleChannelNames.end());
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "The following channel(s) are planned in the global CnrConfig and the linked exercise %1: %2")).arg(ex->name()).arg(doubleChannelNames.join(QLatin1String(", ")));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "The following channel(s) are planned in the global CnrConfig and the linked exercise %1: %2")).arg(ex->name()).arg(doubleChannelNames.join(QLatin1String(", ")));
}
}
@@ -343,48 +343,48 @@ Core::FunctionReplyObject HandlerExercise::exerciseModifyRequest(const ExerciseM
++iCntRunningExercises;
}
if (iCntRunningExercises >= Settings::maxStartedExercises())
return Core::FunctionReplyObject(request.id(),
return Core::FunctionReplyObject(request.id,
tr_lts("dds", "Can not start exercise - only %1 started exercise(s) allowed")).arg(Settings::maxStartedExercises());
}
if (request.newState() == ExerciseState::Stopped)
if (request.newState == ExerciseState::Stopped)
{
int iCnt = 0;
for (const ObjectExercise *ex : qAsConst(m_exeObjMap))
{
const auto state = ex->exerciseState();
if (ex->id() != request.id() && state == ExerciseState::Stopped)
if (ex->id() != request.id && state == ExerciseState::Stopped)
++iCnt;
}
if (Settings::maxStoppedExercises() > 0 && iCnt >= Settings::maxStoppedExercises())
return Core::FunctionReplyObject(request.id(),
return Core::FunctionReplyObject(request.id,
tr_lts("dds", "Can not stop exercise - there are %1 stopped exercise(s) from maximal %2 allowed")).arg(iCnt).arg(Settings::maxStoppedExercises());
}
if (request.hasHlaInterface() && (request.newState() == ExerciseState::Started ||
request.newState() == ExerciseState::Paused))
if (request.hasHlaInterface && (request.newState == ExerciseState::Started ||
request.newState == ExerciseState::Paused))
{
int iCnt = 0;
for (const ObjectExercise *ex : qAsConst(m_exeObjMap))
{
if (ex->id() != request.id() && ex->data().hasHlaInterface && (ex->exerciseState() == ExerciseState::Started ||
if (ex->id() != request.id && ex->data().hasHlaInterface && (ex->exerciseState() == ExerciseState::Started ||
ex->exerciseState() == ExerciseState::Paused))
++iCnt;
}
if (iCnt >= Settings::maxHlaExercises())
return Core::FunctionReplyObject(request.id(),
return Core::FunctionReplyObject(request.id,
tr_lts("dds", "Can not modify exercise - only %1 running exercise(s) with HLA allowed")).arg(Settings::maxHlaExercises());
}
if (ifs->exerciseState() != ExerciseManagement::ExerciseState::Created)
{
if (request.linkedExerciseId() != ifs->linkedExerciseId())
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not change linked exercise when exercise is already started"));
if (request.sendToWMS() == false && ifs->data().sendToWms == true)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Exercise is already visible in WMS - can not reset this option"));
if (request.linkedExerciseId != ifs->linkedExerciseId())
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not change linked exercise when exercise is already started"));
if (request.sendToWMS == false && ifs->data().sendToWms == true)
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Exercise is already visible in WMS - can not reset this option"));
}
if (request.linkedExerciseId() == 0)
if (request.linkedExerciseId == 0)
{
if (ifs->linkedExerciseId() != 0)
{
@@ -392,61 +392,61 @@ Core::FunctionReplyObject HandlerExercise::exerciseModifyRequest(const ExerciseM
if (linked != nullptr)
{
if (!linked->setLinkedExerciseId(0))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not update unlinked exercise"));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not update unlinked exercise"));
}
}
}
else // request.linkedExercise() != 0
{
ObjectExercise *linked = m_exeObjMap.value(request.linkedExerciseId());
ObjectExercise *linked = m_exeObjMap.value(request.linkedExerciseId);
if (linked == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not find linked exercise with id %1")).arg(request.linkedExerciseId());
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not find linked exercise with id %1")).arg(request.linkedExerciseId);
if (linked->linkedExerciseId() != request.id())
if (linked->linkedExerciseId() != request.id)
{
if (linked->linkedExerciseId() != 0)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "The exercise to link already has another linked exercise"));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "The exercise to link already has another linked exercise"));
// own state is checked above
if (linked->exerciseState() != ExerciseManagement::ExerciseState::Created)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not link to an already running exercise"));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not link to an already running exercise"));
QStringList doubleChannelNames = doubleChannels(request.id(), request.linkedExerciseId());
QStringList doubleChannelNames = doubleChannels(request.id, request.linkedExerciseId);
if (!doubleChannelNames.isEmpty())
{
std::sort(doubleChannelNames.begin(), doubleChannelNames.end());
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Linked exercise has overlapping CnrConfig(s) for channel(s): %1")).arg(doubleChannelNames.join(QLatin1String(", ")));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Linked exercise has overlapping CnrConfig(s) for channel(s): %1")).arg(doubleChannelNames.join(QLatin1String(", ")));
}
if (!linked->setLinkedExerciseId(request.id()))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not update linked exercise"));
if (!linked->setLinkedExerciseId(request.id))
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not update linked exercise"));
}
if (linked->sendToWms() != request.sendToWMS())
if (linked->sendToWms() != request.sendToWMS)
{
if (!linked->setSendToWms(request.sendToWMS()))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not update linked exercise"));
if (!linked->setSendToWms(request.sendToWMS))
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not update linked exercise"));
}
}
DEBUG_LOG(m_logger) << "Linked exercise: " << request.linkedExerciseId()
DEBUG_LOG(m_logger) << "Linked exercise: " << request.linkedExerciseId
<< ", state: " << ifs->exerciseState()
<< ", new: " << request.newState();
if (request.linkedExerciseId() != 0 && ifs->exerciseState() != request.newState())
<< ", new: " << request.newState;
if (request.linkedExerciseId != 0 && ifs->exerciseState() != request.newState)
{
if (request.newState() == ExerciseManagement::ExerciseState::Started ||
request.newState() == ExerciseManagement::ExerciseState::Stopped)
if (request.newState == ExerciseManagement::ExerciseState::Started ||
request.newState == ExerciseManagement::ExerciseState::Stopped)
{
ObjectExercise *ifsLinked = m_exeObjMap.value(request.linkedExerciseId());
ObjectExercise *ifsLinked = m_exeObjMap.value(request.linkedExerciseId);
if (!ifsLinked)
WARNING_LOG(m_logger) << "Linked exercise with id " << request.linkedExerciseId() << " not found!";
WARNING_LOG(m_logger) << "Linked exercise with id " << request.linkedExerciseId << " not found!";
else
{
if (ifsLinked->exerciseState() != ExerciseManagement::ExerciseState::Paused ||
request.newState() == ExerciseManagement::ExerciseState::Stopped)
request.newState == ExerciseManagement::ExerciseState::Stopped)
{
auto retLinked = ifsLinked->switchToState(request.newState(), request.operatorId(), request.workstationId());
auto retLinked = ifsLinked->switchToState(request.newState, request.operatorId, request.workstationId);
if (retLinked.error())
return retLinked;
}
@@ -455,20 +455,20 @@ Core::FunctionReplyObject HandlerExercise::exerciseModifyRequest(const ExerciseM
}
// state change to started requested? (case 'start' or 'resume')
if ((request.newState() != ifs->exerciseState() ) &&
(request.newState() == ExerciseManagement::ExerciseState::Started))
if ((request.newState != ifs->exerciseState() ) &&
(request.newState == ExerciseManagement::ExerciseState::Started))
{
QString mesg;
if (!checkEquipmentNumbersOnAllExercises(request.id(), mesg))
return Core::FunctionReplyObject(request.id(),
if (!checkEquipmentNumbersOnAllExercises(request.id, mesg))
return Core::FunctionReplyObject(request.id,
tr_lts("dds", "Can not start exercise - equipment numbers already in use: %1 ")).arg(mesg);
}
Database::ExmExercise data(copyBaseData(request));
data.exerciseStateId = request.newState();
data.activePhaseId = request.activePhaseId();
data.operatorId = request.operatorId();
data.workstationId = request.workstationId();
data.exerciseStateId = request.newState;
data.activePhaseId = request.activePhaseId;
data.operatorId = request.operatorId;
data.workstationId = request.workstationId;
return ifs->updateObject(data);
}
@@ -527,8 +527,8 @@ void HandlerExercise::onGetExerciseImageRequest(const rti::core::SampleIdentity
Core::FunctionReplyObject fro;
GetExerciseImageReply reply;
int32_t exerciseId = request.exerciseId();
reply.id(exerciseId);
int32_t exerciseId = request.exerciseId;
reply.id = exerciseId;
DEBUG_LOG(m_logger) << "onGetExerciseImageRequest id = " << exerciseId;
@@ -538,13 +538,13 @@ void HandlerExercise::onGetExerciseImageRequest(const rti::core::SampleIdentity
if (fro.error())
{
reply.id(fro.id());
reply.errorString(fro.str());
reply.errorParams(fro.args());
reply.id = fro.id();
reply.errorString = fro.str();
reply.errorParams = fro.args();
}
else
{
reply.imageData(LtsUtils::convert<std::vector<uint8_t>>(exmImg.image));
reply.imageData = LtsUtils::convert<std::vector<uint8_t>>(exmImg.image);
// TODO: reimpl optimization routines (e.g. use ImageMagick instead of GuiApplication, which won't work without an X server)
// QPixmap excPx(LtsUtils::getPixmap(exmImg.image));
@@ -580,15 +580,15 @@ void HandlerExercise::onGetExerciseImageRequest(const rti::core::SampleIdentity
void HandlerExercise::onExerciseImageModifyRequest(const rti::core::SampleIdentity &cookie,
const ExerciseImageModifyRequest &request)
{
qint32 exerciseId = request.id();
qint32 exerciseId = request.id;
DEBUG_LOG(m_logger) << "onExerciseImageModifyRequest id = " << exerciseId << ", image size = " << request.image().size();
DEBUG_LOG(m_logger) << "onExerciseImageModifyRequest id = " << exerciseId << ", image size = " << request.image.size();
Database::ExmExerciseImage exImg;
exImg.exerciseId = exerciseId;
bool result = m_db->selectExmExerciseImage(exerciseId, exImg);
exImg.image = LtsUtils::toQByteArray(request.image());
exImg.image = LtsUtils::toQByteArray(request.image);
if (result)
{
@@ -617,25 +617,25 @@ void HandlerExercise::onExerciseRemoveRequest(const rti::core::SampleIdentity &c
const ExerciseManagement::ExerciseRemoveRequest &request)
{
Core::FunctionReplyObject ret;
ObjectExercise *ifs = m_exeObjMap.value(request.id());
ObjectExercise *ifs = m_exeObjMap.value(request.id);
if (ifs == nullptr)
{
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Exercise with id %1 not found")).arg(request.id());
ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Exercise with id %1 not found")).arg(request.id);
m_ddsHandler->fts()->exerciseRemoveReply(cookie, ret);
return;
}
ExerciseManagement::Exercise ddsData;
ddsData.id(request.id());
ddsData.id = request.id;
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ddsData, 0))
{
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Exercise '%1' is used by another user!")).arg(ifs->data().name);
ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Exercise '%1' is used by another user!")).arg(ifs->data().name);
m_mainHandler->dds()->fts()->exerciseRemoveReply(cookie, ret);
return;
}
ret = ifs->removeObject(request.force());
ret = ifs->removeObject(request.force);
if (ret.error())
{
@@ -645,7 +645,7 @@ void HandlerExercise::onExerciseRemoveRequest(const rti::core::SampleIdentity &c
{
// delete ObjectExercise (including ExerciseStateMachine)
delete ifs;
m_exeObjMap.remove(request.id());
m_exeObjMap.remove(request.id);
}
m_ddsHandler->fts()->exerciseRemoveReply(cookie, ret);
@@ -692,8 +692,8 @@ bool HandlerExercise::checkEquipmentNumbersOnAllExercises(int exerciseIdToBeStar
const auto cb = [&eqNoForEx](const ParticipantManagement::Participant &data) -> void
{
if (data.equipmentNumber().is_set())
eqNoForEx.insert(data.equipmentNumber().get());
if (data.equipmentNumber.is_set())
eqNoForEx.insert(data.equipmentNumber.get());
};
ppmDtcForEx->participants(cb);
}
@@ -712,7 +712,7 @@ bool HandlerExercise::checkEquipmentNumbersOnAllExercises(int exerciseIdToBeStar
const auto cb = [this, &usedEqNumbers, exerciseIdToBeStarted, eqNoForEx](const ParticipantManagement::EquipmentExerciseMapping &equipmentExerciseMapping) -> void
{
const int exerciseId = equipmentExerciseMapping.exerciseId();
const int exerciseId = equipmentExerciseMapping.exerciseId;
// in case of resume exercise:
if (exerciseId == exerciseIdToBeStarted)
@@ -729,12 +729,12 @@ bool HandlerExercise::checkEquipmentNumbersOnAllExercises(int exerciseIdToBeStar
if ((ifs->exerciseState() == ExerciseState::Started) ||
(ifs->exerciseState() == ExerciseState::Paused))
{
const std::vector<ParticipantManagement::Equipment2ParticipantId> &mapping = equipmentExerciseMapping.mapping();
const std::vector<ParticipantManagement::Equipment2ParticipantId> &mapping = equipmentExerciseMapping.mapping;
for (const auto &eq2p : qAsConst(mapping))
if (eqNoForEx.contains(eq2p.equipmentNumber()))
if (eqNoForEx.contains(eq2p.equipmentNumber))
{
DEBUG_LOG(m_logger) << LOGFUNCTION << " !!! eq = " << eq2p.equipmentNumber() << " is already used in exercise =" << exerciseId;
usedEqNumbers[exerciseId].insert(eq2p.equipmentNumber());
DEBUG_LOG(m_logger) << LOGFUNCTION << " !!! eq = " << eq2p.equipmentNumber << " is already used in exercise =" << exerciseId;
usedEqNumbers[exerciseId].insert(eq2p.equipmentNumber);
}
}
};
@@ -792,17 +792,17 @@ QStringList HandlerExercise::doubleChannels(int exerciseAId, int exerciseBId) co
for (auto it = cnrConfigs.constBegin(); it != cnrConfigs.constEnd(); ++it)
{
int cnrExerciseId = it.value().exerciseId().is_set() ? it.value().exerciseId().get() : 0;
int cnrExerciseId = it.value().exerciseId.is_set() ? it.value().exerciseId.get() : 0;
if (cnrExerciseId == exerciseAId)
{
exerciseAChannelIds.append(it.value().cnrChannelId());
exerciseAChannelIds.append(it.value().cnrChannelId);
continue;
}
if (cnrExerciseId == exerciseBId)
{
exerciseBChannelIds.append(it.value().cnrChannelId());
exerciseBChannelIds.append(it.value().cnrChannelId);
continue;
}
}
@@ -814,7 +814,7 @@ QStringList HandlerExercise::doubleChannels(int exerciseAId, int exerciseBId) co
for (int exerciseAChannelId : qAsConst(exerciseAChannelIds))
{
if (exerciseBChannelIds.contains(exerciseAChannelId))
doubleChannelNames.append(QString::fromStdString(m_ddsHandler->avmDtc()->cnrChannel(exerciseAChannelId).name()));
doubleChannelNames.append(QString::fromStdString(m_ddsHandler->avmDtc()->cnrChannel(exerciseAChannelId).name));
}
return doubleChannelNames;