OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
DeadlineImpl.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;
26 import org.omg.dds.core.policy.Deadline;
30 
31 public class DeadlineImpl extends QosPolicyImpl implements Deadline {
32  private static final long serialVersionUID = -3533726043203132941L;
33  private final Duration period;
34 
36  super(environment);
37  this.period = environment.getSPI().infiniteDuration();
38  }
39 
41  TimeUnit unit) {
42  super(environment);
43  this.period = Duration.newDuration(period, unit, environment);
44  }
45 
47  super(environment);
48  this.period = period;
49 
50  if (period == null) {
51  throw new IllegalArgumentExceptionImpl(environment,
52  "Supplied invalid period.");
53  }
54  }
55 
56  @Override
57  public Comparable<Deadline> requestedOfferedContract() {
58  return this;
59  }
60 
61  @Override
62  public int compareTo(Deadline o) {
63  return this.period.compareTo(o.getPeriod());
64  }
65 
66  @Override
67  public boolean equals(Object other) {
68  if (!(other instanceof DeadlineImpl)) {
69  return false;
70  }
71  return this.period.equals(((DeadlineImpl) other).period);
72  }
73 
74  @Override
75  public int hashCode() {
76  return 31 * 17 + this.period.hashCode();
77  }
78 
79  @Override
80  public Duration getPeriod() {
81  return this.period;
82  }
83 
84  @Override
85  public Deadline withPeriod(Duration period) {
86  return new DeadlineImpl(this.environment, period);
87  }
88 
89  @Override
90  public Deadline withPeriod(long period, TimeUnit unit) {
91  return new DeadlineImpl(this.environment, period, unit);
92  }
93 
94  @Override
95  public Class<? extends QosPolicy> getPolicyClass() {
96  return Deadline.class;
97  }
98 }
DeadlineImpl(OsplServiceEnvironment environment)
DeadlineImpl(OsplServiceEnvironment environment, Duration period)
DeadlineImpl(OsplServiceEnvironment environment, long period, TimeUnit unit)
Deadline withPeriod(long period, TimeUnit unit)
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
Comparable< Deadline > requestedOfferedContract()
A span of elapsed time expressed with nanosecond precision.
Definition: Duration.java:35
Class<? extends QosPolicy > getPolicyClass()
org.omg.dds.sub.DataReader expects a new sample updating the value of each instance at least once eve...
Definition: Deadline.java:92
Deadline withPeriod(Duration period)
Copy this policy and override the value of the property.
static Duration newDuration(long duration, TimeUnit unit, ServiceEnvironment env)
Construct a time duration of the given magnitude.
Definition: Duration.java:62