RTC Toolkit  2.0.0
Public Member Functions | List of all members
rtctk::componentFramework::DdsSub Class Reference

All functionality needed to create DDS entities for DDS data subscribing is concentrated in this class. More...

#include <ddsSub.hpp>

Inheritance diagram for rtctk::componentFramework::DdsSub:
rtctk::componentFramework::Dds

Public Member Functions

 DdsSub (const std::string &qos_file, const std::string &qos_profile=DEFAULT_QOS_PROFILE, DomainId_t domain_id=DEFAULT_DOMAIN_ID)
 
virtual ~DdsSub ()
 
void CreateSubscriber ()
 Creates DDS subscriber. More...
 
void DestroySubscriber ()
 Destroys DDS subscriber. More...
 
DataReader * CreateDataReader (Topic *topic, DataReaderListener *listener=nullptr, std::string multicast_address="")
 Creates DDS data reader for particular topic for topic of type: rtctk::AgnosticTopic. More...
 
void DestroyDataReader (DataReader *dr, bool to_be_removed=true)
 Destroys DDS data reader. More...
 
void CreateDataReaders ()
 Creates DDS Data Reader for all DDS topics. More...
 
void EnableAllDataReaders ()
 
void DestroyAllDataReaders ()
 Destroys DDS Data Reader for all DDS topics. More...
 
void CreateManyDataReaders (std::vector< DdsReaderParams > const &)
 create DDS topics and DDS readers for the given list (vector) of topic names and rtctk::componentFramework::DdsReaderListener Internally it calls for each topic name CreateTopic, and on the created topic CreateDataReader. More...
 
void CreateManyDataReaders (std::vector< std::string > &topic_names)
 create DDS topics and DDS readers for the given list of topic names Internally it calls for each topic name CreateTopic, and on the created topic CreateDataReader. More...
 
void DumpDDSstatistics ()
 Dumps / logs varios DDS statistic like NACks, ACKs, ... More...
 
std::vector< DataReader * > & GetDataReaders ()
 returns vector of all DDS Data writers More...
 
- Public Member Functions inherited from rtctk::componentFramework::Dds
 Dds (std::string qos_file, std::string qos_profile=DEFAULT_QOS_PROFILE, DomainId_t domain_id=DEFAULT_DOMAIN_ID)
 Constructor for Base class for both DDS Publisher and DDS Subscriber. More...
 
virtual ~Dds () noexcept
 
 Dds (Dds &&rhs)=delete
 
Ddsoperator= (Dds &&rhs)=delete
 
void SetQosProfile (std::string &qos_profile)
 Set FastDDS QoS profile after creation. More...
 
void SetInterfaceWhiteList (const std::vector< std::string > &iwl)
 Sets the interfaces that can be used for DDS sample traffic. More...
 
void CreateParticipant ()
 Creates DDS participant. More...
 
void DestroyParticipant ()
 Destroys DDS participant created in CreateParticipant. More...
 
Topic * CreateTopic (const std::string &topic_name)
 Creates DDS topic. More...
 
void DestroyTopic (Topic *topic, bool to_be_removed=true)
 Destroys DDS topic. More...
 
void CreateManyTopics (std::vector< std::string > &topic_names)
 Creates many DDS topics. More...
 
void DestroyAllTopics ()
 Destroys all DDS topics from internal map. More...
 
size_t GetNumberOfTopics () const noexcept
 
const std::string GetTopicName (size_t index) const noexcept
 

Additional Inherited Members

- Static Public Attributes inherited from rtctk::componentFramework::Dds
static const std::string TELEM_DP_QOS_FILE = "telemDataPathDdsQos.xml"
 default file name for different DDS QoSs More...
 
static const std::string DEFAULT_QOS_PROFILE = "RtcTk_Default_Profile"
 default profile name for different DDS QoSs More...
 
static const DomainId_t DEFAULT_DOMAIN_ID = 0
 default Domain Id for different DDS More...
 
- Protected Attributes inherited from rtctk::componentFramework::Dds
DomainParticipantFactory * m_factory
 
DomainParticipant * m_participant
 
std::string m_qos_profile
 
DomainId_t m_domain_id =0
 
std::vector< std::string > m_interfaceWhiteList
 
std::vector< Topic * > m_topics
 
log4cplus::Logger m_logger
 

Detailed Description

All functionality needed to create DDS entities for DDS data subscribing is concentrated in this class.

Note
Please refer to FastDDS documentation for details of DDS

Constructor & Destructor Documentation

◆ DdsSub()

rtctk::componentFramework::DdsSub::DdsSub ( const std::string &  qos_file,
const std::string &  qos_profile = DEFAULT_QOS_PROFILE,
DomainId_t  domain_id = DEFAULT_DOMAIN_ID 
)
Parameters
qos_fileof QoS XML file. That needs to be located in subfolder: resource/config/rtctk/dds of $CFGPATH.
qos_profileDDS QoS profile (please refer to FastDDS documentation for details)
domain_idDDS domain Id (see FastDDS documentation for details)
Note
: To be used just RTC Toolkit internally.

◆ ~DdsSub()

rtctk::componentFramework::DdsSub::~DdsSub ( )
virtual

Member Function Documentation

◆ CreateDataReader()

DataReader * rtctk::componentFramework::DdsSub::CreateDataReader ( Topic *  topic,
DataReaderListener *  listener = nullptr,
std::string  multicast_address = "" 
)

Creates DDS data reader for particular topic for topic of type: rtctk::AgnosticTopic.

Parameters
topicDDS topic for which DDS reader shall be created
listenerpointer to DDS Reader Listener (optional). If not specified a default one is created/used: rtctk::componentFramework::DdsReaderListener
multicast_addressmulticast address to be used for listening
Returns
created DDS data reader

◆ CreateDataReaders()

void rtctk::componentFramework::DdsSub::CreateDataReaders ( )

Creates DDS Data Reader for all DDS topics.

Internal it calls CreateDataReader for each topic from the internal topic map.

◆ CreateManyDataReaders() [1/2]

void rtctk::componentFramework::DdsSub::CreateManyDataReaders ( std::vector< DdsReaderParams > const &  topics_listeners)

create DDS topics and DDS readers for the given list (vector) of topic names and rtctk::componentFramework::DdsReaderListener Internally it calls for each topic name CreateTopic, and on the created topic CreateDataReader.

◆ CreateManyDataReaders() [2/2]

void rtctk::componentFramework::DdsSub::CreateManyDataReaders ( std::vector< std::string > &  topic_names)

create DDS topics and DDS readers for the given list of topic names Internally it calls for each topic name CreateTopic, and on the created topic CreateDataReader.

◆ CreateSubscriber()

void rtctk::componentFramework::DdsSub::CreateSubscriber ( )

Creates DDS subscriber.

It is enough to have one subscriber, so this shall be called just once. It has to be called after DDS participant has been created.

◆ DestroyAllDataReaders()

void rtctk::componentFramework::DdsSub::DestroyAllDataReaders ( )

Destroys DDS Data Reader for all DDS topics.

Internal it calls DestroyDataReader for each data reader for each topic from the internal topic map.

◆ DestroyDataReader()

void rtctk::componentFramework::DdsSub::DestroyDataReader ( DataReader *  dr,
bool  to_be_removed = true 
)

Destroys DDS data reader.

Parameters
drDDS Data reader to be destroyed
to_be_removedflag that indicates if the data reader should be also removed from internal map. Default is to be removed.

◆ DestroySubscriber()

void rtctk::componentFramework::DdsSub::DestroySubscriber ( )

Destroys DDS subscriber.

As there is just one subscriber is should be called at most once.

◆ DumpDDSstatistics()

void rtctk::componentFramework::DdsSub::DumpDDSstatistics ( )
virtual

Dumps / logs varios DDS statistic like NACks, ACKs, ...

for each DDS writer

Reimplemented from rtctk::componentFramework::Dds.

◆ EnableAllDataReaders()

void rtctk::componentFramework::DdsSub::EnableAllDataReaders ( )

◆ GetDataReaders()

std::vector<DataReader *>& rtctk::componentFramework::DdsSub::GetDataReaders ( )
inline

returns vector of all DDS Data writers


The documentation for this class was generated from the following files: