Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Services/InfrastructureManagement/convert_db_to_dds.h
T
berrux-dev 82356f23e5 Migrates InfrastructureManagement to generated rtiddsgen API
Converts accessor calls to plain member access across ism service.
2026-09-21 02:45:09 +02:00

89 lines
3.0 KiB
C++
Executable File

/**
* Convert db structures to dds structures
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-07-20
*/
#pragma once
#include <InfrastructureManagement/ism_db.h>
#include <InfrastructureManagement/ism.hpp>
namespace InfrastructureManagement
{
namespace Database
{
inline MainStructureElement convert(const Database::IsmMainStructureElement &dbData)
{
MainStructureElement ddsData;
ddsData.id = dbData.id;
ddsData.name = dbData.name.toStdString();
ddsData.description = dbData.description.toStdString();
ddsData.geoPosition = Core::GeoPosition(dbData.geoPosition.x(), dbData.geoPosition.y(), dbData.geoPosition.z());
ddsData.angle = dbData.angle;
ddsData.externalWlsId = dbData.externalWlsId;
ddsData.groupId = dbData.groupId;
ddsData.modelId = dbData.modelId;
ddsData.properties = dbData.properties.toStdString();
// init data not in db
ddsData.isDeleted = false;
ddsData.isUsed = false;
// TODO: fill additional data?
//ddsData.structureElementId;
//ddsData.elements;
return ddsData;
}
inline StructureElement convert(const Database::IsmStructureElement &dbData)
{
StructureElement ddsData;
ddsData.id = dbData.id;
ddsData.name = dbData.name.toStdString();
ddsData.displayName = dbData.displayName.toStdString();
ddsData.mainStructureElementId = dbData.mainStructureElementId;
ddsData.structureElementTypeId = dbData.structureElementTypeId;
ddsData.path = dbData.path();
ddsData.mountingPointId = dbData.mountingPointId;
ddsData.barcode = dbData.barcode.toStdString();
ddsData.relPosition = Core::RelativePosition(dbData.relPosition.x(),
dbData.relPosition.y(),
dbData.relPosition.z());
ddsData.mountingPointTypeId = dbData.mountingPointTypeId;
ddsData.orientation = Core::Orientation(dbData.orientation.x(),
dbData.orientation.y(),
dbData.orientation.z());
ddsData.properties = dbData.properties.toStdString();
// init data not in db
ddsData.isDeleted = false;
ddsData.isUsed = false;
return ddsData;
}
//--------------------------------------------------------------------------------------------------
inline MainSchedule convert(const Database::IsmMountingPointSchedule &dbData)
{
MainSchedule ddsData;
ddsData.id = dbData.id;
ddsData.name = dbData.name.toStdString();
ddsData.statusId = dbData.statusId;
ddsData.timeCreated = dbData.timeCreated.toMSecsSinceEpoch();
if (!dbData.timeStart.isNull() && dbData.timeStart.isValid())
ddsData.timeStart = dbData.timeStart.toMSecsSinceEpoch();
if (!dbData.timeEnd.isNull() && dbData.timeEnd.isValid())
ddsData.timeEnd = dbData.timeEnd.toMSecsSinceEpoch();
if (!dbData.exerciseId.isNull() && dbData.exerciseId.canConvert<unsigned int>())
ddsData.exerciseId = dbData.exerciseId.toUInt();
return ddsData;
}
} // namespace Database
} // namespace InfrastructureManagement