3.1.2.1.14. PresentationQosPolicy
警告
此QoS策略将在未来的版本中实现。
该QoS策略指定了表示数据实例变化的样本如何呈现给订阅应用程序。它控制了数据实例之间变化的相互依赖程度,以及可以传播和维护的依赖类型。请参见PresentationQosPolicy。
QoS策略数据成员列表:
数据成员名称 | 类型 | 默认值 |
---|---|---|
access_scope | PresentationQosPolicyAccessScopeKind | INSTANCE_PRESENTATION_QOS |
coherent_access | bool | false |
ordered_access | bool | false |
access_scope: 确定能够保留顺序和一致性的实体范围。有关详细信息,请参见PresentationQosPolicyAccessScopeKind。
coherent_access: 控制服务是否会保留在发布方进行的更改分组,使其作为一个单元在订阅方接收。
ordered_access: 控制服务是否支持订阅者按发生顺序查看更改。
注意:此QoS策略适用于Publisher和Subscriber实体。在启用实体上无法更改。
警告
为了使DataWriters和DataReaders匹配,它们必须遵循兼容性规则。有关更多详细信息,请参见兼容性规则。
PresentationQosPolicyAccessScopeKind
有三种可能值,这些值在coherent_access和ordered_access变量的不同值下具有不同的行为(请参见PresentationQosPolicyAccessScopeKind):
INSTANCE_PRESENTATION_QOS:
- 对于每个数据实例,变更不需要与其他实例的一致性或顺序保持一致,即意味着订单和一致性变更适用于每个实例。
- 在这种情况下,启用coherent_access对订阅者访问数据没有影响,因为作用域限制为每个实例,对独立实例的变更视为独立,因此不能通过一致性变更进行分组。
- 启用ordered_access只影响同一实例内的变更。因此,即使由同一应用线程和DataWriter进行处理,两个实例所做的更改不一定会按照发生顺序被看到。
TOPIC_PRESENTATION_QOS:
- 作用域扩展到同一DataWriter中的所有实例。
- 启用coherent_access意味着在同一DataWriter内进行的变更将以一致性方式对其他改变可用,但不会与属于不同DataWriter的实例变化分组。
- 启用ordered_access意味着由单个DataWriter进行的变更将按发生顺序提供给订阅者,而通过不同DataWriter进行的数据更新不一定会按顺序呈现。
GROUP_PRESENTATION_QOS:
- 作用域扩展到属于同一Publisher内所有DataWriters中的所有实例。
- 启用coherent_access时,共享Publisher下通过多个DataWriters做出的连贯改变作为一个单元提供给远程订阅者。
- 如果启用了该范围内的ordered_access,则来自相同Publisher下任意DataWriters做出的变化将按照它们发生的顺序提供给订阅者。
兼容性规则
为了保持PresentationQosPolicy在DataReaders和DataWriters之间的一致性,Publisher access_scope必须大于或等于Subscriber access_scope。各种访问范围之间的关系如下:
Publisher scope | Subscriber scope | Compatibility |
---|---|---|
INSTANCE_PRESENTATION_QOS-api | INSTANCE_PRESENTATION_QOS | Yes |
INSTANCE_PRESENTATION_QOS-api | TOPIC_PRESENTATION_QOS | No |
INSTANCE_PRESENTATION_QOS-api | GROUP_PRESENTATION_QOS | No |
TOPIC_PRESENTATION_QOS | INSTANCE_PRESENTATION_QOS | Yes |
TOPIC_PRESENTATION_QOS | TOPIC_PRESENTATION_QOS | Yes |
TOPIC_PRESENTATION_QOS | GROUP_PRESENTATION_QOS | No |
GROUP_PRESENTATION_QOS | INSTANCE_PRESENTATION_QOS | Yes |
GROUP_PRESENTATION_QOS | TOPIC_PRESENTATION_QOS | Yes |
GROUP_PRESENTATION_QOS | GROUP_PRESENTATION_QOS | Yes |
此外,只有当Publisher也启用了coherent_access和ordered_access时,Subscriber才能启用这些选项。
内容由零声教学AI助手提供,问题来源于学员提问