给定DDS主题名称,是否可以在运行时确定主题类型信息?

时间:2017-11-21 14:59:21

标签: c++ publish-subscribe rtti data-distribution-service

我正在评估使用C ++工作的RTI ConnextDDS。在运行时,在读取DDS消息并提取主题名称时,是否有API提供有关该主题的运行时类型信息?那我可以获得主题中每个元素的名称和类型吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,虽然不是直截了当的。

以完全动态的方式执行此操作需要检查所谓的内置主题,其中包含有关发现的不同DDS实体的信息。见Chapter 17 "Built-In Topics" in the Core Libraries User's ManualThis RTI community example on built-in Topics也可能会有所帮助。

特别是,PublicationBuiltinTopicSubscriptionBuiltinTopic包含字段typetype_code,这两个字段都包含与{{Topic相关联的类型的说明1}}对于有问题的DataWriter或DataReader。 type字段属于TypeObject,在OMG DDS-XTypes specification中已标准化。 type_code字段是专有格式,如用户手册中所述。

在走完整条道路之前,我会确保这是你真正想做的事情,为什么?理想情况下,产品随附的工具应为您提供所需的所有信息。