Files

61 lines
1.3 KiB
C++

#pragma once
#include <DDS/Generic/generic_base.h>
#include <DDS/Generic/subscriber_listener.h>
#include <dds/pub/Publisher.hpp>
#include <dds/sub/Subscriber.hpp>
namespace NGL
{
class INGLLogger;
}
class Initialisation
{
public:
Initialisation();
virtual ~Initialisation();
enum PubSub { USE_PUBLISHER = 1, USE_SUBSCRIBER = 2, USE_PUB_SUB = 4 };
bool initDDS(int domainId, int exerciseId, PubSub pubsub = USE_PUBLISHER);
void cleanupSubscriberListener();
dds::domain::DomainParticipant getDomainParticipant()
{
return m_domainParticipant;
}
dds::domain::DomainParticipant getDomainParticipantSub()
{
return m_domainParticipantSub != nullptr ? m_domainParticipantSub : m_domainParticipant;
}
dds::pub::Publisher getDDSPublisher()
{
return m_ddsPublisher;
}
dds::sub::Subscriber getDDSSubscriber()
{
return m_ddsSubscriber;
}
DDSGeneric::SubscriberListener* getSubscriberListener()
{
return m_subListener;
}
private:
NGL::INGLLogger& m_logger;
dds::domain::DomainParticipant m_domainParticipant;
dds::domain::DomainParticipant m_domainParticipantSub;
int m_domainId;
int m_exerciseId;
dds::pub::Publisher m_ddsPublisher;
dds::sub::Subscriber m_ddsSubscriber;
DDSGeneric::SubscriberListener* m_subListener;
};