OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
AbstractDataReader.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.sub;
22 
23 import java.lang.reflect.Field;
24 import java.util.ArrayList;
25 import java.util.Arrays;
26 import java.util.Collection;
27 import java.util.HashMap;
28 import java.util.HashSet;
29 import java.util.List;
30 import java.util.Set;
31 import java.util.concurrent.TimeUnit;
32 import java.util.concurrent.TimeoutException;
33 
35 import org.omg.dds.core.Duration;
38 import org.omg.dds.core.Time;
45 import org.omg.dds.core.status.Status;
47 import org.omg.dds.sub.DataReader;
49 import org.omg.dds.sub.DataReaderQos;
51 import org.omg.dds.sub.ReadCondition;
52 import org.omg.dds.sub.Sample;
53 import org.omg.dds.sub.Sample.Iterator;
66 
67 public abstract class AbstractDataReader<TYPE>
68  extends
69  DomainEntityImpl<DDS.DataReader, SubscriberImpl, DDS.Subscriber, DataReaderQos, DataReaderListener<TYPE>, DataReaderListenerImpl<TYPE>>
70  implements org.opensplice.dds.sub.DataReader<TYPE> {
71 
73  protected final HashMap<DDS.Condition, ReadConditionImpl<TYPE>> conditions;
74  protected final HashSet<AbstractIterator<TYPE>> iterators;
75  protected final Selector<TYPE> selector;
76 
77 
80  super(environment, parent, parent.getOld());
81 
82  this.topicDescription = topicDescription;
83  this.conditions = new HashMap<DDS.Condition, ReadConditionImpl<TYPE>>();
84  this.iterators = new HashSet<AbstractIterator<TYPE>>();
85  this.selector = new SelectorImpl<TYPE>(environment, this);
86  }
87 
88  public void registerIterator(AbstractIterator<TYPE> iterator) {
89  synchronized (this.iterators) {
90  this.iterators.add(iterator);
91  }
92  }
93 
95  synchronized (this.iterators) {
96  this.iterators.remove(iterator);
97  }
98  }
99 
101 
102  @Override
104  ReadConditionImpl<TYPE> condition;
105 
106  synchronized (this.conditions) {
107  try {
108  condition = new ReadConditionImpl<TYPE>(this.environment, this,
109  (DataStateImpl) states);
110  } catch (ClassCastException e) {
112  "Non-OpenSplice DataState not supported.");
113  }
114  this.conditions.put(condition.getOld(), condition);
115  }
116  return condition;
117  }
118 
119  @Override
120  public QueryCondition<TYPE> createQueryCondition(String queryExpression,
121  List<String> queryParameters) {
122  return this.createQueryCondition(
123  DataStateImpl.getAnyStateDataState(this.environment),
124  queryExpression, queryParameters);
125  }
126 
127  @Override
129  String queryExpression, List<String> queryParameters) {
131 
132  try {
133  synchronized (this.conditions) {
134  query = new QueryConditionImpl<TYPE>(this.environment, this,
135  (DataStateImpl) states, queryExpression,
136  queryParameters);
137 
138  this.conditions.put(query.getOld(), query);
139  }
140  } catch (ClassCastException e) {
142  "Non-OpenSplice DataState not supported.");
143  }
144 
145  return query;
146  }
147 
148  @Override
149  public QueryCondition<TYPE> createQueryCondition(String queryExpression,
150  String... queryParameters) {
151  return createQueryCondition(queryExpression,
152  Arrays.asList(queryParameters));
153  }
154 
155  @Override
157  String queryExpression, String... queryParameters) {
158  QueryCondition<TYPE> result;
159 
160  if (queryParameters == null) {
161  result = createQueryCondition(states, queryExpression,
162  new ArrayList<String>());
163  } else {
164  result = createQueryCondition(states, queryExpression,
165  Arrays.asList(queryParameters));
166  }
167  return result;
168  }
169 
171  synchronized (this.conditions) {
172  DDS.ReadCondition old = condition.getOld();
173  int rc = this.getOld().delete_readcondition(old);
174  this.conditions.remove(old);
176  "Condition already closed.");
177  }
178 
179  }
180 
181  @SuppressWarnings("unchecked")
182  @Override
183  public void closeContainedEntities() {
184  synchronized (this.conditions) {
185  HashMap<DDS.Condition, ReadConditionImpl<TYPE>> copyConditions = new HashMap<DDS.Condition, ReadConditionImpl<TYPE>>(this.conditions);
186  for (ReadConditionImpl<TYPE> condition : copyConditions.values()) {
187  /*
188  * Intentionally ignoring potential errors during deletion as
189  * application may concurrently close conditions.
190  */
191  this.getOld().delete_readcondition(condition.getOld());
192  }
193  }
194  HashSet<AbstractIterator<TYPE>> clones;
195 
196  synchronized (this.iterators) {
197  clones = (HashSet<AbstractIterator<TYPE>>) this.iterators.clone();
198  }
199  for (AbstractIterator<TYPE> iterator : clones) {
200  try {
201  iterator.close();
202  } catch (AlreadyClosedException a) {
203  /* Entity may be closed concurrently by application */
204  }
205  }
206  }
207 
208  @Override
209  protected void destroy() {
210  this.closeContainedEntities();
211  this.parent.destroyDataReader(this);
212  }
213 
214  @Override
216  return this.parent;
217  }
218 
219  private void setListener(DataReaderListener<TYPE> listener, int mask) {
220  DataReaderListenerImpl<TYPE> wrapperListener;
221  int rc;
222 
223  if (listener != null) {
224  wrapperListener = new DataReaderListenerImpl<TYPE>(
225  this.environment, this, listener);
226  } else {
227  wrapperListener = null;
228  }
229  rc = this.getOld().set_listener(wrapperListener, mask);
231  "DataReader.setListener() failed.");
232 
233  this.listener = wrapperListener;
234  }
235 
236  @Override
237  public void setListener(DataReaderListener<TYPE> listener) {
238  this.setListener(listener, StatusConverter.getAnyMask());
239  }
240 
241  @Override
242  public void setListener(DataReaderListener<TYPE> listener,
243  Collection<Class<? extends Status>> statuses) {
244  this.setListener(listener,
245  StatusConverter.convertMask(this.environment, statuses));
246  }
247 
248  @Override
249  public void setListener(DataReaderListener<TYPE> listener,
250  Class<? extends Status>... statuses) {
251  this.setListener(listener,
252  StatusConverter.convertMask(this.environment, statuses));
253  }
254 
255  @Override
257  return this.topicDescription;
258  }
259 
260  @Override
261  public void setProperty(String key, String value) {
262  int rc = this.getOld().set_property(new DDS.Property(key, value));
264  "DataReader.setProperty() failed.");
265  }
266 
267  @Override
268  public String getProperty(String key) {
269  DDS.PropertyHolder holder = new DDS.PropertyHolder();
270  int rc = this.getOld().get_property(holder);
272  "DataReader.getProperty() failed.");
273 
274  return holder.value.value;
275  }
276 
277  @SuppressWarnings("unchecked")
278  @Override
279  public <OTHER> DataReader<OTHER> cast() {
280  DataReader<OTHER> other;
281  try {
282  other = (DataReader<OTHER>) this;
283  } catch (ClassCastException cce) {
285  "Unable to perform requested cast.");
286  }
287  return other;
288  }
289 
290  @Override
292  return this.getReflectionReader().getQos();
293  }
294 
295  @Override
296  public void setQos(DataReaderQos qos) {
297  this.getReflectionReader().setQos(qos);
298  }
299 
300  @Override
302  return this.getReflectionReader().getSampleRejectedStatus();
303  }
304 
305  @Override
307  return this.getReflectionReader().getLivelinessChangedStatus();
308  }
309 
310  @Override
312  return this.getReflectionReader().getRequestedDeadlineMissedStatus();
313  }
314 
315  @Override
317  return this.getReflectionReader().getRequestedIncompatibleQosStatus();
318  }
319 
320  @Override
322  return this.getReflectionReader().getSubscriptionMatchedStatus();
323  }
324 
325  @Override
327  return this.getReflectionReader().getSampleLostStatus();
328  }
329 
330  @Override
331  public void waitForHistoricalData(Duration maxWait) throws TimeoutException {
332  this.getReflectionReader().waitForHistoricalData(maxWait);
333  }
334 
335  @Override
336  public void waitForHistoricalData(long maxWait, TimeUnit unit)
337  throws TimeoutException {
338  this.getReflectionReader().waitForHistoricalData(maxWait, unit);
339  }
340 
341  @Override
342  public void waitForHistoricalData(String filterExpression,
343  List<String> filterParameters, Time minSourceTimestamp,
344  Time maxSourceTimestamp, ResourceLimits resourceLimits,
345  Duration maxWait) throws TimeoutException {
346  this.getReflectionReader().waitForHistoricalData(filterExpression,
347  filterParameters, minSourceTimestamp, maxSourceTimestamp,
348  resourceLimits, maxWait);
349  }
350 
351  @Override
352  public void waitForHistoricalData(String filterExpression,
353  List<String> filterParameters, Time minSourceTimestamp,
354  Time maxSourceTimestamp, Duration maxWait) throws TimeoutException {
355  this.getReflectionReader().waitForHistoricalData(filterExpression,
356  filterParameters, minSourceTimestamp, maxSourceTimestamp,
357  new ResourceLimitsImpl(this.environment), maxWait);
358  }
359 
360  @Override
361  public void waitForHistoricalData(String filterExpression,
362  List<String> filterParameters, ResourceLimits resourceLimits,
363  Duration maxWait) throws TimeoutException {
364  this.getReflectionReader().waitForHistoricalData(filterExpression,
365  filterParameters, Time.invalidTime(this.environment),
366  Time.invalidTime(this.environment), resourceLimits, maxWait);
367  }
368 
369  @Override
370  public void waitForHistoricalData(String filterExpression,
371  List<String> filterParameters, Duration maxWait)
372  throws TimeoutException {
373  this.getReflectionReader().waitForHistoricalData(filterExpression,
374  filterParameters, Time.invalidTime(this.environment),
376  new ResourceLimitsImpl(this.environment), maxWait);
377  }
378 
379  @Override
380  public void waitForHistoricalData(Time minSourceTimestamp,
381  Time maxSourceTimestamp, ResourceLimits resourceLimits,
382  Duration maxWait) throws TimeoutException {
383  this.getReflectionReader()
384  .waitForHistoricalData(null, null, minSourceTimestamp,
385  maxSourceTimestamp, resourceLimits, maxWait);
386 
387  }
388 
389  @Override
390  public void waitForHistoricalData(Time minSourceTimestamp,
391  Time maxSourceTimestamp, Duration maxWait) throws TimeoutException {
392  this.getReflectionReader().waitForHistoricalData(null, null,
393  minSourceTimestamp, maxSourceTimestamp,
394  new ResourceLimitsImpl(this.environment), maxWait);
395 
396  }
397 
398  @Override
399  public void waitForHistoricalData(ResourceLimits resourceLimits,
400  Duration maxWait) throws TimeoutException {
401  this.getReflectionReader().waitForHistoricalData(null, null,
402  Time.invalidTime(this.environment),
403  Time.invalidTime(this.environment), resourceLimits, maxWait);
404 
405  }
406 
407  @Override
408  public void waitForHistoricalData(String filterExpression,
409  List<String> filterParameters, Time minSourceTimestamp,
410  Time maxSourceTimestamp, ResourceLimits resourceLimits,
411  long maxWait, TimeUnit unit) throws TimeoutException {
412  this.getReflectionReader().waitForHistoricalData(filterExpression,
413  filterParameters, minSourceTimestamp, maxSourceTimestamp,
414  resourceLimits, maxWait, unit);
415  }
416 
417  @Override
418  public void waitForHistoricalData(String filterExpression,
419  List<String> filterParameters, Time minSourceTimestamp,
420  Time maxSourceTimestamp, long maxWait, TimeUnit unit)
421  throws TimeoutException {
422  this.getReflectionReader().waitForHistoricalData(filterExpression,
423  filterParameters, minSourceTimestamp, maxSourceTimestamp,
424  new ResourceLimitsImpl(this.environment), maxWait, unit);
425  }
426 
427  @Override
428  public void waitForHistoricalData(String filterExpression,
429  List<String> filterParameters, ResourceLimits resourceLimits,
430  long maxWait, TimeUnit unit) throws TimeoutException {
431  this.getReflectionReader().waitForHistoricalData(filterExpression,
432  filterParameters, Time.invalidTime(this.environment),
433  Time.invalidTime(this.environment), resourceLimits, maxWait,
434  unit);
435  }
436 
437  @Override
438  public void waitForHistoricalData(String filterExpression,
439  List<String> filterParameters, long maxWait, TimeUnit unit)
440  throws TimeoutException {
441  this.getReflectionReader().waitForHistoricalData(filterExpression,
442  filterParameters, Time.invalidTime(this.environment),
444  new ResourceLimitsImpl(this.environment), maxWait, unit);
445  }
446 
447  @Override
448  public void waitForHistoricalData(Time minSourceTimestamp,
449  Time maxSourceTimestamp, ResourceLimits resourceLimits,
450  long maxWait, TimeUnit unit) throws TimeoutException {
451  this.getReflectionReader().waitForHistoricalData(null, null,
452  minSourceTimestamp, maxSourceTimestamp, resourceLimits,
453  maxWait, unit);
454  }
455 
456  @Override
457  public void waitForHistoricalData(Time minSourceTimestamp,
458  Time maxSourceTimestamp, long maxWait, TimeUnit unit)
459  throws TimeoutException {
460  this.getReflectionReader().waitForHistoricalData(null, null,
461  minSourceTimestamp, maxSourceTimestamp,
462  new ResourceLimitsImpl(this.environment), maxWait, unit);
463  }
464 
465  @Override
466  public void waitForHistoricalData(ResourceLimits resourceLimits,
467  long maxWait, TimeUnit unit) throws TimeoutException {
468  this.getReflectionReader().waitForHistoricalData(null, null,
469  Time.invalidTime(this.environment),
470  Time.invalidTime(this.environment), resourceLimits, maxWait,
471  unit);
472  }
473 
474  @Override
475  public Set<InstanceHandle> getMatchedPublications() {
476  return this.getReflectionReader().getMatchedPublications();
477  }
478 
479  @Override
481  InstanceHandle publicationHandle) {
482  return this.getReflectionReader()
483  .getMatchedPublicationData(publicationHandle);
484  }
485 
486  @Override
488  return this.selector;
489  }
490 
491  public void returnLoan(Object sampleSeqHolder,
492  DDS.SampleInfoSeqHolder infoSeqHolder) {
493  this.getReflectionReader().returnLoan(sampleSeqHolder, infoSeqHolder);
494  }
495 
496  @Override
497  public Iterator<TYPE> read() {
498  return this.getReflectionReader().read();
499  }
500 
501  @Override
503  return this.getReflectionReader().read(query);
504  }
505 
506  @Override
507  public Iterator<TYPE> read(int maxSamples) {
508  return this.getReflectionReader().read(maxSamples);
509  }
510 
511  @Override
512  public List<Sample<TYPE>> read(List<Sample<TYPE>> samples) {
513  return this.getReflectionReader().read(samples);
514  }
515 
516  @Override
517  public List<Sample<TYPE>> read(List<Sample<TYPE>> samples,
518  org.omg.dds.sub.DataReader.Selector<TYPE> selector) {
519  return this.getReflectionReader().read(samples, selector);
520  }
521 
522  @Override
523  public Iterator<TYPE> take() {
524  return this.getReflectionReader().take();
525  }
526 
527  @Override
528  public Iterator<TYPE> take(int maxSamples) {
529  return this.getReflectionReader().take(maxSamples);
530  }
531 
532  @Override
534  return this.getReflectionReader().take(query);
535  }
536 
537  @Override
538  public List<Sample<TYPE>> take(List<Sample<TYPE>> samples) {
539  return this.getReflectionReader().take(samples);
540  }
541 
542  @Override
543  public List<Sample<TYPE>> take(List<Sample<TYPE>> samples,
544  org.omg.dds.sub.DataReader.Selector<TYPE> selector) {
545  return this.getReflectionReader().take(samples, selector);
546  }
547 
548  @Override
550  DDS.StatusCondition oldCondition = this.getOld().get_statuscondition();
551 
552  if (oldCondition == null) {
554  }
556  oldCondition, this);
557  }
558 
559  public abstract PreAllocator<TYPE> getPreAllocator(
560  List<Sample<TYPE>> samples, Class<?> sampleSeqHolderClz,
561  Field sampleSeqHolderValueField);
562 
563  public abstract Sample.Iterator<?> createIterator(
564  Object sampleSeqHolder,
565  Field sampleSeqHolderValueField, DDS.SampleInfoSeqHolder info);
566 }
void setListener(DataReaderListener< TYPE > listener)
Since a org.omg.dds.sub.DataReader is a kind of org.omg.dds.core.Entity, it has the ability to have a...
A sample has been lost (never received).
void setProperty(String key, String value)
A DataReader allows the application (1) to declare the data it wishes to receive (i.e., make a subscription) and (2) to access the data received by the attached org.omg.dds.sub.Subscriber.
Iterator< TYPE > take(int maxSamples)
This operation accesses a collection of samples from this DataReader.
void waitForHistoricalData(String filterExpression, List< String > filterParameters, Time minSourceTimestamp, Time maxSourceTimestamp, long maxWait, TimeUnit unit)
void waitForHistoricalData(long maxWait, TimeUnit unit)
This operation is intended only for DataReader entities for which org.omg.dds.core.policy.Durability#getKind() is not org.omg.dds.core.policy.Durability.Kind#VOLATILE.
A Subscriber is the object responsible for the actual reception of the data resulting from its subscr...
Definition: Subscriber.java:69
void waitForHistoricalData(String filterExpression, List< String > filterParameters, ResourceLimits resourceLimits, long maxWait, TimeUnit unit)
RequestedDeadlineMissedStatus getRequestedDeadlineMissedStatus()
This operation obtains the RequestedDeadlineMissedStatus object of the DataReader.
A Sample represents an atom of data information (i.e., one value for one instance) as returned by a o...
Definition: Sample.java:116
A StatusCondition object is an immutable object that specifies Condition that is associated with each...
void waitForHistoricalData(String filterExpression, List< String > filterParameters, Duration maxWait)
void waitForHistoricalData(String filterExpression, List< String > filterParameters, Time minSourceTimestamp, Time maxSourceTimestamp, ResourceLimits resourceLimits, Duration maxWait)
SubscriptionMatchedStatus getSubscriptionMatchedStatus()
This operation obtains the SubscriptionMatchedStatus object of the DataReader.
Iterator< TYPE > read(int maxSamples)
This operation accesses a collection of samples from this DataReader.
void waitForHistoricalData(String filterExpression, List< String > filterParameters, long maxWait, TimeUnit unit)
void waitForHistoricalData(String filterExpression, List< String > filterParameters, ResourceLimits resourceLimits, Duration maxWait)
void waitForHistoricalData(ResourceLimits resourceLimits, long maxWait, TimeUnit unit)
List< Sample< TYPE > > read(List< Sample< TYPE >> samples, org.omg.dds.sub.DataReader.Selector< TYPE > selector)
void deregisterIterator(AbstractIterator< TYPE > iterator)
void waitForHistoricalData(Time minSourceTimestamp, Time maxSourceTimestamp, ResourceLimits resourceLimits, Duration maxWait)
void waitForHistoricalData(Duration maxWait)
This operation is intended only for DataReader entities for which org.omg.dds.core.policy.Durability#getKind() is not org.omg.dds.core.policy.Durability.Kind#VOLATILE.
final HashSet< AbstractIterator< TYPE > > iterators
A DataState encapsulates sets of sample states, view states, and instance states as a convenience...
List< Sample< TYPE > > take(List< Sample< TYPE >> samples, org.omg.dds.sub.DataReader.Selector< TYPE > selector)
void waitForHistoricalData(String filterExpression, List< String > filterParameters, Time minSourceTimestamp, Time maxSourceTimestamp, Duration maxWait)
void setListener(DataReaderListener< TYPE > listener, Class<? extends Status >... statuses)
AbstractDataReader(OsplServiceEnvironment environment, SubscriberImpl parent, TopicDescriptionExt< TYPE > topicDescription)
QueryCondition< TYPE > createQueryCondition(DataState states, String queryExpression, String... queryParameters)
This operation creates a QueryCondition.
static Set< Class<? extends Status > > convertMask(OsplServiceEnvironment environment, int state)
List< Sample< TYPE > > read(List< Sample< TYPE >> samples)
This operation accesses a collection of samples from this DataReader.
void waitForHistoricalData(Time minSourceTimestamp, Time maxSourceTimestamp, long maxWait, TimeUnit unit)
void waitForHistoricalData(Time minSourceTimestamp, Time maxSourceTimestamp, Duration maxWait)
void waitForHistoricalData(String filterExpression, List< String > filterParameters, Time minSourceTimestamp, Time maxSourceTimestamp, ResourceLimits resourceLimits, long maxWait, TimeUnit unit)
SampleRejectedStatus getSampleRejectedStatus()
This operation obtains the SampleRejectedStatus object of the DataReader.
RequestedIncompatibleQosStatus getRequestedIncompatibleQosStatus()
This operation obtains the RequestedIncompatibleQosStatus object of the DataReader.
QueryCondition< TYPE > createQueryCondition(String queryExpression, List< String > queryParameters)
This operation creates a QueryCondition.
PublicationBuiltinTopicData getMatchedPublicationData(InstanceHandle publicationHandle)
This operation retrieves information on a publication that is currently "associated" with the DataRea...
abstract Sample.Iterator<?> createIterator(Object sampleSeqHolder, Field sampleSeqHolderValueField, DDS.SampleInfoSeqHolder info)
abstract ReflectionDataReader<?, TYPE > getReflectionReader()
void returnLoan(Object sampleSeqHolder, DDS.SampleInfoSeqHolder infoSeqHolder)
void registerIterator(AbstractIterator< TYPE > iterator)
An opaque handle that can be used to refer to a local or remote entity.
static void checkReturnCode(int retCode, OsplServiceEnvironment environment, String message)
Definition: Utilities.java:33
A org.omg.dds.core.policy.QosPolicy value was incompatible with what is offered.
Iterator< TYPE > read(org.omg.dds.sub.DataReader.Selector< TYPE > query)
final TopicDescriptionExt< TYPE > topicDescription
ReadCondition< TYPE > createReadCondition(DataState states)
This operation creates a ReadCondition.
ReadCondition objects are conditions specifically dedicated to read operations and attached to one or...
This class contains the statistics about the discovered number of org.omg.dds.pub.DataWriters that are compatible with the org.omg.dds.sub.DataReader to which the Status is attached.
Iterator< TYPE > take()
This operation accesses a collection of samples from this DataReader.
void waitForHistoricalData(ResourceLimits resourceLimits, Duration maxWait)
The target object was previously closed and therefore cannot process the operation.
void setListener(DataReaderListener< TYPE > listener, Collection< Class<? extends Status >> statuses)
QueryCondition< TYPE > createQueryCondition(DataState states, String queryExpression, List< String > queryParameters)
This operation creates a QueryCondition.
void destroyReadCondition(ReadConditionImpl< TYPE > condition)
final HashMap< DDS.Condition, ReadConditionImpl< TYPE > > conditions
List< Sample< TYPE > > take(List< Sample< TYPE >> samples)
This operation accesses a collection of samples from this DataReader.
static Time invalidTime(ServiceEnvironment env)
Definition: Time.java:81
static DataStateImpl getAnyStateDataState(OsplServiceEnvironment env)
The DCPSPublication topic communicates the existence of datawriters by means of the PublicationBuilti...
The liveliness of one or more org.omg.dds.pub.DataWriters that were writing instances read through th...
StatusCondition< DataReader< TYPE > > getStatusCondition()
A span of elapsed time expressed with nanosecond precision.
Definition: Duration.java:35
void closeContainedEntities()
This operation closes all the entities that were created by means of the "create" operations on the D...
LivelinessChangedStatus getLivelinessChangedStatus()
This operation obtains the LivelinessChangedStatus object of the DataReader.
A (received) sample has been rejected.
org.omg.dds.sub.DataReader.Selector< TYPE > select()
Provides a Selector that can be used to refine what read or take methods return.
Specifies the resources that the Service can consume in order to meet the requested QoS...
static void throwLastErrorException(OsplServiceEnvironment environment)
Definition: Utilities.java:182
This interface is the base for org.omg.dds.topic.Topic, org.omg.dds.topic.ContentFilteredTopic, and org.omg.dds.topic.MultiTopic.
Selector class encapsulates different ways of selecting samples from a org.omg.dds.sub.DataReader.
The deadline that the org.omg.dds.sub.DataReader was expecting through its org.omg.dds.core.policy.Deadline was not respected for a specific instance.
Set< InstanceHandle > getMatchedPublications()
This operation retrieves the list of publications currently "associated" with the DataReader; that is...
QueryCondition< TYPE > createQueryCondition(String queryExpression, String... queryParameters)
This operation creates a QueryCondition.
SampleLostStatus getSampleLostStatus()
This operation obtains the SampleLostStatus object of the DataReader.
Iterator< TYPE > read()
This operation accesses a collection of samples from this DataReader.
void waitForHistoricalData(Time minSourceTimestamp, Time maxSourceTimestamp, ResourceLimits resourceLimits, long maxWait, TimeUnit unit)
A moment in time expressed with nanosecond precision (though not necessarily nanosecond accuracy)...
Definition: Time.java:34
QueryCondition objects are specialized org.omg.dds.sub.ReadCondition objects that allow the applicati...
Status is the abstract root class for all communication status objects.
Definition: Status.java:41
Iterator< TYPE > take(org.omg.dds.sub.DataReader.Selector< TYPE > query)
abstract PreAllocator< TYPE > getPreAllocator(List< Sample< TYPE >> samples, Class<?> sampleSeqHolderClz, Field sampleSeqHolderValueField)