public interface TimeBasedFilter extends QosPolicy.ForDataReader
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 Deadline.getPeriod()
. By default,
minimumSeparation = 0, indicating that the DataReader is potentially
interested in all values.
Concerns: 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
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
Entity.setQos(org.omg.dds.core.EntityQos)
operation will cause the
operation to fail.Deadline
,
History
,
Reliability
QosPolicy.ForDataReader, QosPolicy.ForDataWriter, QosPolicy.ForDomainParticipant, QosPolicy.ForDomainParticipantFactory, QosPolicy.ForPublisher, QosPolicy.ForSubscriber, QosPolicy.ForTopic
Modifier and Type | Method and Description |
---|---|
Duration |
getMinimumSeparation() |
TimeBasedFilter |
withMinimumSeparation(Duration minimumSeparation)
Copy this policy and override the value of the property.
|
TimeBasedFilter |
withMinimumSeparation(long minimumSeparation,
java.util.concurrent.TimeUnit unit)
Copy this policy and override the value of the property.
|
getEnvironment
Duration getMinimumSeparation()
TimeBasedFilter withMinimumSeparation(Duration minimumSeparation)
TimeBasedFilter withMinimumSeparation(long minimumSeparation, java.util.concurrent.TimeUnit unit)
Copyright © 2010 Real-Time Innovations, Inc. (RTI)
Copyright © 2010 PrismTech, Ltd.
Copyright © 2010 Object Management Group, Inc. (OMG)
All Rights Reserved.