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

@@ -15,7 +15,7 @@ namespace AreaEffectSimulation
{
HandlerExplosionSingle::HandlerExplosionSingle(MainHandler *mainHandler)
: HandlerBaseTmpl<ObjectExplosionSingle>(mainHandler, QStringLiteral("ExplosionSingle"), s_areaCount[AesType::AtExplosionSingle], s_areaCountCentral[AesType::AtExplosionSingle])
: HandlerBaseTmpl<ObjectExplosionSingle>(mainHandler, QStringLiteral("ExplosionSingle"), s_areaCount[static_cast<int>(AesType::AtExplosionSingle)], s_areaCountCentral[static_cast<int>(AesType::AtExplosionSingle)])
, Interface::Fts::ExplosionSingleModifyRequestHandler(mainHandler->dds()->fts())
, Interface::Fts::ExplosionSingleRemoveRequestHandler(mainHandler->dds()->fts())
{}
@@ -43,7 +43,7 @@ bool HandlerExplosionSingle::init()
}
if(!ifs->data().isCentral)
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle]))
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreas[static_cast<int>(AesType::AtExplosionSingle)]))
{
ERROR_LOG(m_logger) << "More active explosion single in database than allowed - ignoring the rest!";
ifs->removeObject();
@@ -54,7 +54,7 @@ bool HandlerExplosionSingle::init()
else
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtExplosionArea] + s_maxActiveAreasCentral[AesType::AtExplosionSingle]))
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionSingle)]))
{
ERROR_LOG(m_logger) << "More active explosion single in database than allowed - ignoring the rest!";
ifs->removeObject();
@@ -80,38 +80,38 @@ bool HandlerExplosionSingle::init()
int HandlerExplosionSingle::totalAreas() const
{
return s_areaCount[AesType::AtExplosionArea] + s_areaCount[AesType::AtExplosionSingle];
return s_areaCount[static_cast<int>(AesType::AtExplosionArea)] + s_areaCount[static_cast<int>(AesType::AtExplosionSingle)];
}
int HandlerExplosionSingle::totalAreasCentral() const
{
return s_areaCountCentral[AesType::AtExplosionArea] + s_areaCountCentral[AesType::AtExplosionSingle];
return s_areaCountCentral[static_cast<int>(AesType::AtExplosionArea)] + s_areaCountCentral[static_cast<int>(AesType::AtExplosionSingle)];
}
static void fillGeometryData(const ExplosionSingleModifyRequest &src, Database::AesExplosionSingle &dst)
{
dst.impactPosition.rx() = src.impactPosition().lon();
dst.impactPosition.ry() = src.impactPosition().lat();
dst.impactPosition.rx() = src.impactPosition.lon;
dst.impactPosition.ry() = src.impactPosition.lat;
}
static void fillData(const ExplosionSingleModifyRequest &src, Database::AesExplosionSingle &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;
fillGeometryData(src, dst);
dst.name = QString::fromStdString(src.name());
dst.effectStart = src.effectStart().is_set() && src.effectStart().get() > 0 ? QDateTime::fromMSecsSinceEpoch(src.effectStart().get()) : QDateTime();
dst.name = QString::fromStdString(src.name);
dst.effectStart = src.effectStart.is_set() && src.effectStart.get() > 0 ? QDateTime::fromMSecsSinceEpoch(src.effectStart.get()) : QDateTime();
dst.effectDuration = 1000; // 1sec
dst.effectSourceId = src.effectSourceId();
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.altitude = src.altitude();
dst.firePurpose = QString::fromStdString(src.purpose());
dst.fireRequestTime = QDateTime::fromMSecsSinceEpoch(src.fireRequestTime());
dst.effectMarkingInTa = src.effectMarkingInTa();
dst.externalId = src.externalId().is_set() ? src.externalId().get() : 0;
dst.effectSourceId = src.effectSourceId;
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.altitude = src.altitude;
dst.firePurpose = QString::fromStdString(src.purpose);
dst.fireRequestTime = QDateTime::fromMSecsSinceEpoch(src.fireRequestTime);
dst.effectMarkingInTa = src.effectMarkingInTa;
dst.externalId = src.externalId.is_set() ? src.externalId.get() : 0;
}
void HandlerExplosionSingle::onExplosionSingleModifyRequest(const rti::core::SampleIdentity &cookie,
@@ -144,7 +144,7 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleCreateRequest(c
if (ifs->data().isCentral)
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtExplosionArea] + s_maxActiveAreasCentral[AesType::AtExplosionSingle]) && request.effectStart().is_set())
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionSingle)]) && request.effectStart.is_set())
{
ifs->removeObject(); //Not finally deleted from db after this,Fallback if DB deletion is not working correct
ifs->removeObjectFromDb();
@@ -154,7 +154,7 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleCreateRequest(c
}
else
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle]) && request.effectStart().is_set())
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreas[static_cast<int>(AesType::AtExplosionSingle)]) && request.effectStart.is_set())
{
ifs->removeObject(); //Not finally deleted from db after this,Fallback if DB deletion is not working correct
ifs->removeObjectFromDb();
@@ -182,16 +182,16 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleCreateRequest(c
Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyRequest(const ExplosionSingleModifyRequest &request)
{
Core::FunctionReplyObject ret;
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 explosionSingleCreateRequest(request);
ObjectExplosionSingle *ifs = getObjectFromMap(m_objectMap, std::abs(request.id()), ret);
ObjectExplosionSingle *ifs = getObjectFromMap(m_objectMap, std::abs(request.id), ret);
if (!ifs)
return ret;
// Anzahl aktiver Areas ist erreicht, der Wirkbeginn ist (soll) gesetzt sein, aber die Area war
// vorher noch ohne Wirkbeginn
// if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle]) && request.effectStart().is_set())
// if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle]) && request.effectStart.is_set())
// return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active single explosions."));
Database::AesExplosionSingle aes(ifs->data());
@@ -206,25 +206,25 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyRequest(c
bool wasCentral = ifs->data().isCentral;
if(!ifs->isActivationTimeSet() && request.effectStart().is_set())
if(!ifs->isActivationTimeSet() && request.effectStart.is_set())
{
if (isCentral)
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtExplosionArea] + s_maxActiveAreasCentral[AesType::AtExplosionSingle]))
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionSingle)]))
{
return Core::FunctionReplyObject(1, tr_lts("dds", "Too many active central explosion singles and explosion areas."));
}
}
else
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle]) )
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreas[static_cast<int>(AesType::AtExplosionSingle)]) )
{
return Core::FunctionReplyObject(1, tr_lts("dds", "Too many active explosion singles and explosion areas."));
}
}
}
// 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;
@@ -236,8 +236,8 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyRequest(c
// Change from central to training area
if (wasCentral)
{
if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle]))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active explosion singles and explosion areas."));
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreas[static_cast<int>(AesType::AtExplosionSingle)]))
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Too many active explosion singles and explosion areas."));
m_areaCount++;
m_areaCountCentral--;
@@ -246,8 +246,8 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyRequest(c
}
else // Change from training area to central
{
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtExplosionArea] + s_maxActiveAreasCentral[AesType::AtExplosionSingle]))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active central explosion singles and explosion areas"));
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreasCentral[static_cast<int>(AesType::AtExplosionSingle)]))
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Too many active central explosion singles and explosion areas"));
m_areaCount--;
m_areaCountCentral++;
DEBUG_LOG(m_logger) << "s_areaCount[AesType::AtExplosionSingle] = " << m_areaCount;
@@ -258,7 +258,7 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyRequest(c
if (request.id() < 0 && checkStateForSfm(ifs))
if (request.id < 0 && checkStateForSfm(ifs))
{
DEBUG_LOG(m_logger) << "Overwrite single explostion Effect State for OC";
aes.effectStateId = AesEffectState::EsPrepared;
@@ -270,17 +270,17 @@ Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyRequest(c
Core::FunctionReplyObject HandlerExplosionSingle::explosionSingleModifyGeometryRequest(const ExplosionSingleModifyRequest &request)
{
Core::FunctionReplyObject ret;
ObjectExplosionSingle *ifs = getObjectFromMap(m_objectMap, request.id(), ret);
ObjectExplosionSingle *ifs = getObjectFromMap(m_objectMap, request.id, ret);
if (!ifs)
return ret;
// Anzahl aktiver Areas ist erreicht, der Wirkbeginn ist (soll) gesetzt sein, aber die Area war
// vorher noch ohne Wirkbeginn
if (totalAreas() >= (s_maxActiveAreas[AesType::AtExplosionArea] + s_maxActiveAreas[AesType::AtExplosionSingle])
&& request.effectStart().is_set()
if (totalAreas() >= (s_maxActiveAreas[static_cast<int>(AesType::AtExplosionArea)] + s_maxActiveAreas[static_cast<int>(AesType::AtExplosionSingle)])
&& request.effectStart.is_set()
&& !ifs->isActivationTimeSet()
&& !ifs->isObjectModifiable())
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active single explosions."));
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Too many active single explosions."));
Database::AesExplosionSingle aes(ifs->data());
fillGeometryData(request, aes);