![]() |
OpenSplice Java 5 DCPS
v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
|
This policy expresses if the data should "outlive" their writing time. More...
Classes | |
enum | Kind |
Public Member Functions | |
ServiceEnvironment | getEnvironment () |
Kind | getKind () |
Comparable< SELF > | requestedOfferedContract () |
Use the object returned by this method to evaluate the Request/Offer relationship with another instance of this policy. More... | |
Durability | withKind (Kind kind) |
Copy this policy and override the value of the property. More... | |
Durability | withPersistent () |
Durability | withTransient () |
Durability | withTransientLocal () |
Durability | withVolatile () |
This policy expresses if the data should "outlive" their writing time.
Concerns: org.omg.dds.topic.Topic, org.omg.dds.sub.DataReader, org.omg.dds.pub.DataWriter
RxO: Yes
Changeable: No
The decoupling between org.omg.dds.sub.DataReader and org.omg.dds.pub.DataWriter offered by the Publish/Subscribe paradigm allows an application to write data even if there are no current readers on the network. Moreover, a DataReader that joins the network after some data has been written could potentially be interested in accessing the most current values of the data as well as potentially some history. This QoS policy controls whether the Service will actually make data available to late-joining readers. Note that although related, this does not strictly control what data the Service will maintain internally. That is, the Service may choose to maintain some data for its own purposes (e.g., flow control) and yet not make it available to late-joining readers if the org.omg.dds.core.policy.Durability is set to Durability.Kind#VOLATILE.
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 Durability.Kind are considered ordered such that VOLATILE < TRANSIENT_LOCAL < TRANSIENT < PERSISTENT.
For the purpose of implementing the Durability.Kind TRANSIENT or PERSISTENT, the service behaves "as if" for each org.omg.dds.topic.Topic that has TRANSIENT or PERSISTENT DURABILITY kind there was a corresponding "built-in" org.omg.dds.sub.DataReader and org.omg.dds.pub.DataWriter configured to have the same DURABILITY kind. In other words, it is "as if" somewhere in the system (possibly on a remote node) there was a "built-in durability DataReader" that subscribed to that Topic and a "built-in durability DataWriter" that published that Topic as needed for the new subscribers that join the system.
For each Topic, the built-in fictitious "persistence service" DataReader and DataWriter has its QoS configured from the Topic QoS of the corresponding Topic. In other words, it is "as-if" the service first did org.omg.dds.domain.DomainParticipant#findTopic(String, org.omg.dds.core.Duration) to access the Topic, and then used the QoS from the Topic to configure the fictitious built-in entities.
A consequence of this model is that the transient or persistence service can be configured by means of setting the proper QoS on the Topic.
For a given Topic, the usual request/offered semantics apply to the matching between any DataWriter in the system that writes the Topic and the built-in transient/persistent DataReader for that Topic; similarly for the built-in transient/persistent DataWriter for a Topic and any DataReader for the Topic. As a consequence, a DataWriter that has an incompatible QoS with respect to what the Topic specified will not send its data to the transient/persistent service, and a DataReader that has an incompatible QoS with respect to the specified in the Topic will not get data from it.
Incompatibilities between local DataReader/DataWriter entities and the corresponding fictitious "built-in transient/persistent entities" cause the org.omg.dds.core.status.RequestedIncompatibleQosStatus/ org.omg.dds.core.status.OfferedIncompatibleQosStatus to change and the corresponding Listener invocations and/or signaling of org.omg.dds.core.Condition and org.omg.dds.core.WaitSet objects as they would with non-fictitious entities.
The setting of the serviceCleanupDelay controls when the TRANSIENT or PERSISTENT service is able to remove all information regarding a data instances. Information on a data instances is maintained until the following conditions are met:
The utility of the serviceCleanupDelay is apparent in the situation where an application disposes an instance and it crashes before it has a chance to complete additional tasks related to the disposition. Upon restart the application may ask for initial data to regain its state and the delay introduced by the serviceCleanupDelay will allow the restarted application to receive the information on the disposed instance and complete the interrupted tasks.
Definition at line 119 of file Durability.java.
|
inherited |
Implemented in org.omg.dds.core.ServiceEnvironment, org.opensplice.dds.sub.ReflectionDataReader< TYPE, OUT_TYPE >, org.opensplice.dds.core.ModifiableTimeImpl, org.opensplice.dds.pub.ReflectionDataWriter< TYPE >, org.opensplice.dds.core.DurationImpl, org.opensplice.dds.topic.ContentFilteredTopicImpl< TYPE >, org.opensplice.dds.sub.ReadConditionImpl< TYPE >, org.opensplice.dds.core.EntityQosImpl< T extends QosPolicy >, org.opensplice.dds.type.TypeSupportImpl< TYPE >, org.opensplice.dds.topic.PublicationBuiltinTopicDataImpl, org.opensplice.dds.topic.SubscriptionBuiltinTopicDataImpl, org.opensplice.dds.topic.TopicBuiltinTopicDataImpl, org.opensplice.dds.domain.DomainParticipantFactoryImpl, org.opensplice.dds.core.QosProviderImpl, org.opensplice.dds.core.status.OfferedIncompatibleQosStatusImpl, org.opensplice.dds.core.status.RequestedIncompatibleQosStatusImpl, org.opensplice.dds.core.InstanceHandleImpl, org.opensplice.dds.core.StatusConditionImpl< T extends Entity<?, ?>, org.opensplice.dds.core.status.LivelinessChangedStatusImpl, org.opensplice.dds.core.status.PublicationMatchedStatusImpl, org.opensplice.dds.core.status.SubscriptionMatchedStatusImpl, org.opensplice.dds.sub.SampleImpl< TYPE >, org.opensplice.dds.core.policy.ShareImpl, org.opensplice.dds.core.status.OfferedDeadlineMissedStatusImpl, org.opensplice.dds.core.status.SampleRejectedStatusImpl, org.opensplice.dds.core.WaitSetImpl, org.opensplice.dds.topic.ParticipantBuiltinTopicDataImpl, org.opensplice.dds.core.status.RequestedDeadlineMissedStatusImpl, org.opensplice.dds.topic.BuiltinTopicKeyImpl, org.opensplice.dds.core.GuardConditionImpl, org.opensplice.dds.core.event.AllDataDisposedEventImpl< TYPE >, org.opensplice.dds.core.policy.QosPolicyCountImpl, org.opensplice.dds.core.status.InconsistentTopicStatusImpl, org.opensplice.dds.core.status.LivelinessLostStatusImpl, org.opensplice.dds.core.status.SampleLostStatusImpl, org.opensplice.dds.core.policy.QosPolicyImpl, org.opensplice.dds.core.status.AllDataDisposedStatusImpl, org.opensplice.dds.core.IllegalArgumentExceptionImpl, org.opensplice.dds.core.InconsistentPolicyExceptionImpl, org.opensplice.dds.core.policy.PolicyFactoryImpl, org.opensplice.dds.core.policy.TypeConsistencyEnforcementImpl, org.opensplice.dds.core.PreconditionNotMetExceptionImpl, org.opensplice.dds.core.AlreadyClosedExceptionImpl, org.opensplice.dds.core.IllegalOperationExceptionImpl, org.opensplice.dds.core.ImmutablePolicyExceptionImpl, org.opensplice.dds.core.NotEnabledExceptionImpl, org.opensplice.dds.core.OutOfResourcesExceptionImpl, org.opensplice.dds.core.DDSExceptionImpl, org.opensplice.dds.core.status.DataAvailableStatusImpl, and org.opensplice.dds.core.status.DataOnReadersStatusImpl.
Kind org.omg.dds.core.policy.Durability.getKind | ( | ) |
Implemented in org.opensplice.dds.core.policy.DurabilityImpl.
|
inherited |
Use the object returned by this method to evaluate the Request/Offer relationship with another instance of this policy.
If this policy is offered by a org.omg.dds.pub.DataWriter (or org.omg.dds.pub.Publisher), any other policy evaluated as less than or equal to it by the Comparable may be compatibly requested by a org.omg.dds.sub.DataReader (or org.omg.dds.sub.Subscriber). Similarly, if this policy is requested, any other policy that is greater than or equal to it may be compatibly offered.
SELF
. Durability org.omg.dds.core.policy.Durability.withKind | ( | Kind | kind | ) |
Copy this policy and override the value of the property.
kind | Specifies the type of durability from VOLATILE (short life) to PERSISTENT (long life) |
Implemented in org.opensplice.dds.core.policy.DurabilityImpl.
Durability org.omg.dds.core.policy.Durability.withPersistent | ( | ) |
Implemented in org.opensplice.dds.core.policy.DurabilityImpl.
Durability org.omg.dds.core.policy.Durability.withTransient | ( | ) |
Implemented in org.opensplice.dds.core.policy.DurabilityImpl.
Durability org.omg.dds.core.policy.Durability.withTransientLocal | ( | ) |
Implemented in org.opensplice.dds.core.policy.DurabilityImpl.
Durability org.omg.dds.core.policy.Durability.withVolatile | ( | ) |
Implemented in org.opensplice.dds.core.policy.DurabilityImpl.