【发布时间】:2021-07-28 14:57:33
【问题描述】:
我目前正在使用 Eclipse Cyclone DDS C++,我想知道是否可以在 IDL 中不使用#pragma keylist 指定任何密钥的情况下发送数据。
是否可以通过 QoS 设置来实现?如果有,怎么做?
【问题讨论】:
标签: c++ key data-distribution-service qos
我目前正在使用 Eclipse Cyclone DDS C++,我想知道是否可以在 IDL 中不使用#pragma keylist 指定任何密钥的情况下发送数据。
是否可以通过 QoS 设置来实现?如果有,怎么做?
【问题讨论】:
标签: c++ key data-distribution-service qos
如果您在没有列出任何关键字段的情况下执行#pragma keylist TYPE,IDL 编译器将生成创建没有任何关键字段的主题所需的一切。所以
struct S {
long something;
string orother;
};
#pragma keylist S
完全有效,然后你可以为S创建一个主题。
我不完全确定你的意思
在这种情况下,读者无法区分同一主题的写入。
以上将导致该主题的单个实例。您仍然可以拥有历史记录,例如,读者仍然可以通过指定 KEEP_ALL 历史记录设置来确保它看到每个更新。因此,读者仍然可以通过查看内容和/或示例信息来区分写入,但对于 DDS,这些都是对这一实例的更新。
是否可以通过 QoS 设置来实现?
不,您(当前)不能使用 QoS 设置覆盖关键字段。
【讨论】: