![]() |
OpenSplice Java 5 DCPS
v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
|
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...
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... | |
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.
Definition at line 78 of file TimeBasedFilter.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.TimeBasedFilter.getMinimumSeparation | ( | ) |
Implemented in org.opensplice.dds.core.policy.TimeBasedFilterImpl.
TimeBasedFilter org.omg.dds.core.policy.TimeBasedFilter.withMinimumSeparation | ( | Duration | minimumSeparation | ) |
Copy this policy and override the value of the property.
minimumSeparation | Specifies 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. |
Implemented in org.opensplice.dds.core.policy.TimeBasedFilterImpl.
TimeBasedFilter org.omg.dds.core.policy.TimeBasedFilter.withMinimumSeparation | ( | long | minimumSeparation, |
TimeUnit | unit | ||
) |
Copy this policy and override the value of the property.
minimumSeparation | Specifies 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. |
unit | The TimeUnit which the period describes (i.e. TimeUnit.SECONDS or TimeUnit.MILLISECONDS) |
Implemented in org.opensplice.dds.core.policy.TimeBasedFilterImpl.