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

Filter that allows a org.omg.dds.sub.DataReader to specify that it is interested only in (potentially) a subset of the values of the data. More...

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

Public Member Functions

ServiceEnvironment getEnvironment ()
 
Duration getMinimumSeparation ()
 
TimeBasedFilter withMinimumSeparation (Duration minimumSeparation)
 Copy this policy and override the value of the property. More...
 
TimeBasedFilter withMinimumSeparation (long minimumSeparation, TimeUnit unit)
 Copy this policy and override the value of the property. More...
 

Detailed Description

Filter that allows a org.omg.dds.sub.DataReader to specify that it is interested only in (potentially) a subset of the values of the data.

The filter states that the DataReader does not want to receive more than one value each minimumSeparation, regardless of how fast the changes occur. It is inconsistent for a DataReader to have a minimumSeparation longer than the result of its org.omg.dds.core.policy.Deadline#getPeriod(). By default, minimumSeparation = 0, indicating that the DataReader is potentially interested in all values.

Concerns: org.omg.dds.sub.DataReader

RxO: N/A

Changeable: Yes

The TIME_BASED_FILTER applies to each instance separately, that is, the constraint is that the DataReader does not want to see more than one sample of each instance per minumumSeparation period.

This setting allows a DataReader to further decouple itself from the org.omg.dds.pub.DataWriter objects. It can be used to protect applications that are running on a heterogeneous network where some nodes are capable of generating data much faster than others can consume it. It also accommodates the fact that for fast-changing data different subscribers may have different requirements as to how frequently they need to be notified of the most current values.

The setting of a TIME_BASED_FILTER, that is, the selection of a minimumSeparation with a value greater than zero is compatible with all settings of the HISTORY and RELIABILITY QoS. The TIME_BASED_FILTER specifies the samples that are of interest to the DataReader. The HISTORY and RELIABILITY QoS affect the behavior of the middleware with respect to the samples that have been determined to be of interest to the DataReader, that is, they apply after the TIME_BASED_FILTER has been applied.

In the case where the reliability QoS kind is RELIABLE then in steady state, defined as the situation where the DataWriter does not write new samples for a period "long" compared to the minimumSeparation, the system should guarantee delivery the last sample to the DataReader.

The setting of the TIME_BASED_FILTER minimumSeparation must be consistent with the DEADLINE period. For these two QoS policies to be consistent they must verify that "period >= minimumSeparation." An attempt to set these policies in an inconsistent manner when an entity is created via a org.omg.dds.core.Entity#setQos(org.omg.dds.core.EntityQos) operation will cause the operation to fail.

See also
Deadline
History
Reliability

Definition at line 78 of file TimeBasedFilter.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.

◆ getMinimumSeparation()

Duration org.omg.dds.core.policy.TimeBasedFilter.getMinimumSeparation ( )
Returns
the minimum separation duration.

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

◆ withMinimumSeparation() [1/2]

TimeBasedFilter org.omg.dds.core.policy.TimeBasedFilter.withMinimumSeparation ( Duration  minimumSeparation)

Copy this policy and override the value of the property.

Parameters
minimumSeparationSpecifies a duration which is the minimum period between received samples to be passed through the filter. The default value is 0, meaning that all samples are accepted.
Returns
a new TimeBasedFilter policy

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

◆ withMinimumSeparation() [2/2]

TimeBasedFilter org.omg.dds.core.policy.TimeBasedFilter.withMinimumSeparation ( long  minimumSeparation,
TimeUnit  unit 
)

Copy this policy and override the value of the property.

Parameters
minimumSeparationSpecifies a long minimumSeparation which is the minimum period between received samples to be passed through the filter. The default value is 0, meaning that all samples are accepted.
unitThe TimeUnit which the period describes (i.e. TimeUnit.SECONDS or TimeUnit.MILLISECONDS)
Returns
a new TimeBasedFilter policy

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


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