https://download.csdn.net/download/eidolon_foot/12568768
17. DESTINATION_ORDER
OpenDDS Developer's Guide(OpenDDS Version 3.14)
The
DESTINATION_ORDER
QoS policy controls the order in which samples within a given
instance are made available to a data reader. If a history depth of one (the default) is
specified, the instance will reflect the most recent value written by all data writers to that
instance. Here is the IDL for the Destination Order Qos:
DESTINATION_ORDER QoS策略控制将给定实例中的样本提供给数据读取器的顺序。 如果指定的历史深度为1(默认值),则该实例将反映所有数据编写者写入该实例的最新值。 这是终点顺序Qos的IDL:
enum DestinationOrderQosPolicyKind {
BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS,
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
};
struct DestinationOrderQosPolicy {
DestinationOrderQosPolicyKind kind;
};
The
BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS
value (the default) indicates that
samples within an instance are ordered in the order in which they were received by the data
reader. Note that samples are not necessarily received in the order sent by the same data
writer. To enforce this type of ordering, the
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
value should be used.
BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS值(默认值)指示实例中的样本按照数据读取器接收样本的顺序进行排序。 请注意,不一定按相同数据写入器发送的顺序接收样本。 要强制执行这种类型的排序,应使用BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS值。
The
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
value indicates that samples within an
instance are ordered based on a timestamp provided by the data writer. It should be noted
that if multiple data writers write to the same instance, care should be taken to ensure that
clocks are synchronized to prevent incorrect ordering on the data reader.
BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS值指示实例内的样本是根据数据写入器提供的时间戳进行排序的。 应该注意的是,如果多个数据写入器写入同一实例,则应注意确保时钟同步,以防止在数据读取器上进行不正确的排序。
Data Distribution Service Version 1.4( formal/2015-04-10)
This policy controls how each subscriber resolves the final value of a data instance that is written by multiple
DataWriter
objects (which may be associated with different
Publisher
objects) running on different nodes.
此策略控制每个订阅者如何解析由在不同节点上运行的多个DataWriter对象(可能与不同的Publisher对象相关联)写入的数据实例的最终值。
The setting BY_RECEPTION_TIMESTAMP indicates that, assuming the OWNERSHIP policy allows it, the latest received
value for the instance should be the one whose value is kept. This is the default value.
设置BY_RECEPTION_TIMESTAMP表示,假设OWNERSHIP策略允许它,则实例的最新接收值应该是保留其值的值。 这是默认值。
The setting BY_SOURCE_TIMESTAMP indicates that, assuming the OWNERSHIP policy allows it, a timestamp placed at
the source should be used. This is the only setting that, in the case of concurrent same-strength
DataWriter
objects updating the
same instance, ensures all subscribers will end up with the same final value for the instance. The mechanism to set the source
timestamp is middleware dependent.
设置BY_SOURCE_TIMESTAMP表示,假设OWNERSHIP策略允许,则应使用放置在源上的时间戳。 在并发相同强度的DataWriter对象更新同一实例的情况下,这是唯一的设置,可确保所有订阅者最终获得该实例的最终值相同。 设置源时间戳记的机制取决于中间件。
The value offered is considered compatible with the value requested if and only if the inequality “offered
kind
>= requested
kind
” evaluates to ‘TRUE.’ For the purposes of this inequality, the values of DESTINATION_ORDER
kind
are considered
ordered such that BY_RECEPTION_TIMESTAMP < BY_SOURCE_TIMESTAMP.
当且仅当不等式“提供的种类> =请求的种类”评估为“ TRUE”时,才认为提供的值与请求的值兼容。出于这种不平等的目的,将DESTINATION_ORDER类型的值视为有序的,使得BY_RECEPTION_TIMESTAMP