Files
qt5-legatus-legacy/Lts/Proxies/WarehouseManagement/dds_handler.h
T
2026-08-13 18:33:10 +02:00

57 lines
1.6 KiB
C++
Executable File

/**
* DdsHandler for DDS
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2016-04-14
*/
#pragma once
#include <DDS/DDSConnector/dds_connector.h>
#include <ExerciseManagement/exm_dtc.h>
#include <ParticipantManagement/ppm_dtc.h>
#include <ParticipantManagement/ppm_ftc.h>
#include "logger.h"
namespace Core
{
class Pacemaker;
namespace Interface
{
class Dts;
}
}
namespace WarehouseManagement
{
/**
* @brief DdsHandler for Ex_0 partition
* All other handlers are created on demand and they're using the
* domain participant from this (main) DdsHandler
*/
class DdsHandler
{
public:
explicit DdsHandler(int domainId);
bool init(const QStringList &qosFileList = QStringList());
std::shared_ptr<Core::Pacemaker> pacemaker() const { return m_pacemaker; }
std::shared_ptr<ExerciseManagement::Interface::Dtc> exmDtc() const { return m_exmDtc; }
std::shared_ptr<ParticipantManagement::Interface::Dtc> ppmDtc() const { return m_ppmDtc; }
std::shared_ptr<ParticipantManagement::Interface::Ftc> ppmFtc() const { return m_ppmFtc; }
std::shared_ptr<DDSConnector::DdsConnector> dds() const { return m_ddsConnector; }
dds::domain::DomainParticipant getDomainParticipant() const { return m_ddsConnector->getDomainParticipant(); }
private:
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
std::shared_ptr<Core::Pacemaker> m_pacemaker;
std::shared_ptr<ExerciseManagement::Interface::Dtc> m_exmDtc;
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_ppmDtc;
std::shared_ptr<ParticipantManagement::Interface::Ftc> m_ppmFtc;
NGL::INGLLogger &m_logger;
};
}