public interface Presentation extends QosPolicy.ForPublisher, QosPolicy.ForSubscriber, RequestedOffered<Presentation>
Publisher
, Subscriber
RxO: Yes
Changeable: No
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 the Service.
The setting of coherentAccess controls whether the Service will
preserve the groupings of changes made by the publishing application
by means of the operations Publisher.beginCoherentChanges()
and
Publisher.endCoherentChanges()
.
The setting of orderedAccess controls whether the Service will preserve
the order of changes.
The granularity is controlled by the setting of the accessScope.
Note that this QoS policy controls the scope at which related changes are
made available to the subscriber. This means the subscriber can
access the changes in a coherent manner and in the proper order; however,
it does not necessarily imply that the Subscriber will indeed
access the changes in the correct order. For that to occur, the
application at the subscriber end must use the proper logic in reading the
DataReader objects.
The value offered is considered compatible with the value requested if and
only if the following conditions are met:
Presentation.AccessScopeKind
are
considered ordered such that INSTANCE < TOPIC < GROUP.Modifier and Type | Interface and Description |
---|---|
static class |
Presentation.AccessScopeKind |
QosPolicy.ForDataReader, QosPolicy.ForDataWriter, QosPolicy.ForDomainParticipant, QosPolicy.ForDomainParticipantFactory, QosPolicy.ForPublisher, QosPolicy.ForSubscriber, QosPolicy.ForTopic
Modifier and Type | Method and Description |
---|---|
Presentation.AccessScopeKind |
getAccessScope() |
boolean |
isCoherentAccess()
If coherentAccess is set, then the accessScope controls the maximum
extent of coherent changes.
|
boolean |
isOrderedAccess()
If orderedAccess is set, then the accessScope controls the maximum
extent for which order will be preserved by the Service.
|
Presentation |
withAccessScope(Presentation.AccessScopeKind accessScope)
Copy this policy and override the value of the property.
|
Presentation |
withCoherentAccess(boolean coherentAccess)
Copy this policy and override the value of the property.
|
Presentation |
withGroup() |
Presentation |
withInstance() |
Presentation |
withOrderedAccess(boolean orderedAccess)
Copy this policy and override the value of the property.
|
Presentation |
withTopic() |
getEnvironment
requestedOfferedContract
compareTo
Presentation.AccessScopeKind getAccessScope()
boolean isCoherentAccess()
Presentation.AccessScopeKind.INSTANCE
, the
use of Publisher.beginCoherentChanges()
and
Publisher.endCoherentChanges()
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 by a
coherent change.
Presentation.AccessScopeKind.TOPIC
, then
coherent changes (indicated by their enclosure within calls to
Publisher.beginCoherentChanges()
and
Publisher.endCoherentChanges()
) will be made available
as such to each remote DataReader
independently. That
is, changes made to instances within each individual
DataWriter
will be available as coherent with respect
to other changes to instances in that same DataWriter, but
will not be grouped with changes made to instances belonging
to a different DataWriter.
Presentation.AccessScopeKind.GROUP
, then
coherent changes made to instances through a DataWriter
attached to a common Publisher
are made available as
a unit to remote subscribers.getAccessScope()
boolean isOrderedAccess()
Presentation.AccessScopeKind.INSTANCE
(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 DataWriter
.Presentation.AccessScopeKind.TOPIC
, changes
(creations, deletions, modifications) made by a single
DataWriter
are made available to subscribers in the same
order they occur. Changes made to instances through different
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 DataWriter objects attached to the same
Publisher
.Presentation.AccessScopeKind.GROUP
, changes made
to instances via DataWriter entities attached to the same
Publisher object are made available to subscribers on the same
order they occur.getAccessScope()
Presentation withAccessScope(Presentation.AccessScopeKind accessScope)
Presentation withCoherentAccess(boolean coherentAccess)
Presentation withOrderedAccess(boolean orderedAccess)
Presentation withInstance()
Presentation withTopic()
Presentation withGroup()
Copyright © 2014. All rights reserved.