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

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

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

最佳答案

是的,这是可能的,尽管并不简单。

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

特别是,PublicationBuiltinTopicSubscriptionBuiltinTopic 包含字段 typetype_code,它们都是预期的包含与相关 DataWriter 或 DataReader 的 Topic 关联的类型的描述。 type 字段属于 TypeObject,在 OMG DDS-XTypes specification 中被标准化。 . type_code 字段是专有格式,如用户手册中所述。

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

关于c++ - 给定一个 DDS 主题名称,是否可以在运行时确定主题类型信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47416153/

相关文章:

PHP 可以锁定下载的内容吗?

c++ - 使用 Visual Studio .ncb 文件进行反射

C++ RTTI 可行的例子

c++ - 在 Windows 10 中双击对话框窗口的顶部或底部边缘后如何阻止调整大小?

c++ - 在 WTL 中如何判断子窗口的状态何时发生变化?

publish-subscribe - 从 DDS 中删除已读主题

谷歌云函数事件和上下文的 typescript 类型

c++ - dynamic_cast的实际使用?

c++ - 检测元组中的引用类型

c++ - 如何改进基于sse的矩阵乘法