Files
qt5-legatus-legacy/Lts/Services/ParticipantManagement/convert_db_to_dds.h
T
2026-08-13 18:33:10 +02:00

58 lines
1.5 KiB
C++
Executable File

/**
* Convert db structures to dds structures
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-07-20
*/
#pragma once
#include <ParticipantManagement/ppm_db.h>
#include <ParticipantManagement/ppm.hpp>
#include <LtsUtilsCore/dds_vector.h>
#include <limits>
namespace ParticipantManagement
{
namespace Database
{
inline Type convert(const PpmType &data)
{
Type ddsData;
ddsData.id(data.id);
ddsData.typeClass(data.typeClassId);
ddsData.equipmentTypeId(data.equipmentTypeId.isNull() ? 0 : data.equipmentTypeId.toInt());
ddsData.name(data.name.toStdString());
ddsData.symbol(data.symbol.toStdString());
ddsData.radioCount(data.radioCount);
ddsData.hierarchyLevel(data.hierarchyLevel);
ddsData.isDeleted(data.isDeleted);
#ifdef Q_OS_WIN
ddsData.disEntities(data.disEntities());
#else
ddsData.disEntities(LtsUtils::convert<std::vector<rti::core::int64>>(data.disEntities()));
#endif
ddsData.properties(data.properties.toStdString());
return ddsData;
}
inline EquipmentType convert(const PpmEquipmentType &db)
{
EquipmentType et;
et.id(db.id);
et.name(db.name.toStdString());
{ // equipment value are save in the db as int, but in dds unsigned short is used.
et.minEquipNo(db.minEquipNo < USHRT_MAX ? db.minEquipNo : USHRT_MAX);
et.maxEquipNo(db.maxEquipNo < USHRT_MAX ? db.maxEquipNo : USHRT_MAX);
}
et.traVulnerabilityModelId(db.traVulnerabilityModelId);
et.traPlayerTypeId(db.traPlayerTypeId);
et.wmsTypeClass(db.wmsTypeClassId);
et.deletedInWms(db.deletedInWms);
return et;
}
}
}