这段文字主要阐述了在使用 DomainParticipant
时关于 QoS(Quality of Service)配置的一些重要注意事项。以下是对文本的详细解释:
1. 可变字段和发现服务器列表
- 可变字段:
WireProtocolConfigQos
中唯一可以动态修改的字段是m_DiscoveryServers
,它位于内置的discovery_config
中。这意味着在运行时,可以调整远程服务器列表,以便动态发现其他参与者。
2. 创建参与者时的 QoS 设置
- 创建参与者:当调用
create_participant()
方法时,如果 Fast DDS 编译时启用了统计支持(默认开启),那么输入的DomainParticipantQos
可能与内部生成的DomainParticipantQos
不同。这是因为统计模块可能会对某些 QoS 值进行自动修改。
3. 修改 QoS 的步骤
如果应用程序希望在创建 DomainParticipant
后进一步修改其 QoS 设置,应遵循以下步骤:
获取当前QoS:通过调用
DomainParticipant::get_qos()
方法来检索当前实例的内部 QoS 配置。执行所需修改:对检索到的 QoS 配置进行必要的更改。
更新QoS设置:通过调用
DomainParticipant::set_qos()
方法,将修改后的 QoS 设置应用回参与者实例中。
4. 不可变QoS策略
- 如果尝试在一个已经启用(enabled)的
DomainParticipant
上修改不可变的 QoSPolicy,会导致错误。在这种情况下,不会有任何更改被应用,且该参与者将保持其先前的DomainParticipantQos
设置。这提示开发者要仔细管理各项策略,以确保不会违反这些规则。
总结
这一段文字强调了如何正确地管理和修改 Fast DDS 中 DomainParticipant
的 QoS 设置,特别是在涉及统计支持的时候。理解这些流程对于避免运行时错误及确保系统稳定性至关重要。同时,还提醒开发人员关注哪些属性可以被修改,以及何时应该避免尝试进行这些修改。
内容由零声教学AI助手提供,问题来源于学员提问