#include <managed_infrastructure.h>
Static Public Member Functions | |
static System::String^ | get_presentation_qos_policy_name () |
Stringified human-readable name for DDS::PresentationQosPolicy. | |
Public Attributes | |
PresentationQosPolicyAccessScopeKind | access_scope |
Determines the largest scope spanning the entities for which the order and coherency of changes can be preserved. | |
Properties | |
System::Boolean | coherent_access [get, set] |
Specifies support for coherent access. Controls whether coherent access is supported within the scope access_scope . | |
System::Boolean | ordered_access [get, set] |
Specifies support for ordered access to the samples received at the subscription end. Controls whether ordered access is supported within the scope access_scope . |
This QoS policy controls the extent to which changes to data instances can be made dependent on each other and also the kind of dependencies that can be propagated and maintained by RTI Data Distribution Service. Specifically, this policy affects the application's ability to:
The Presentation QoS policy allows you to specify different scopes of presentation: within a topic, across instances of a single topic, and even across multiple topics used by different writers of a publisher. It also controls whether or not a set of changes within the scope is delivered at the same time or can be delivered as soon as each element is received.
coherent_access
controls whether RTI Data Distribution Service will preserve the groupings of changes made by a publishing application by means of the operations DDS::Publisher::begin_coherent_changes and DDS::Publisher::end_coherent_changes. ordered_access
controls whether RTI Data Distribution Service will preserve the order of changes. access_scope
controls the granularity of the other settings. See below: coherent_access
is set, then the access_scope
controls the maximum extent of coherent changes. The behavior is as follows:
access_scope
is set to DDS::PresentationQosPolicyAccessScopeKind::INSTANCE_PRESENTATION_QOS (the default), the use of DDS::Publisher::begin_coherent_changes and DDS::Publisher::end_coherent_changes has no effect on how the subscriber can access the data, because with the scope limited to each instance, changes to separate instances are considered independent and thus cannot be grouped into a coherent set. access_scope
is set to DDS::PresentationQosPolicyAccessScopeKind::TOPIC_PRESENTATION_QOS, then coherent changes (indicated by their enclosure within calls to DDS::Publisher::begin_coherent_changes and DDS::Publisher::end_coherent_changes) will be made available as such to each remote DDS::DataReader independently. That is, changes made to instances within each individual DDS::DataWriter will be available as coherent with respect to other changes to instances in that same DDS::DataWriter, but will not be grouped with changes made to instances belonging to a different DDS::DataWriter. ordered_access
is set, then the access_scope
controls the maximum extent for which order will be preserved by RTI Data Distribution Service.
access_scope
is set to DDS::PresentationQosPolicyAccessScopeKind::INSTANCE_PRESENTATION_QOS (the lowest level), then changes to each instance are considered unordered relative to changes to any other instance. That means that changes (creations, deletions, modifications) made to two instances are not necessarily seen in the order they occur. This is the case even if it is the same application thread making the changes using the same DDS::DataWriter. access_scope
is set to DDS::PresentationQosPolicyAccessScopeKind::TOPIC_PRESENTATION_QOS, changes (creations, deletions, modifications) made by a single DDS::DataWriter are made available to subscribers in the same order they occur. Changes made to instances though different DDS::DataWriter entities are not necessarily seen in the order they occur. This is the case, even if the changes are made by a single application thread using DDS::DataWriter objects attached to the same DDS::Publisher.
access_scope
>= requested access_scope
evaluates to 'TRUE' or requested access_scope
is DDS::PresentationQosPolicyAccessScopeKind::HIGHEST_OFFERED_PRESENTATION_QOS. For the purposes of this inequality, the values of access_scope
are considered ordered such that DDS::PresentationQosPolicyAccessScopeKind::INSTANCE_PRESENTATION_QOS < DDS::PresentationQosPolicyAccessScopeKind::TOPIC_PRESENTATION_QOS < DDS::PresentationQosPolicyAccessScopeKind::GROUP_PRESENTATION_QOS. coherent_access
is false, or else both offered and requested coherent_access
are true. ordered_access
is false, or else both offered and requested ordered_access
are true.Determines the largest scope spanning the entities for which the order and coherency of changes can be preserved.
[default] DDS::PresentationQosPolicyAccessScopeKind::INSTANCE_PRESENTATION_QOS
System:: Boolean DDS::PresentationQosPolicy::coherent_access [get, set] |
Specifies support for coherent access. Controls whether coherent access is supported within the scope access_scope
.
That is, the ability to group a set of changes as a unit on the publishing end such that they are received as a unit at the subscribing end.
[default] false
System:: Boolean DDS::PresentationQosPolicy::ordered_access [get, set] |
Specifies support for ordered access to the samples received at the subscription end. Controls whether ordered access is supported within the scope access_scope
.
That is, the ability of the subscriber to see changes in the same order as they occurred on the publishing end.
[default] false