Files
qt-migration-legatus/qt5-before/dlbo/Lts/Services/AudioVideoManagement/exercise.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

96 lines
2.3 KiB
C++

/**
* @RDE_HEADER@
* Exercise
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Fröbel, SLSE, 2017-11-30
*/
#include "exercise.h"
#include <InfrastructureManagement/ism.hpp>
#include <QtGlobal>
namespace AudioVideoManagement
{
void Exercise::add(std::unique_ptr<Asset> &&asset)
{
Q_ASSERT(asset.get());
auto insertResult = m_assets.insert(std::make_pair(asset->data().id(), std::move(asset)));
Q_ASSERT(insertResult.second);
}
void Exercise::add(std::unique_ptr<MountingPoint> &&mountingPoint)
{
Q_ASSERT(mountingPoint.get());
auto insertResult = m_mountingPoints.insert(std::make_pair(mountingPoint->data().id(), std::move(mountingPoint)));
Q_ASSERT(insertResult.second);
}
std::unique_ptr<Asset> Exercise::take(Asset *asset)
{
Q_ASSERT(asset);
auto found = m_assets.find(asset->data().id());
Q_ASSERT(found != m_assets.end());
std::unique_ptr<Asset> taken = std::move(found->second);
m_assets.erase(found);
return taken;
}
std::unique_ptr<MountingPoint> Exercise::take(MountingPoint *mountingPoint)
{
Q_ASSERT(mountingPoint);
auto found = m_mountingPoints.find(mountingPoint->data().id());
Q_ASSERT(found != m_mountingPoints.end());
std::unique_ptr<MountingPoint> taken = std::move(found->second);
m_mountingPoints.erase(found);
return taken;
}
void Exercise::moveMountedTo(Asset *asset, Exercise *targetExercise, const boost::optional<InfrastructureManagement::InstrumentationAsset> &modifiedData)
{
Q_ASSERT(asset);
Q_ASSERT(targetExercise);
targetExercise->add(take(asset));
targetExercise->add(take(asset->mountingPoint()));
emit assetUnassigned(asset);
if (modifiedData)
asset->update(*modifiedData);
emit targetExercise->assetAssigned(asset);
}
Asset *Exercise::findAsset(int id)
{
auto found = m_assets.find(id);
if (found != m_assets.end())
return found->second.get();
else
return nullptr;
}
std::vector<Asset *> Exercise::assets() const
{
std::vector<Asset *> allAssets;
allAssets.reserve(m_assets.size());
for (const auto &exerciseAndAsset: m_assets)
allAssets.push_back(exerciseAndAsset.second.get());
return allAssets;
}
MountingPoint *Exercise::findMountingPoint(int id)
{
auto found = m_mountingPoints.find(id);
if (found != m_mountingPoints.end())
return found->second.get();
else
return nullptr;
}
} // namespace AudioVideoManagement