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>
96 lines
2.3 KiB
C++
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
|
|
|