Migrates AreaEffectSimulation to generated rtiddsgen API

Converts accessor calls to plain member access across aes service and plugin.
This commit is contained in:
berrux-dev committed 2026-09-21 02:45:07 +02:00
1 parent e8d07af320
commit 472f537313
102 files changed
+3307 -3313

No files matched your search

@@ -14,7 +14,7 @@ namespace AreaEffectSimulation
{
HandlerBCContamination::HandlerBCContamination(MainHandler *mainHandler)
: HandlerBaseTmpl<ObjectBCContamination>(mainHandler, QStringLiteral("BCContamination"), s_areaCount[AesType::AtBCContamination], s_areaCountCentral[AesType::AtBCContamination])
: HandlerBaseTmpl<ObjectBCContamination>(mainHandler, QStringLiteral("BCContamination"), s_areaCount[static_cast<int>(AesType::AtBCContamination)], s_areaCountCentral[static_cast<int>(AesType::AtBCContamination)])
, Interface::Fts::BCContaminationModifyRequestHandler(mainHandler->dds()->fts())
, Interface::Fts::BCContaminationRemoveRequestHandler(mainHandler->dds()->fts())
{}
@@ -40,7 +40,7 @@ bool HandlerBCContamination::init()
}
if(!ifs->data().isCentral)
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtBCContamination] + s_maxActiveAreas[AesType::AtNContamination]))
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreas[static_cast<int>(AesType::AtNContamination)]))
{
ERROR_LOG(m_logger) << "More active bc contaminationsin database than allowed - ignoring the rest!";
ifs->removeObject();
@@ -50,7 +50,7 @@ bool HandlerBCContamination::init()
}
else
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtBCContamination] + s_maxActiveAreasCentral[AesType::AtNContamination]))
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtNContamination)]))
{
ERROR_LOG(m_logger) << "More active bc contaminationsin database than allowed - ignoring the rest!";
ifs->removeObject();
@@ -85,18 +85,18 @@ bool HandlerBCContamination::init()
int HandlerBCContamination::totalAreas() const
{
return s_areaCount[AesType::AtBCContamination] + s_areaCount[AesType::AtNContamination];
return s_areaCount[static_cast<int>(AesType::AtBCContamination)] + s_areaCount[static_cast<int>(AesType::AtNContamination)];
}
int HandlerBCContamination::totalAreasCentral() const
{
return s_areaCountCentral[AesType::AtBCContamination] + s_areaCountCentral[AesType::AtNContamination];
return s_areaCountCentral[static_cast<int>(AesType::AtBCContamination)] + s_areaCountCentral[static_cast<int>(AesType::AtNContamination)];
}
void HandlerBCContamination::onChangedToCentral()
{
s_areaCount[AesType::AtBCContamination]--;
s_areaCountCentral[AesType::AtBCContamination]++;
s_areaCount[static_cast<int>(AesType::AtBCContamination)]--;
s_areaCountCentral[static_cast<int>(AesType::AtBCContamination)]++;
DEBUG_LOG(m_logger) << "m_areaCount after Recount = " << m_areaCount;
DEBUG_LOG(m_logger) << "m_areaCountCentral after Recount = " << m_areaCountCentral;
@@ -105,39 +105,39 @@ void HandlerBCContamination::onChangedToCentral()
static void fillData(const BCContaminationModifyRequest &src, Database::AesBCContamination &dst)
{
if (src.id() < 0) // is the id given as negative? set id -> used by OC-laptop
dst.id = src.id();
if (src.id < 0) // is the id given as negative? set id -> used by OC-laptop
dst.id = src.id;
dst.name = QString::fromStdString(src.name());
dst.effectStart = src.effectStart().is_set() && src.effectStart().get() > 0 ? QDateTime::fromMSecsSinceEpoch(src.effectStart().get()) : QDateTime();
dst.effectDuration = src.effectDuration();
dst.impactPosition.rx() = src.impactPosition().lon();
dst.impactPosition.ry() = src.impactPosition().lat();
dst.impactRadius = src.impactRadius();
dst.partyId = src.partyId().is_set() ? src.partyId().get() : 0;
dst.chargeTypeId = src.chargeTypeId();
dst.participantId = src.participantId().is_set() ? src.participantId().get() : 0;
dst.weatherSourceId = src.weatherSource();
dst.externalId = src.externalId().is_set() ? src.externalId().get() : 0;
dst.upperOffset = src.upperOffset();
dst.lowerOffset = src.lowerOffset();
dst.name = QString::fromStdString(src.name);
dst.effectStart = src.effectStart.is_set() && src.effectStart.get() > 0 ? QDateTime::fromMSecsSinceEpoch(src.effectStart.get()) : QDateTime();
dst.effectDuration = src.effectDuration;
dst.impactPosition.rx() = src.impactPosition.lon;
dst.impactPosition.ry() = src.impactPosition.lat;
dst.impactRadius = src.impactRadius;
dst.partyId = src.partyId.is_set() ? src.partyId.get() : 0;
dst.chargeTypeId = src.chargeTypeId;
dst.participantId = src.participantId.is_set() ? src.participantId.get() : 0;
dst.weatherSourceId = src.weatherSource;
dst.externalId = src.externalId.is_set() ? src.externalId.get() : 0;
dst.upperOffset = src.upperOffset;
dst.lowerOffset = src.lowerOffset;
// weather parameter are delivered, when adding in OC-laptop
if (src.weatherPosition().is_set())
if (src.weatherPosition.is_set())
{
dst.weatherPosition.rx() = src.weatherPosition().get().lon();
dst.weatherPosition.ry() = src.weatherPosition().get().lat();
dst.weatherPosition.rx() = src.weatherPosition.get().lon;
dst.weatherPosition.ry() = src.weatherPosition.get().lat;
}
else
dst.weatherPosition = dst.impactPosition; // initial, is not used during update therefore it's ok here
if(src.windSpeed().is_set())
dst.windSpeed = src.windSpeed().get();
if(src.propagationDirection().is_set())
dst.propagationDirection = src.propagationDirection().get();
if(src.weatherTimestamp().is_set())
dst.weatherTimestamp = QDateTime::fromMSecsSinceEpoch(src.weatherTimestamp().get());
else if(src.effectStart().is_set())
dst.weatherTimestamp = QDateTime::fromMSecsSinceEpoch(src.effectStart().get());
if(src.windSpeed.is_set())
dst.windSpeed = src.windSpeed.get();
if(src.propagationDirection.is_set())
dst.propagationDirection = src.propagationDirection.get();
if(src.weatherTimestamp.is_set())
dst.weatherTimestamp = QDateTime::fromMSecsSinceEpoch(src.weatherTimestamp.get());
else if(src.effectStart.is_set())
dst.weatherTimestamp = QDateTime::fromMSecsSinceEpoch(src.effectStart.get());
}
void HandlerBCContamination::onBCContaminationModifyRequest(const rti::core::SampleIdentity &cookie,
@@ -170,7 +170,7 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationCreateRequest(c
if (ifs->data().isCentral)
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtBCContamination] + s_maxActiveAreasCentral[AesType::AtNContamination]) && request.effectStart().is_set())
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtNContamination)]) && request.effectStart.is_set())
{
ifs->removeObject(); //Not finally deleted from db after this,Fallback if DB deletion is not working correct
ifs->removeObjectFromDb();
@@ -180,7 +180,7 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationCreateRequest(c
}
else
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtBCContamination] + s_maxActiveAreas[AesType::AtNContamination]) && request.effectStart().is_set())
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreas[static_cast<int>(AesType::AtNContamination)]) && request.effectStart.is_set())
{
ifs->removeObject(); //Not finally deleted from db after this,Fallback if DB deletion is not working correct
@@ -208,23 +208,23 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationCreateRequest(c
}
m_objectMap.insert(ifs->id(), ifs);
if (request.withDangerArea().is_set() && request.withDangerArea().get())
if (request.withDangerArea.is_set() && request.withDangerArea.get())
{
DangerAreaModifyRequest req;
req.id(0);
req.id = 0;
#ifdef GUEZ_MODE
const QString name = QString::fromStdString(tr_lts("dds","%1 - Gefahrenbereich")).arg(ifs->data().name);
#else
const QString name = QString::fromStdString(tr_lts("dds","%1 - Danger Area")).arg(ifs->data().name);
#endif
req.name(name.toStdString());
req.partyId(ifs->data().partyId);
req.effectDuration(ifs->data().effectDuration);
req.chargeTypeId(ifs->data().chargeTypeId);
req.segments(Polygons::dangerAreaDefaultSegments(ifs->data().impactPosition, ifs->data().impactRadius + 50));
req.associatedAesId(ifs->data().id);
req.name = name.toStdString();
req.partyId = ifs->data().partyId;
req.effectDuration = ifs->data().effectDuration;
req.chargeTypeId = ifs->data().chargeTypeId;
req.segments = Polygons::dangerAreaDefaultSegments(ifs->data().impactPosition, ifs->data().impactRadius + 50);
req.associatedAesId = ifs->data().id;
if(ifs->data().effectStart.isValid())
req.effectStart(ifs->data().effectStart.toMSecsSinceEpoch());
req.effectStart = ifs->data().effectStart.toMSecsSinceEpoch();
Core::FunctionReplyObject bretDangerArea= m_mainHandler->dangerAreaHandler()->dangerAreaCreateRequest(req);
if (bretDangerArea.error())
ERROR_LOG(m_logger)<<"Couldn't create associated dangerArea to bcContamination: "<<ifs->data().name;
@@ -238,27 +238,27 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
{
Core::FunctionReplyObject ret;
ObjectBCContamination *ifs = nullptr;
if (request.externalId().is_set() && request.externalId().get() > 0)
ifs = getObjectFromMapByExternalId(m_objectMap, request.externalId().get(), ret);
if (request.externalId.is_set() && request.externalId.get() > 0)
ifs = getObjectFromMapByExternalId(m_objectMap, request.externalId.get(), ret);
if (!ifs)
{
if (request.id() == 0 || ((request.id() < 0) && !getObjectFromMap(m_objectMap, std::abs(request.id()), ret)))
if (request.id == 0 || ((request.id < 0) && !getObjectFromMap(m_objectMap, std::abs(request.id), ret)))
return bCContaminationCreateRequest(request);
ifs = getObjectFromMap(m_objectMap, std::abs(request.id()), ret);
ifs = getObjectFromMap(m_objectMap, std::abs(request.id), ret);
if (!ifs)
return ret;
}
if (request.effectStart().is_set() && (request.effectStart().get() + request.effectDuration() < m_mainHandler->dds()->currentPartitionTime().toMSecsSinceEpoch()))
if (request.effectStart.is_set() && (request.effectStart.get() + request.effectDuration < m_mainHandler->dds()->currentPartitionTime().toMSecsSinceEpoch()))
return removeObject(ifs);
Database::AesBCContamination aea(ifs->data());
fillData(request, aea);
DEBUG_LOG(m_logger) << "request.upperOffset=" << request.upperOffset()
<< " request.lowerOffset=" << request.lowerOffset()
DEBUG_LOG(m_logger) << "request.upperOffset=" << request.upperOffset
<< " request.lowerOffset=" << request.lowerOffset
<< " aea.upperOffset=" << aea.upperOffset
<< " aea.lowerOffset=" << aea.lowerOffset;
@@ -277,21 +277,21 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
/*!
* If the effect start added after creation, the max amount need to be checked
*/
if(!ifs->isActivationTimeSet() && request.effectStart().is_set())
if(!ifs->isActivationTimeSet() && request.effectStart.is_set())
{
if (isCentral)
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtBCContamination] + s_maxActiveAreasCentral[AesType::AtNContamination])
/*&& request.effectStart().is_set()*/)
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtNContamination)])
/*&& request.effectStart.is_set()*/)
{
return Core::FunctionReplyObject(1, tr_lts("dds", "Too many active central B/C or N contamination areas."));
}
}
else
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtBCContamination] + s_maxActiveAreas[AesType::AtNContamination])
/*&& request.effectStart().is_set()*/)
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreas[static_cast<int>(AesType::AtNContamination)])
/*&& request.effectStart.is_set()*/)
{
return Core::FunctionReplyObject(1, tr_lts("dds", "Too many active B/C or N contamination areas."));
}
@@ -299,7 +299,7 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
}
// For counting, only Elements being at least prepared are important:
if (request.effectStart().is_set() && ifs->isObjectModifiable())
if (request.effectStart.is_set() && ifs->isObjectModifiable())
{
DEBUG_LOG(m_logger) << "isCentral: " << isCentral;
@@ -311,8 +311,8 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
// Change from central to training area
if (wasCentral)
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtBCContamination] + s_maxActiveAreas[AesType::AtNContamination]))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active B/C or N contamination areas."));
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreas[static_cast<int>(AesType::AtNContamination)]))
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Too many active B/C or N contamination areas."));
m_areaCount++;
m_areaCountCentral--;
@@ -321,8 +321,8 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
}
else // Change from training area to central
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtBCContamination] + s_maxActiveAreasCentral[AesType::AtNContamination]))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active central B/C or N contamination areas."));
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtBCContamination)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtNContamination)]))
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Too many active central B/C or N contamination areas."));
m_areaCount--;
m_areaCountCentral++;
DEBUG_LOG(m_logger) << "s_areaCount[AesType::AtBCContamination] = " << m_areaCount;
@@ -331,7 +331,7 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
}
}
if (request.id() < 0 && checkStateForSfm(ifs))
if (request.id < 0 && checkStateForSfm(ifs))
{
DEBUG_LOG(m_logger) << "Overwrite bc contamination Effect State for OC";
aea.effectStateId = AesEffectState::EsPrepared;
@@ -346,44 +346,44 @@ Core::FunctionReplyObject HandlerBCContamination::bCContaminationModifyRequest(c
DEBUG_LOG(m_logger)<<"[bCContaminationModifyRequest] modify danger area associated to bcId: " <<ifs->id()
<<" dangerAreaId: "<<dangerArea.id;
DangerAreaModifyRequest dangerRequest;
dangerRequest.id(dangerArea.id);
dangerRequest.name(QStringLiteral("%1").arg(dangerArea.name).toStdString());
dangerRequest.partyId(dangerArea.partyId);
dangerRequest.effectDuration(dangerArea.effectDuration);
dangerRequest.chargeTypeId(dangerArea.chargeTypeId);
dangerRequest.segments(Polygons::dangerAreaDefaultSegments(ifs->data().impactPosition, ifs->data().impactRadius + 50));
dangerRequest.associatedAesId(ifs->data().id);
dangerRequest.id = dangerArea.id;
dangerRequest.name = QStringLiteral("%1").arg(dangerArea.name).toStdString();
dangerRequest.partyId = dangerArea.partyId;
dangerRequest.effectDuration = dangerArea.effectDuration;
dangerRequest.chargeTypeId = dangerArea.chargeTypeId;
dangerRequest.segments = Polygons::dangerAreaDefaultSegments(ifs->data().impactPosition, ifs->data().impactRadius + 50);
dangerRequest.associatedAesId = ifs->data().id;
if(ifs->data().effectStart.isValid())
dangerRequest.effectStart(ifs->data().effectStart.toMSecsSinceEpoch());
dangerRequest.effectStart = ifs->data().effectStart.toMSecsSinceEpoch();
Core::FunctionReplyObject bretDangerArea= m_mainHandler->dangerAreaHandler()->dangerAreaModifyRequest(dangerRequest);
if (bretDangerArea.error())
ERROR_LOG(m_logger)<<"[bCContaminationModifyRequest] couldn't update danger area: bccontamination.id: "<<ifs->id()
<<" dangerArea.name: "<<dangerRequest.name();
<<" dangerArea.name: "<<dangerRequest.name;
}
else if (request.withDangerArea().is_set() && request.withDangerArea().get())
else if (request.withDangerArea.is_set() && request.withDangerArea.get())
{
DEBUG_LOG(m_logger)<<"[bCContaminationModifyRequest] add new danger area to bcId: " <<ifs->id();
DangerAreaModifyRequest newDangerRequest;
newDangerRequest.id(0);
newDangerRequest.id = 0;
#ifdef GUEZ_MODE
const QString name = QString::fromStdString(tr_lts("dds","%1 - Gefahrenbereich")).arg(ifs->data().name);
#else
const QString name = QString::fromStdString(tr_lts("dds","%1 - Danger Area")).arg(ifs->data().name);
#endif
newDangerRequest.name(name.toStdString());
newDangerRequest.partyId(ifs->data().partyId);
newDangerRequest.effectDuration(ifs->data().effectDuration);
newDangerRequest.chargeTypeId(ifs->data().chargeTypeId);
newDangerRequest.segments(Polygons::dangerAreaDefaultSegments(ifs->data().impactPosition, ifs->data().impactRadius + 50));
newDangerRequest.associatedAesId(ifs->data().id);
newDangerRequest.name = name.toStdString();
newDangerRequest.partyId = ifs->data().partyId;
newDangerRequest.effectDuration = ifs->data().effectDuration;
newDangerRequest.chargeTypeId = ifs->data().chargeTypeId;
newDangerRequest.segments = Polygons::dangerAreaDefaultSegments(ifs->data().impactPosition, ifs->data().impactRadius + 50);
newDangerRequest.associatedAesId = ifs->data().id;
if(ifs->data().effectStart.isValid())
newDangerRequest.effectStart(ifs->data().effectStart.toMSecsSinceEpoch());
newDangerRequest.effectStart = ifs->data().effectStart.toMSecsSinceEpoch();
Core::FunctionReplyObject bretDangerArea = m_mainHandler->dangerAreaHandler()->dangerAreaCreateRequest(newDangerRequest);
if (bretDangerArea.error())
ERROR_LOG(m_logger)<<"[bCContaminationModifyRequest] couldn't add danger area: bccontamination.id: "<<ifs->id()
<<" dangerArea.name: "<<newDangerRequest.name();
<<" dangerArea.name: "<<newDangerRequest.name;
}
}
@@ -399,12 +399,12 @@ void HandlerBCContamination::onBCContaminationRemoveRequest(const rti::core::Sam
if (ret)
{
Database::AesDangerArea dangerArea;
if (m_mainHandler->dangerAreaHandler()->getDangerAreaByAssociatedAesId(request.id(), &dangerArea))
if (m_mainHandler->dangerAreaHandler()->getDangerAreaByAssociatedAesId(request.id, &dangerArea))
{
bool bret = m_mainHandler->dangerAreaHandler()->dangerAreaRemoveRequest(Core::RemoveElementRequest(dangerArea.id));
if (!bret)
ERROR_LOG(m_logger)<<"[onBCContaminationRemoveRequest] couldn't remove danger area: "<<dangerArea.id
<<" associated with to bc contamination id: "<<request.id();
<<" associated with to bc contamination id: "<<request.id;
}
}
}