#pragma once #include #include 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: 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; NGL::INGLLogger &m_logger; };