Files
qt-migration-legatus/qt5-before/dlbo/Lts/Services/CodificationManagement/object_codification_data.cpp
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

169 lines
6.8 KiB
C++

/**
* Codification data object
* $Id$
* $HeadURL$
* $Author$
* Created by hjl, SLSE, 2016-11-18
*/
#include "object_codification_data.h"
#include "dds_handler.h"
using namespace CodificationManagement;
ObjectCodificationData::ObjectCodificationData(const std::shared_ptr<DdsHandler> &ddsHandler,
const std::shared_ptr<DbHandler> &dbHandler)
: m_ddsHandler(ddsHandler)
, m_dbHandler(dbHandler)
, m_logger(getLogger("ObjectCodificationData"))
{
} // end of ctor()
//-----------------------------------------------------------------------------
ObjectCodificationData::~ObjectCodificationData()
{
m_ddsHandler->dts()->removeCodificationDataByKey(m_ddsData.id());
} // end of dtor()
//-----------------------------------------------------------------------------
Core::FunctionReplyObject ObjectCodificationData::createObject(const CodificationData &ddsData)
{
DEBUG_LOG(m_logger) << "ObjectCodificationData::createObject()";
m_ddsData = ddsData;
if (m_ddsData.id() <= 0)
{
m_ddsData.isUsed(false);
Database::CodCodificationTable dbData;
dbData = toDbData(ddsData);
if (!m_dbHandler->db()->insert(dbData))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting codification_table data into database"));
m_ddsData.id(dbData.id);
DEBUG_LOG(m_logger) << "New codificationTable id: " << m_ddsData.id();
}
// Publish Data via DTS
onPublishData();
return Core::FunctionReplyObject(m_ddsData.id());
} // end of createObject()
//-----------------------------------------------------------------------------
Core::FunctionReplyObject ObjectCodificationData::updateObject(const CodificationManagement::CodificationData &ddsData)
{
DEBUG_LOG(m_logger) << "ObjectCodificationData::updateObject()";
if (!isValid())
return Core::FunctionReplyObject(ddsData.id(), tr_lts("dds", "Object not valid/blocked"));
// convert request ddsData -> dbData
Database::CodCodificationTable dbData;
dbData = toDbData(ddsData);
if (!m_dbHandler->db()->update(dbData))
return Core::FunctionReplyObject(ddsData.id(), tr_lts("dds", "Error updating codification_table data in database"));
// update internal objectdata
m_ddsData = ddsData;
DEBUG_LOG(m_logger) << "Data changed for codification_table id: " << m_ddsData.id();
// Publish Data via DTS
onPublishData();
return Core::FunctionReplyObject(m_ddsData.id());
} // end of updateObject()
//-----------------------------------------------------------------------------
Core::FunctionReplyObject ObjectCodificationData::removeObject()
{
DEBUG_LOG(m_logger) << "ObjectCodificationData::removeObject()";
if (isUsed())
return Core::FunctionReplyObject(m_ddsData.id(), tr_lts("dds", "codification_table data still in use"));
if (!m_dbHandler->db()->removeCodCodificationTable(m_ddsData.id()))
return Core::FunctionReplyObject(m_ddsData.id(), tr_lts("dds", "codification_table with id %1 can not be removed")).arg(m_ddsData.id());
DEBUG_LOG(m_logger) << "Removed codification_table id " << m_ddsData.id();
m_ddsHandler->dts()->removeCodificationDataByKey(m_ddsData.id());
return Core::FunctionReplyObject(m_ddsData.id());
} // end of removeObject()
//-----------------------------------------------------------------------------
void ObjectCodificationData::onPublishData()
{
INFO_LOG(m_logger) << "Publish CodificationData data to dds (" << m_ddsData.id() << ") ...";
if (!m_ddsHandler->dts()->publish(m_ddsData))
ERROR_LOG(m_logger) << "Error publishing CodificationData data to dds";
} // end of onPublishData()
//-----------------------------------------------------------------------------
bool ObjectCodificationData::isValid() const
{
return m_ddsData.id() > 0;
} // end of isValid()
//-----------------------------------------------------------------------------
bool ObjectCodificationData::isUsed() const
{
return m_ddsData.isUsed();
} // end of isUsed()
//-----------------------------------------------------------------------------
CodificationManagement::CodificationData ObjectCodificationData::toDdsData(const Database::CodCodificationTable &dbData)
{
CodificationManagement::CodificationData ddsData;
ddsData.id(dbData.id);
ddsData.numeralCodeTableColumnIndex(dbData.numeralCodeTableColumnIndex.toStdString());
ddsData.numeralCodeTableRowIndex(dbData.numeralCodeTableRowIndex.toStdString());
ddsData.authenticationTableColumnIndex(dbData.authenticationTableColumnIndex.toStdString());
ddsData.authenticationTableRowIndex(dbData.authenticationTableRowIndex.toStdString());
ddsData.authenticationTableMatirx(dbData.authenticationTableMatirx.toStdString());
ddsData.logisticalTermTableColumnIndex(dbData.logisticalTermTableColumnIndex.toStdString());
ddsData.logisticalTermTableRowIndex(dbData.logisticalTermTableRowIndex.toStdString());
ddsData.logisticalTermTableMatrix(dbData.logisticalTermTableMatrix.toStdString());
ddsData.phraseTable(dbData.phraseTable.toStdString());
ddsData.note(dbData.note.toStdString());
ddsData.identifier(dbData.identifier.toStdString()),
ddsData.validityTime(dbData.validityTime);
ddsData.partyId(dbData.partyId);
// init data not in db
ddsData.isDeleted(false);
ddsData.isUsed(false);
return ddsData;
} // end of toDdsData()
//-----------------------------------------------------------------------------
Database::CodCodificationTable ObjectCodificationData::toDbData(const CodificationManagement::CodificationData &ddsData)
{
Database::CodCodificationTable dbData;
dbData.id = ddsData.id();
dbData.numeralCodeTableColumnIndex = QString::fromStdString(ddsData.numeralCodeTableColumnIndex());
dbData.numeralCodeTableRowIndex = QString::fromStdString(ddsData.numeralCodeTableRowIndex());
dbData.authenticationTableColumnIndex = QString::fromStdString(ddsData.authenticationTableColumnIndex());
dbData.authenticationTableRowIndex = QString::fromStdString(ddsData.authenticationTableRowIndex());
dbData.authenticationTableMatirx = QString::fromStdString(ddsData.authenticationTableMatirx());
dbData.logisticalTermTableColumnIndex = QString::fromStdString(ddsData.logisticalTermTableColumnIndex());
dbData.logisticalTermTableRowIndex = QString::fromStdString(ddsData.logisticalTermTableRowIndex());
dbData.logisticalTermTableMatrix = QString::fromStdString(ddsData.logisticalTermTableMatrix());
dbData.phraseTable = QString::fromStdString(ddsData.phraseTable());
dbData.note = QString::fromStdString(ddsData.note());
dbData.identifier = QString::fromStdString(ddsData.identifier());
dbData.validityTime = ddsData.validityTime();
dbData.partyId = ddsData.partyId();
return dbData;
} // end of toDbData()
//-----------------------------------------------------------------------------