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

61 lines
2.5 KiB
C++
Executable File

/**
* The ObjectMissionPlan class represents a ObjectMissionPlan. It holds the data and offers some conversion methods.
* $Id$
* $HeadURL$
* $Author$
* Created by Steve Kemayou, ESZS, 2025-04-08
*/
#pragma once
#include <ParticipantManagement/ppm_db.h>
#include <ParticipantManagement/ppm_dtc.h>
#include <ParticipantManagement/logger.h>
#include <ParticipantManagement/dds_handler.h>
#include "logger.h"
#include <QObject>
namespace ParticipantManagement
{
namespace UasHandling
{
class ObjectMissionPlan : public QObject
{
Q_OBJECT
public:
explicit ObjectMissionPlan(const std::shared_ptr<ParticipantManagement::DdsHandler> &ddsHandler,
const std::shared_ptr<ParticipantManagement::DatabaseInterface> &db,
const ParticipantManagement::MissionPlan &missionPlan,
QObject *parent = nullptr);
int32_t id() const;
int32_t participantId() const;
static Database::PpmMissionPlan toDbMissionPlan(const ParticipantManagement::ModifyMissionPlanRequest &mp);
static MissionPlan fillMissionPlanData(const ModifyMissionPlanRequest &in);
MissionPlan getMissionPlanData() const;
void setDbMissionItems( const QMap <int, ParticipantManagement::Database::PpmMissionItem> &dbItems,
const QMap <int, ParticipantManagement::Database::PpmMissionAction> &dbActions);
const ParticipantManagement::MissionPlan &missionPlan() const;
Core::FunctionReplyObject createMissionPlan(Database::PpmMissionPlan newMissionPlan, const std::vector<MissionItem> &missionItems);
Core::FunctionReplyObject updateMissionPlan(Database::PpmMissionPlan newMissionPlan, const std::vector<MissionItem> &missionItems);
Core::FunctionReplyObject removeMissionPlan(int id);
Core::FunctionReplyObject setMissionActionFulfilled(SetMissionActionFulfilledRequest req, qint64 currentTimeMSec);
Core::FunctionReplyObject setMissionPlanAborted(bool state);
private:
std::shared_ptr<ParticipantManagement::DdsHandler> m_ddsHandler;
std::shared_ptr<ParticipantManagement::DatabaseInterface> m_db;
ParticipantManagement::MissionPlan m_missionplan;
QHash<int /*dbItemId*/, ParticipantManagement::MissionItem > m_mapMissionItems; /// key:dbItemId | Value MissionItem
std::vector<std::vector<ParticipantManagement::Database::PpmMissionAction> > m_dbMissionActions; /// [ItemNumber][ActionNumber]
LOGGER_T m_logger;
};
} // namespace UasHandling
} // namespace ParticipantManagement