Migrates AreaEffectSimulation to generated rtiddsgen API
Converts accessor calls to plain member access across aes service and plugin.
This commit is contained in:
102 files changed
+3307
-3313
No files matched your search
+54
-54
@@ -15,7 +15,7 @@ namespace AreaEffectSimulation
|
||||
{
|
||||
|
||||
HandlerExplosionArea::HandlerExplosionArea(MainHandler *mainHandler)
|
||||
: HandlerBaseTmpl<ObjectExplosionArea>(mainHandler, QStringLiteral("ExplosionArea"), s_areaCount[AesType::AtExplosionArea], s_areaCountCentral[AesType::AtExplosionArea])
|
||||
: HandlerBaseTmpl<ObjectExplosionArea>(mainHandler, QStringLiteral("ExplosionArea"), s_areaCount[static_cast<int>(AesType::AtExplosionArea)], s_areaCountCentral[static_cast<int>(AesType::AtExplosionArea)])
|
||||
, Interface::Fts::ExplosionAreaModifyRequestHandler(mainHandler->dds()->fts())
|
||||
, Interface::Fts::ExplosionAreaRemoveRequestHandler(mainHandler->dds()->fts())
|
||||
, Interface::Fts::ExplosionAreaPauseResumeRequestHandler(m_mainHandler->dds()->fts())
|
||||
@@ -40,7 +40,7 @@ bool HandlerExplosionArea::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 areas in database than allowed - ignoring the rest!";
|
||||
ifs->removeObject();
|
||||
@@ -50,7 +50,7 @@ bool HandlerExplosionArea::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 areas in database than allowed - ignoring the rest!";
|
||||
ifs->removeObject();
|
||||
@@ -83,39 +83,39 @@ bool HandlerExplosionArea::init()
|
||||
|
||||
int HandlerExplosionArea::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 HandlerExplosionArea::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 fillData(const ExplosionAreaModifyRequest &src, Database::AesExplosionArea &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.impactPosition.rx() = src.area().cornerBottomLeft().lon();
|
||||
dst.impactPosition.ry() = src.area().cornerBottomLeft().lat();
|
||||
dst.rotationAngle = src.area().rotation();
|
||||
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.effectSourceId = src.effectSourceId();
|
||||
dst.impactLength = src.area().height();
|
||||
dst.impactWidth = src.area().width();
|
||||
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.cannonCount = src.cannonCount();
|
||||
dst.cannonRounds = src.cannonRounds();
|
||||
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.impactPosition.rx() = src.area.cornerBottomLeft.lon;
|
||||
dst.impactPosition.ry() = src.area.cornerBottomLeft.lat;
|
||||
dst.rotationAngle = src.area.rotation;
|
||||
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.effectSourceId = src.effectSourceId;
|
||||
dst.impactLength = src.area.height;
|
||||
dst.impactWidth = src.area.width;
|
||||
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.cannonCount = src.cannonCount;
|
||||
dst.cannonRounds = src.cannonRounds;
|
||||
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 HandlerExplosionArea::onExplosionAreaModifyRequest(const rti::core::SampleIdentity &cookie,
|
||||
@@ -130,22 +130,22 @@ void HandlerExplosionArea::onExplosionAreaModifyRequest(const rti::core::SampleI
|
||||
|
||||
Core::FunctionReplyObject HandlerExplosionArea::explosionAreaCreateRequest(const ExplosionAreaModifyRequest &request)
|
||||
{
|
||||
if (!request.partyId().is_set())
|
||||
if (!request.partyId.is_set())
|
||||
return Core::FunctionReplyObject(tr_lts("dds", "Explosion areas need a party id."));
|
||||
|
||||
int chargeNeeded = request.cannonCount() * request.cannonRounds();
|
||||
int chargeNeeded = request.cannonCount * request.cannonRounds;
|
||||
if (chargeNeeded <= 0)
|
||||
return Core::FunctionReplyObject(tr_lts("dds", "Invalid impact count (cannon round or cannon count <= 0)."));
|
||||
|
||||
if (request.id() == 0)
|
||||
if (request.id == 0)
|
||||
{
|
||||
int chargeLeft = m_mainHandler->chargeAdministrationHandler()->availableCharge(request.chargeTypeId(), request.partyId().get());
|
||||
int chargeLeft = m_mainHandler->chargeAdministrationHandler()->availableCharge(request.chargeTypeId, request.partyId.get());
|
||||
if (chargeNeeded > chargeLeft)
|
||||
return Core::FunctionReplyObject(tr_lts("dds", "Invalid impact count (%1 charges needed but only %2 charges available for Charge Id %3 and Party Id %4)."))
|
||||
.arg(chargeNeeded)
|
||||
.arg(chargeLeft)
|
||||
.arg(request.chargeTypeId())
|
||||
.arg(request.partyId().get());
|
||||
.arg(request.chargeTypeId)
|
||||
.arg(request.partyId.get());
|
||||
}
|
||||
|
||||
Database::AesExplosionArea newData;
|
||||
@@ -164,7 +164,7 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaCreateRequest(const
|
||||
|
||||
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();
|
||||
@@ -174,7 +174,7 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaCreateRequest(const
|
||||
}
|
||||
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();
|
||||
@@ -208,10 +208,10 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaCreateRequest(const
|
||||
Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyRequest(const ExplosionAreaModifyRequest &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 explosionAreaCreateRequest(request);
|
||||
|
||||
ObjectExplosionArea *ifs = getObjectFromMap(m_objectMap, std::abs(request.id()), ret);
|
||||
ObjectExplosionArea *ifs = getObjectFromMap(m_objectMap, std::abs(request.id), ret);
|
||||
if (!ifs)
|
||||
return ret;
|
||||
|
||||
@@ -230,18 +230,18 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyRequest(const
|
||||
/*!
|
||||
* Check if the max amount is reached if the effect start added after creation.
|
||||
!*/
|
||||
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 areas and explosion singles"));
|
||||
}
|
||||
}
|
||||
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 areas and explosion singles"));
|
||||
}
|
||||
@@ -249,7 +249,7 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyRequest(const
|
||||
}
|
||||
|
||||
// For counting, only Elements being at least prepared are important:
|
||||
if (request.effectStart().is_set() && ifs->isObjectModifiable())
|
||||
if (request.effectStart.is_set() && ifs->isObjectModifiable())
|
||||
{
|
||||
|
||||
// Calculate new polygon here. Not nice, though
|
||||
@@ -264,8 +264,8 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyRequest(const
|
||||
// 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 areas and explosion singles"));
|
||||
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 areas and explosion singles"));
|
||||
|
||||
m_areaCount++;
|
||||
m_areaCountCentral--;
|
||||
@@ -274,8 +274,8 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyRequest(const
|
||||
}
|
||||
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 areas and explosion singles"));
|
||||
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 areas and explosion singles"));
|
||||
m_areaCount--;
|
||||
m_areaCountCentral++;
|
||||
DEBUG_LOG(m_logger) << "s_areaCount[AesType::AtExplosionArea] = " << m_areaCount;
|
||||
@@ -284,7 +284,7 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyRequest(const
|
||||
}
|
||||
}
|
||||
|
||||
if (request.id() < 0 && checkStateForSfm(ifs))
|
||||
if (request.id < 0 && checkStateForSfm(ifs))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Overwrite Effect State for OC";
|
||||
aea.effectStateId = AesEffectState::EsPrepared;
|
||||
@@ -297,27 +297,27 @@ Core::FunctionReplyObject HandlerExplosionArea::explosionAreaModifyGeometryReque
|
||||
{
|
||||
// WARNING: request.area.cornerBottomLeft() contains center point!
|
||||
Core::FunctionReplyObject ret;
|
||||
ObjectExplosionArea *ifs = getObjectFromMap(m_objectMap, request.id(), ret);
|
||||
ObjectExplosionArea *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() // if time was not set before change and now check count
|
||||
&& !ifs->isObjectModifiable())
|
||||
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Too many active explosion areas and explosion singles"));
|
||||
return Core::FunctionReplyObject(request.id, tr_lts("dds", "Too many active explosion areas and explosion singles"));
|
||||
|
||||
// Todo: IsObjectModifiable() ?!?
|
||||
AreaEffectSimulation::Database::AesExplosionArea aea(ifs->data());
|
||||
|
||||
aea.impactPosition = Polygons::centerPoint2BottomLeft(QPointF(request.area().cornerBottomLeft().lon(),
|
||||
request.area().cornerBottomLeft().lat()),
|
||||
aea.impactPosition = Polygons::centerPoint2BottomLeft(QPointF(request.area.cornerBottomLeft.lon,
|
||||
request.area.cornerBottomLeft.lat),
|
||||
ifs->data().impactWidth,
|
||||
ifs->data().impactLength,
|
||||
request.area().rotation());
|
||||
aea.rotationAngle = request.area().rotation();
|
||||
request.area.rotation);
|
||||
aea.rotationAngle = request.area.rotation;
|
||||
return ifs->updateObject(aea);
|
||||
}
|
||||
|
||||
@@ -343,7 +343,7 @@ void HandlerExplosionArea::onExplosionAreaPauseResumeRequest(const rti::core::Sa
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onExplosionAreaPauseResumeRequest" << request;
|
||||
Core::FunctionReplyObject ret;
|
||||
ObjectExplosionArea *ifs = getObjectFromMap(m_objectMap, request.id(), ret);
|
||||
ObjectExplosionArea *ifs = getObjectFromMap(m_objectMap, request.id, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
m_mainHandler->dds()->fts()->explosionAreaPauseResumeReply(cookie, ret);
|
||||
|
||||
Reference in new issue
Block a user