Files
qt5-legatus-legacy/Lts/Services/ExerciseManagement/UnitTests/data_topic_tests.h
T
2026-08-13 18:33:10 +02:00

76 lines
1.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Unit test for ExerciseManagement (EXM)
* $Id$
* $HeadURL$
* $Author$
* Created by Hanna E. Rathje, SLSE, 2015-08-20
*/
#pragma once
#include <QObject>
#include <DDS/Generic/subscriber_listener.h>
// For Topic Exercise
#include <ExerciseManagement/exm_dtc_types.h>
#include <ExerciseManagement/exm_dts_types.h>
#include <LtsUtilsCore/data_modification_enum.h>
#include <ExerciseManagement/exm.hpp>
#include <rti/core/ListenerBinder.hpp>
namespace NGL {
class INGLLogger;
}
class DataTopicTests : public QObject
{
Q_OBJECT
public:
DataTopicTests();
virtual ~DataTopicTests();
// Initialisation
bool initPublisher();
bool initSubscriber();
// Publisher
bool write(const ExerciseManagement::Exercise &data);
// Subscriber
ExerciseManagement::Exercise getReceivedExerciseData() const { return m_receivedExerciseData; }
protected:
// Subscriber Methods
void processData(const ExerciseManagement::Exercise& instance, DataModification modType);
Q_SIGNALS:
void exerciseDataArrived();
private:
dds::domain::DomainParticipant m_domainParticipantPub;
dds::domain::DomainParticipant m_domainParticipantSub;
int m_domainId;
// Publisher
dds::pub::Publisher m_ddsPublisher;
DTS::Exercise *m_dtsExercise;
// Subscriber
dds::sub::Subscriber m_ddsSubscriber;
DDSGeneric::SubscriberListener *m_subscriberListener;
rti::core::ListenerBinder< dds::sub::Subscriber, dds::sub::SubscriberListener> m_subscriberListenerBinder;
DTC::Exercise *m_dtcExercise;
Qt::HANDLE m_mainThreadId;
// For returning TestData
ExerciseManagement::Exercise m_receivedExerciseData;
NGL::INGLLogger& m_logger;
};