C++ library

3 posts / 0 new
Last post
Joined: 02/26/2013
Posts: 9
C++ library


In the last weeks I've started to play with RTI Connext 5.2 and I really enjoyed ! In my play I've ended to write a tiny C++ library easydds that I think might be useful for others people , so I would like to share with the community

Here are some features of easydds library

Encapsulates all DDS details for reading and writing the DDS topics in the library
The received data are "exported" via a boost signal in the application namespace.All the specific manipulation of data are done in the application namespace
Use of predefined QoS profiles from NDDS_QOS_PROFILES.example.xml   
DataReaders are running in own threads
Compiled with gcc 4.9.1 (-std=c++1y) and QtCreator as build system  
Use boost.signals2 ,just headers , no need to compile the boost library

Best regards,

Package icon source code library + pub + sub119.02 KB
Gerardo Pardo's picture
Joined: 06/02/2010
Posts: 582

Hello Daniel,

Thanks for sharing this! I see many interesting ideas in that code like using signals and also introducing classes to represent the builtin QoS profiles and Writers/Readers that use that Qos...

One thing I am now sure how it would be handled is the fact that the Qos has a lot of parameters that can take value over a continuum. The builtin QosProfiles provide specific values for these parameters, but often a user would want to modify some of these... For example a Reliability Qos Policy has a max_blocking_time value with can be any number of second and nanoseconds. It would seem that if one defined specialized DataWriter classes for each Qos, e.g for the ReliableDataWriter, it would have to use the builtin Qos as defined and not be able to modify any parameters there. Is that correct?

Joined: 02/26/2013
Posts: 9

Thank you for your positive feedback Gerardo!

About working with customized QoS profiles the library did not cover this scenario. I've added this feature using the following approach.All customized QoS profiles should be saved in USER_QOS_PROFILES.xml and in the initialization phase the application is loading also the profiles from USER_QOS_PROFILES.xml. In the libray the  Readers/Writers that are using the customized QoS profiles  I've separated in another namespace: customQoS. So the Readers/Writers that are using the builtin QoS profiles are in the namespace easydds and all Readers/Writers that are using the custom QoS profiles are in the namespace customQoS.



File Attachments: