![]() |
OpenSplice Java 5 DCPS
v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
|
org.omg.dds.sub.DataReader expects a new sample updating the value of each instance at least once every deadline period. More...
Public Member Functions | |
ServiceEnvironment | getEnvironment () |
Duration | getPeriod () |
Comparable< SELF > | requestedOfferedContract () |
Use the object returned by this method to evaluate the Request/Offer relationship with another instance of this policy. More... | |
Deadline | withPeriod (Duration period) |
Copy this policy and override the value of the property. More... | |
Deadline | withPeriod (long period, TimeUnit unit) |
Copy this policy and override the value of the property. More... | |
org.omg.dds.sub.DataReader expects a new sample updating the value of each instance at least once every deadline period.
The org.omg.dds.pub.DataWriter indicates that the application commits to write a new value (using the DataWriter) for each instance managed by the DataWriter at least once every deadline period. It is inconsistent for a DataReader to have a deadline period less than the result of its org.omg.dds.core.policy.TimeBasedFilter#getMinimumSeparation(). The default value of the deadline period is infinite.
Concerns: org.omg.dds.topic.Topic, org.omg.dds.sub.DataReader, org.omg.dds.pub.DataWriter
RxO: Yes
Changeable: Yes
This policy is useful for cases where a org.omg.dds.topic.Topic is expected to have each instance updated periodically. On the publishing side this setting establishes a contract that the application must meet. On the subscribing side the setting establishes a minimum requirement for the remote publishers that are expected to supply the data values.
When the Service "matches" a DataWriter and a DataReader it checks whether the settings are compatible (i.e., offered deadline period <= requested deadline period). If they are not, the two entities are informed (via the listener or org.omg.dds.core.Condition mechanism) of the incompatibility of the QoS settings and communication will not occur.
The exact consequences of a missed deadline depend on the Entity in which it occurred, and the OwnershipQosPolicy value of that Entity:
In case a DataWriter misses an instance deadline (regardless of its OwnershipQosPolicy setting), an offered_deadline_missed_status is raised, which can be detected by either a Listener or a StatusCondition. There are no further consequences.
In case a DataReader misses an instance deadline, a org.omg.dds.core.status.RequestedDeadlineMissedStatus is raised, which can be detected by either a Listener or a StatusCondition. In case the OwnershipQosPolicy is set to SHARED, there are no further consequences. In case the OwnershipQosPolicy is set to EXCLUSIVE, the ownership of that instance on that particular DataReader is transferred to the next available highest strength DataWriter, but this will have no impact on the instance_state whatsoever. So even when a deadline is missed for an instance that has no other (lower-strength) DataWriters to transfer ownership to, the instance_state remains unchanged. See also org.omg.dds.core.policy.Ownership.
The value offered is considered compatible with the value requested if and only if the inequality "offered deadline period <= requested deadline period" evaluates to true.
Changing an existing deadline period using the set_qos operation on either the DataWriter or DataReader may have consequences for the connectivity between readers and writers, depending on their RxO values. Consider a writer with deadline period Pw and a reader with deadline period Pr, where Pw <= Pr. In this case a connection between that reader and that writer is established. Now suppose Pw is changed so that Pw>Pr, then the existing connection between reader and writer will be lost, and the reader will behave as if the writer unregistered all its instances, transferring the ownership of these instances when appropriate. See also org.omg.dds.core.policy.Ownership.
The setting of the DEADLINE policy must be set consistently with that of the org.omg.dds.core.policy.TimeBasedFilter. For these two policies to be consistent the settings must be such that "deadline period >= minimum_separation."
Definition at line 92 of file Deadline.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.
Duration org.omg.dds.core.policy.Deadline.getPeriod | ( | ) |
Implemented in org.opensplice.dds.core.policy.DeadlineImpl.
|
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
. Copy this policy and override the value of the property.
period | Specifies a duration within which a new sample is expected or to be written. |
Implemented in org.opensplice.dds.core.policy.DeadlineImpl.
Deadline org.omg.dds.core.policy.Deadline.withPeriod | ( | long | period, |
TimeUnit | unit | ||
) |
Copy this policy and override the value of the property.
period | Specifies the period within which a new sample is expected or to be written. |
unit | The TimeUnit which the period describes (i.e. TimeUnit.SECONDS or TimeUnit.MILLISECONDS) |
Implemented in org.opensplice.dds.core.policy.DeadlineImpl.