DDS 规范定义了两种独立的机制,用于通知应用程序 DCPS 通信状态更改。大多数状态类型定义了一个结构,该结构包含与状态变化相关的信息,并且可以由应用程序使用条件或侦听器检测到。不同的状态类型在 4.2 中描述。
每个实体类型(域参与者、主题、发布者、订阅者、数据读取器和数据写入器)都定义了自己对应的侦听器接口。应用程序可以实现此接口,然后将其侦听器实现附加到实体。
每个侦听器接口包含可以为该实体报告的每个状态的操作。只要发生合格的状态更改,侦听器就会通过适当的操作异步回调。 4.3 讨论了不同侦听器类型的详细信息。
条件与等待集结合使用,让应用程序同步等待事件。条件的基本使用模式包括创建条件对象,将它们附加到等待集,然后在等待集上等待直到触发其中一个条件。
等待的结果告诉应用程序触发了哪些条件,允许应用程序采取适当的动作来获取相应的状态信息。条件在 4.4 中有更详细的描述。
通讯状态类型
每个状态类型都与特定的实体类型相关联。此部分按实体类型组织,相应的状态在相关实体类型下的小节中描述。
下面的大多数状态都是普通的通信状态。例外是 DATA_ON_READERS
和 DATA_AVAILABLE
,它们是读取状态。
普通通信状态定义了 IDL 数据结构。他们下面的相应部分描述了这个结构及其字段。
读取状态是对应用程序的简单通知然后根据需要读取或获取样本。
状态数据结构中的增量值报告自上次访问状态以来的更改。当为该状态调用侦听器或从其实体读取状态时,该状态被视为已访问。
具有 InstanceHa