3.1.2.2.7. PropertyPolicyQos
PropertyPolicyQos
是一种附加的 QoS(服务质量)策略,用于存储名称/值对,这些对可以用来配置某些 DDS(数据分发服务)设置,这些设置无法通过标准 QoS 策略直接配置。有关可以使用此 QoS 策略配置的完整设置列表,请参阅 PropertyPolicyQos Options
。
这个 QoS 策略还允许添加自定义用户属性,这些属性可以发送给外部实体。这可以通过将属性的 propagate
值设置为 true
来实现。
注意: 此 QoS 策略适用于
DomainParticipant
、DataWriter
和DataReader
实体,且在启用实体上无法更改。
示例
以下是如何在 C++ 中使用 PropertyPolicyQos
的示例:
// 此示例使用 DataWriter,但也适用于 DomainParticipant 和 DataReader 实体
DataWriterQos writer_qos;
// 为 Auth:PKI-DH 插件添加新属性
writer_qos.properties().properties().emplace_back("dds.sec.auth.plugin", "builtin.PKI-DH");
// 为 Access:Permissions 插件添加新属性
writer_qos.properties().properties().emplace_back(eprosima::fastdds::rtps::Property("dds.sec.access.plugin",
"builtin.Access-Permissions"));
// 添加新的用户自定义属性以发送到外部参与者
writer_qos.properties().properties().emplace_back("Custom Property Name", "Custom value", true);
// 使用修改后的 QoS 创建相应的实体
writer_ = publisher_->create_datawriter(topic_, writer_qos);
解释
在上述代码中,首先创建一个 DataWriterQos
对象,然后添加几个不同的属性,包括安全插件和用户自定义属性。每个属性都是一个键值对,其中键是字符串,值则是对应的插件或其他信息。
- 安全插件:通过添加与认证和访问权限相关的插件,使得数据传输更加安全。
- 用户自定义属性:这允许开发者根据特定需求传递额外的信息,这对于扩展 DDS 功能或进行特定配置很有用。
最后,通过调用 publisher_->create_datawriter()
方法并传入修改后的 QoS 设置来创建数据写入器实例。这确保了创建的数据写入器具有所需的配置。
内容由零声教学AI助手提供,问题来源于学员提问