OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
org.omg.dds.core.policy.Deadline Interface Reference

org.omg.dds.sub.DataReader expects a new sample updating the value of each instance at least once every deadline period. More...

Inheritance diagram for org.omg.dds.core.policy.Deadline:
Inheritance graph
Collaboration diagram for org.omg.dds.core.policy.Deadline:
Collaboration graph

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...
 

Detailed Description

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 &lt;= 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 &gt;= minimum_separation."

Definition at line 92 of file Deadline.java.

Member Function Documentation

◆ getEnvironment()

ServiceEnvironment org.omg.dds.core.DDSObject.getEnvironment ( )
inherited
Returns
the org.omg.dds.core.ServiceEnvironment object that directly or indirectly was used to create this object.

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.

◆ getPeriod()

Duration org.omg.dds.core.policy.Deadline.getPeriod ( )

◆ requestedOfferedContract()

Comparable<SELF> org.omg.dds.core.policy.RequestedOffered< SELF >.requestedOfferedContract ( )
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.

Returns
a Comparable object capable of evaluating the Request/Offer relationship between two instances of the QoS policy identified by the type parameter SELF.

◆ withPeriod() [1/2]

Deadline org.omg.dds.core.policy.Deadline.withPeriod ( Duration  period)

Copy this policy and override the value of the property.

Parameters
periodSpecifies a duration within which a new sample is expected or to be written.
Returns
a new Deadline policy

Implemented in org.opensplice.dds.core.policy.DeadlineImpl.

◆ withPeriod() [2/2]

Deadline org.omg.dds.core.policy.Deadline.withPeriod ( long  period,
TimeUnit  unit 
)

Copy this policy and override the value of the property.

Parameters
periodSpecifies the period within which a new sample is expected or to be written.
unitThe TimeUnit which the period describes (i.e. TimeUnit.SECONDS or TimeUnit.MILLISECONDS)
Returns
a new Deadline policy

Implemented in org.opensplice.dds.core.policy.DeadlineImpl.


The documentation for this interface was generated from the following file: