Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+95
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* @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
|
||||
|
||||
Reference in new issue
Block a user