DDS (Data Distribution Service) 数据分发服务-规范中文翻译_016

2.以数据为中心的订阅发布(DCPS)

2.2 平台无关模型(Platform Independent Model ,PIM)

2.2.2 平台无关模型(PIM)描述

2.2.2.4 发布模块

2.2.2.4.2 DataWriter 类

DataWriter类允许应用程序设置给定主题下发布的数据的值。
DDS (Data Distribution Service) 数据分发服务-规范中文翻译_016
DDS (Data Distribution Service) 数据分发服务-规范中文翻译_016
DataWriter只附加到一个充当它的工厂的Publisher。
DataWriter只与一个主题(Topic)绑定,因此只与一种数据类型绑定。主题(Topic)必须在DataWriter创建之前存在。
DataWriter是一个抽象类。它必须专门用于特定的应用数据类型,如图2.8所示。在自动生成的类中必须为假设的应用类型“Foo”定义的其他方法如下表所示:

DDS (Data Distribution Service) 数据分发服务-规范中文翻译_016
除基类方法set_qos,get_qos,set_listener,get_listener,enable和get_statuscondition之外的所有方法都可能返回值NOT_ENABLED。
以下子条目提供了有关方法的详细信息。

2.2.2.4.2.1 set_listener (来自实体类Entity)

通过扩展实体(Entity)类,数据写入者(DataWriter)可以在创建时或创建后使用set_listener方法将其与监听器(Listener)进行绑定。附加的Listener必须继承自DataWriterListener。监听器在2.2.4 监听器,条件和等待集中有详细描述。

2.2.2.4.2.2 get_listener (来自实体类Entity)

获取DataWriter附加绑定的DataWriterListener。

2.2.2.4.2.3 set_qos (来自实体类Entity)

通过扩展实体(Entity)类,数据写入者(DataWriter)可以在创建时或创建后使用set_qos方法设置QoS策略。关于可以在DataWriter上设置的QoS策略,请参阅2.2.3 支持的QoS。
除标准错误代码外,还可能返回错误代码:IMMUTABLE_POLICY,INCONSISTENT_POLICY。

2.2.2.4.2.4 get_qos (来自实体类Entity)

此方法允许访问QoS策略的取值。

2.2.2.4.2.5 register_instance

此方法通知服务应用程序将修改特定数据实例。它为服务提供了预先配置自身的机会,以提高服务性能。
它将一个实例(用于获取关键字值)作为参数,并返回一个可用于连续写入或处理数据的方法的句柄。
应在调用修改实例的方法之前调用此方法,例如write,write_w_timestamp,dispose和dispose_w_timestamp。
如果服务不想为该实例分配任何句柄,则可以返回特殊值HANDLE_NIL。
此方法可能会在write方法(2.2.2.4.2.11)所述的相同情况下阻塞并返回TIMEOUT。
在与write方法(2.2.2.4.2.11)相同的情况下,此操作可能会返回OUT_OF_RESOURCES。
register_instance方法是幂等的。如果传入参数为已注册的实例,此方法只返回已分配的句柄。这可用于查找和获取分配给给定实例的句柄。显式使用此方法是可选的,因为应用程序可以直接调用write方法并指定HANDLE_NIL以表明应检查“关键字”以确认实例。

2.2.2.4.2.6 register_instance_w_timestamp

此方法与register_instance功能相同,在应用程序希望指定source_timestamp值的情况下,可以代替register_instance。source_timestamp可能会影响读取者观察来自多个写入者的事件的相对顺序。有关DESTINATION_ORDER QoS策略的详细信息,请参见2.2.3.17。
此方法可能会在write方法(2.2.2.4.2.11)所述的相同情况下阻塞并返回TIMEOUT。
在与write方法(2.2.2.4.2.11)相同的情况下,此操作可能会返回OUT_OF_RESOURCES。


译文连载

DDS规范-上一篇:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_015

DDS规范-下一篇:待续

RTPS规范-译文连载:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_001


相关链接

【What:什么是DDS? 】【Why:为什么选择DDS?

【How:DDS如何工作?

DDS科普:一文读懂DDS(数据分发服务)

产品介绍:BLUE DCS分布式数据连接解决方案

产品试用:海蓝云平台-Blue DCS

博文汇总:博文汇总(技术博客_行业应用_规范翻译)


DDS (Data Distribution Service) 数据分发服务-规范中文翻译_016