OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
TimeBasedFilterImpl.java
Go to the documentation of this file.
1 /*
2  * Vortex OpenSplice
3  *
4  * This software and documentation are Copyright 2006 to 2024 ADLINK
5  * Technology Limited, its affiliated companies and licensors. All rights
6  * reserved.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 package org.opensplice.dds.core.policy;
22 
23 import java.util.concurrent.TimeUnit;
24 
25 import org.omg.dds.core.Duration;
30 
31 public class TimeBasedFilterImpl extends QosPolicyImpl implements
33  private static final long serialVersionUID = -7710151999422912449L;
34  private final Duration minimumSeparation;
35 
37  super(environment);
38  this.minimumSeparation = environment.getSPI().zeroDuration();
39  }
40 
42  Duration minimumSeparation) {
43  super(environment);
44 
45  if(minimumSeparation == null){
46  throw new IllegalArgumentExceptionImpl(environment,
47  "Supplied invalid mimimumSeparation duration.");
48  }
49  this.minimumSeparation = minimumSeparation;
50  }
51 
52  @Override
54  return this.minimumSeparation;
55  }
56 
57  @Override
58  public TimeBasedFilter withMinimumSeparation(Duration minimumSeparation) {
59  return new TimeBasedFilterImpl(this.environment, minimumSeparation);
60  }
61 
62  @Override
63  public TimeBasedFilter withMinimumSeparation(long minimumSeparation,
64  TimeUnit unit) {
65  return new TimeBasedFilterImpl(this.environment, this.environment
66  .getSPI().newDuration(minimumSeparation, unit));
67  }
68 
69  @Override
70  public Class<? extends QosPolicy> getPolicyClass() {
71  return TimeBasedFilter.class;
72  }
73 
74  @Override
75  public boolean equals(Object other) {
76  if (!(other instanceof TimeBasedFilterImpl)) {
77  return false;
78  }
79  return this.minimumSeparation
80  .equals(((TimeBasedFilterImpl) other).minimumSeparation);
81  }
82 
83  @Override
84  public int hashCode() {
85  return 31 * 17 + this.minimumSeparation.hashCode();
86  }
87 }
Filter that allows a org.omg.dds.sub.DataReader to specify that it is interested only in (potentially...
TimeBasedFilter withMinimumSeparation(Duration minimumSeparation)
Copy this policy and override the value of the property.
This class is the abstract root for all the QoS policies.
Definition: QosPolicy.java:118
TimeBasedFilter withMinimumSeparation(long minimumSeparation, TimeUnit unit)
Copy this policy and override the value of the property.
TimeBasedFilterImpl(OsplServiceEnvironment environment, Duration minimumSeparation)
A span of elapsed time expressed with nanosecond precision.
Definition: Duration.java:35
TimeBasedFilterImpl(OsplServiceEnvironment environment)