MADARA  3.1.0
SpliceKnowledgeUpdateDcps_impl.cpp
Go to the documentation of this file.
3 //
4 
5 extern v_copyin_result
7  c_base base,
8  const struct Knowledge::Update *from,
9  struct _Knowledge_Update *to);
10 
11 extern void
13  const void *_from,
14  void *_to);
15 
16 // DDS Knowledge::Update TypeSupportMetaHolder Object Body
18  DDS::OpenSplice::TypeSupportMetaHolder ("Knowledge::Update", "", "originator")
19 {
20  copyIn = (DDS::OpenSplice::cxxCopyIn) __Knowledge_Update__copyIn;
21  copyOut = (DDS::OpenSplice::cxxCopyOut) __Knowledge_Update__copyOut;
22  metaDescriptorArrLength = 6;
23  metaDescriptorLength = 574;
24  const char *tmp[] = {"<MetaData version=\"1.0.0\"><Module name=\"Knowledge\"><TypeDef name=\"seq_oct\"><Sequence><Octet/></Sequence>",
25 "</TypeDef><Struct name=\"Update\"><Member name=\"originator\"><String/></Member><Member name=\"buffer\">",
26 "<Type name=\"seq_oct\"/></Member><Member name=\"quality\"><ULong/></Member><Member name=\"madara_id\">",
27 "<String/></Member><Member name=\"updates\"><ULong/></Member><Member name=\"type\"><ULong/></Member><Member name=\"clock\">",
28 "<ULongLong/></Member><Member name=\"timestamp\"><ULongLong/></Member><Member name=\"ttl\"><ULong/></Member>",
29 "</Struct></Module></MetaData>"};
30  metaDescriptor = new const char*[metaDescriptorArrLength];
31  memcpy(metaDescriptor, tmp, sizeof(tmp));
32 }
33 
35 {
36  // Rely on parent destructor.
37 }
38 
39 ::DDS::OpenSplice::DataWriter *
41 {
43 }
44 
45 ::DDS::OpenSplice::DataReader *
47 {
49 }
50 
51 ::DDS::OpenSplice::DataReaderView *
53 {
55 }
56 
57 // DDS Knowledge::Update TypeSupport Object Body
59  DDS::OpenSplice::TypeSupport()
60 {
61  tsMetaHolder = new Knowledge::UpdateTypeSupportMetaHolder();
62 }
63 
65 {
66  DDS::release(tsMetaHolder);
67 }
68 
69 // DDS Knowledge::Update DataWriter_impl Object Body
71 {
72  // Parent constructor takes care of everything.
73 }
74 
76 {
77  // Parent destructor takes care of everything.
78 }
79 
80 ::DDS::ReturnCode_t
82  DDS::OpenSplice::Publisher *publisher,
83  DDS::OpenSplice::DomainParticipant *participant,
84  const DDS::DataWriterQos &qos,
85  DDS::OpenSplice::Topic *a_topic,
86  const char *name,
87  DDS::OpenSplice::cxxCopyIn copyIn,
88  DDS::OpenSplice::cxxCopyOut copyOut)
89 {
90  return DDS::OpenSplice::FooDataWriter_impl::nlReq_init(publisher, participant, qos, a_topic, name, copyIn, copyOut);
91 }
92 
93 ::DDS::InstanceHandle_t
95  const Knowledge::Update & instance_data) THROW_ORB_EXCEPTIONS
96 {
97  return DDS::OpenSplice::FooDataWriter_impl::register_instance(&instance_data);
98 }
99 
100 ::DDS::InstanceHandle_t
102  const Update & instance_data,
103  const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS
104 {
105  return DDS::OpenSplice::FooDataWriter_impl::register_instance_w_timestamp(&instance_data, source_timestamp);
106 }
107 
108 ::DDS::ReturnCode_t
110  const Knowledge::Update & instance_data,
111  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
112 {
113  return DDS::OpenSplice::FooDataWriter_impl::unregister_instance(&instance_data, handle);
114 }
115 
116 ::DDS::ReturnCode_t
118  const Update & instance_data,
119  ::DDS::InstanceHandle_t handle,
120  const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS
121 {
122  return DDS::OpenSplice::FooDataWriter_impl::unregister_instance_w_timestamp(&instance_data, handle, source_timestamp);
123 }
124 
125 ::DDS::ReturnCode_t
127  const Knowledge::Update & instance_data,
128  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
129 {
130  return DDS::OpenSplice::FooDataWriter_impl::write(&instance_data, handle);
131 }
132 
133 ::DDS::ReturnCode_t
135  const Update & instance_data,
136  ::DDS::InstanceHandle_t handle,
137  const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS
138 {
139  return DDS::OpenSplice::FooDataWriter_impl::write_w_timestamp(&instance_data, handle, source_timestamp);
140 }
141 
142 ::DDS::ReturnCode_t
144  const Knowledge::Update & instance_data,
145  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
146 {
147  return DDS::OpenSplice::FooDataWriter_impl::dispose(&instance_data, handle);
148 }
149 
150 ::DDS::ReturnCode_t
152  const Update & instance_data,
153  ::DDS::InstanceHandle_t handle,
154  const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS
155 {
156  return DDS::OpenSplice::FooDataWriter_impl::dispose_w_timestamp(&instance_data, handle, source_timestamp);
157 }
158 
159 ::DDS::ReturnCode_t
161  const Knowledge::Update & instance_data,
162  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
163 {
164  return DDS::OpenSplice::FooDataWriter_impl::writedispose(&instance_data, handle);
165 }
166 
167 ::DDS::ReturnCode_t
169  const Update & instance_data,
170  ::DDS::InstanceHandle_t handle,
171  const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS
172 {
173  return DDS::OpenSplice::FooDataWriter_impl::writedispose_w_timestamp(&instance_data, handle, source_timestamp);
174 }
175 
176 ::DDS::ReturnCode_t
178  Update & key_holder,
179  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
180 {
181  return DDS::OpenSplice::FooDataWriter_impl::get_key_value(&key_holder, handle);
182 }
183 
184 ::DDS::InstanceHandle_t
186  const Knowledge::Update & instance_data) THROW_ORB_EXCEPTIONS
187 {
188  return DDS::OpenSplice::FooDataWriter_impl::lookup_instance(&instance_data);
189 }
190 
191 // DDS Knowledge::Update DataReader_impl Object Body
193 {
194  // Parent constructor takes care of everything.
195 }
196 
198 {
199  // Parent destructor takes care of everything.
200 }
201 
202 DDS::ReturnCode_t
204  DDS::OpenSplice::Subscriber *subscriber,
205  const DDS::DataReaderQos &qos,
206  DDS::OpenSplice::TopicDescription *a_topic,
207  const char *name,
208  DDS::OpenSplice::cxxCopyIn copyIn,
209  DDS::OpenSplice::cxxCopyOut copyOut)
210 {
211  return DDS::OpenSplice::FooDataReader_impl::nlReq_init(
212  subscriber, qos, a_topic, name, copyIn, copyOut,
213  this->dataSeqAlloc, this->dataSeqLength, this->dataSeqGetBuffer, this->dataSeqCopyOut);
214 }
215 
216 ::DDS::ReturnCode_t
218  Knowledge::UpdateSeq & received_data,
219  ::DDS::SampleInfoSeq & info_seq,
220  ::DDS::Long max_samples,
221  ::DDS::SampleStateMask sample_states,
222  ::DDS::ViewStateMask view_states,
223  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
224 {
225  ::DDS::ReturnCode_t status = DDS::RETCODE_OK;
226 
227  status = check_preconditions(received_data, info_seq, max_samples);
228  if ( status == ::DDS::RETCODE_OK ) {
229  status = DDS::OpenSplice::FooDataReader_impl::read(&received_data, info_seq, max_samples, sample_states, view_states, instance_states);
230  }
231  return status;
232 }
233 
234 ::DDS::ReturnCode_t
236  Knowledge::UpdateSeq & received_data,
237  ::DDS::SampleInfoSeq & info_seq,
238  ::DDS::Long max_samples,
239  ::DDS::SampleStateMask sample_states,
240  ::DDS::ViewStateMask view_states,
241  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
242 {
243  ::DDS::ReturnCode_t status = DDS::RETCODE_OK;
244 
245  status = check_preconditions(received_data, info_seq, max_samples);
246  if ( status == ::DDS::RETCODE_OK ) {
247  status = DDS::OpenSplice::FooDataReader_impl::take(&received_data, info_seq, max_samples, sample_states, view_states, instance_states);
248  }
249  return status;
250 }
251 
252 ::DDS::ReturnCode_t
254  Knowledge::UpdateSeq & received_data,
255  ::DDS::SampleInfoSeq & info_seq,
256  ::DDS::Long max_samples,
257  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
258 {
259  ::DDS::ReturnCode_t status = DDS::RETCODE_OK;
260 
261  status = check_preconditions(received_data, info_seq, max_samples);
262  if ( status == ::DDS::RETCODE_OK ) {
263  status = DDS::OpenSplice::FooDataReader_impl::read_w_condition(&received_data, info_seq, max_samples, a_condition);
264  }
265  return status;
266 }
267 
268 ::DDS::ReturnCode_t
270  Knowledge::UpdateSeq & received_data,
271  ::DDS::SampleInfoSeq & info_seq,
272  ::DDS::Long max_samples,
273  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
274 {
275  ::DDS::ReturnCode_t status = DDS::RETCODE_OK;
276 
277  status = check_preconditions(received_data, info_seq, max_samples);
278  if ( status == ::DDS::RETCODE_OK ) {
279  status = DDS::OpenSplice::FooDataReader_impl::take_w_condition(&received_data, info_seq, max_samples, a_condition);
280  }
281  return status;
282 }
283 
284 ::DDS::ReturnCode_t
286  Knowledge::Update & received_data,
287  ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS
288 {
289  return DDS::OpenSplice::FooDataReader_impl::read_next_sample(&received_data, sample_info);
290 }
291 
292 ::DDS::ReturnCode_t
294  Knowledge::Update & received_data,
295  ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS
296 {
297  return DDS::OpenSplice::FooDataReader_impl::take_next_sample(&received_data, sample_info);
298 }
299 
300 ::DDS::ReturnCode_t
302  Knowledge::UpdateSeq & received_data,
303  ::DDS::SampleInfoSeq & info_seq,
304  ::DDS::Long max_samples,
305  ::DDS::InstanceHandle_t a_handle,
306  ::DDS::SampleStateMask sample_states,
307  ::DDS::ViewStateMask view_states,
308  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
309 {
310  ::DDS::ReturnCode_t status;
311 
312  status = check_preconditions(received_data, info_seq, max_samples);
313  if ( status == ::DDS::RETCODE_OK ) {
314  status = DDS::OpenSplice::FooDataReader_impl::read_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
315  }
316  return status;
317 }
318 
319 ::DDS::ReturnCode_t
321  Knowledge::UpdateSeq & received_data,
322  ::DDS::SampleInfoSeq & info_seq,
323  ::DDS::Long max_samples,
324  ::DDS::InstanceHandle_t a_handle,
325  ::DDS::SampleStateMask sample_states,
326  ::DDS::ViewStateMask view_states,
327  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
328 {
329  ::DDS::ReturnCode_t status;
330 
331  status = check_preconditions(received_data, info_seq, max_samples);
332  if ( status == ::DDS::RETCODE_OK ) {
333  status = DDS::OpenSplice::FooDataReader_impl::take_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
334  }
335  return status;
336 }
337 
338 ::DDS::ReturnCode_t
340  Knowledge::UpdateSeq & received_data,
341  ::DDS::SampleInfoSeq & info_seq,
342  ::DDS::Long max_samples,
343  ::DDS::InstanceHandle_t a_handle,
344  ::DDS::SampleStateMask sample_states,
345  ::DDS::ViewStateMask view_states,
346  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
347 {
348  ::DDS::ReturnCode_t status;
349 
350  status = check_preconditions(received_data, info_seq, max_samples);
351  if ( status == ::DDS::RETCODE_OK ) {
352  status = DDS::OpenSplice::FooDataReader_impl::read_next_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
353  }
354  return status;
355 }
356 
357 ::DDS::ReturnCode_t
359  Knowledge::UpdateSeq & received_data,
360  ::DDS::SampleInfoSeq & info_seq,
361  ::DDS::Long max_samples,
362  ::DDS::InstanceHandle_t a_handle,
363  ::DDS::SampleStateMask sample_states,
364  ::DDS::ViewStateMask view_states,
365  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
366 {
367  ::DDS::ReturnCode_t status;
368 
369  status = check_preconditions(received_data, info_seq, max_samples);
370  if ( status == ::DDS::RETCODE_OK ) {
371  status = DDS::OpenSplice::FooDataReader_impl::take_next_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
372  }
373  return status;
374 }
375 
376 ::DDS::ReturnCode_t
378  Knowledge::UpdateSeq & received_data,
379  ::DDS::SampleInfoSeq & info_seq,
380  ::DDS::Long max_samples,
381  ::DDS::InstanceHandle_t a_handle,
382  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
383 {
384  ::DDS::ReturnCode_t status;
385 
386  status = check_preconditions(received_data, info_seq, max_samples);
387  if ( status == ::DDS::RETCODE_OK ) {
388  status = DDS::OpenSplice::FooDataReader_impl::read_next_instance_w_condition(&received_data, info_seq, max_samples, a_handle, a_condition);
389  }
390  return status;
391 }
392 
393 ::DDS::ReturnCode_t
395  Knowledge::UpdateSeq & received_data,
396  ::DDS::SampleInfoSeq & info_seq,
397  ::DDS::Long max_samples,
398  ::DDS::InstanceHandle_t a_handle,
399  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
400 {
401  ::DDS::ReturnCode_t status;
402 
403  status = check_preconditions(received_data, info_seq, max_samples);
404  if ( status == ::DDS::RETCODE_OK ) {
405  status = DDS::OpenSplice::FooDataReader_impl::take_next_instance_w_condition(&received_data, info_seq, max_samples, a_handle, a_condition);
406  }
407  return status;
408 }
409 
410 ::DDS::ReturnCode_t
412  Knowledge::UpdateSeq & received_data,
413  ::DDS::SampleInfoSeq & info_seq) THROW_ORB_EXCEPTIONS
414 {
415  ::DDS::ReturnCode_t result = ::DDS::RETCODE_OK;
416 
417  result = this->write_lock ();
418  if (result == DDS::RETCODE_OK) {
419  if ( received_data.length() > 0 ) {
420  if (received_data.length() == info_seq.length() &&
421  received_data.release() == info_seq.release() ) {
422  if (!received_data.release()) {
423  result = DDS::OpenSplice::FooDataReader_impl::wlReq_return_loan( received_data.get_buffer(),
424  info_seq.get_buffer() );
425  if ( result == ::DDS::RETCODE_OK ) {
426  if ( !received_data.release() ) {
427  Knowledge::UpdateSeq::freebuf( received_data.get_buffer(false) );
428  received_data.replace(0, 0, NULL, false);
429  ::DDS::SampleInfoSeq::freebuf( info_seq.get_buffer(false) );
430  info_seq.replace(0, 0, NULL, false);
431  }
432  }
433  }
434  } else {
435  result = ::DDS::RETCODE_PRECONDITION_NOT_MET;
436  }
437  }
438  this->unlock();
439  }
440  return result;
441 }
442 
443 ::DDS::ReturnCode_t
445  Knowledge::Update & key_holder,
446  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
447 {
448  return DDS::OpenSplice::FooDataReader_impl::get_key_value(&key_holder, handle);
449 }
450 
451 ::DDS::InstanceHandle_t
453  const Knowledge::Update & instance) THROW_ORB_EXCEPTIONS
454 {
455  return DDS::OpenSplice::FooDataReader_impl::lookup_instance(&instance);
456 }
457 
458 ::DDS::ReturnCode_t
460  Knowledge::UpdateSeq & received_data,
461  ::DDS::SampleInfoSeq & info_seq,
462  ::DDS::Long max_samples)
463 {
464  if ((max_samples < 0) && (max_samples != DDS::LENGTH_UNLIMITED)) {
465  return DDS::RETCODE_BAD_PARAMETER;
466  }
467 
468  /* Rule 1 : The values of len, max_len, and owns
469  * for the two collections must be identical.
470  */
471  if ((received_data.length() != info_seq.length()) ||
472  (received_data.maximum() != info_seq.maximum()) ||
473  (received_data.release() != info_seq.release()))
474  {
475  return DDS::RETCODE_PRECONDITION_NOT_MET;
476  }
477 
478  /* Rule 4: If the input max_len>0 and the input owns==FALSE,
479  * then the read operation will fail.
480  */
481  if ((info_seq.maximum() > 0) &&
482  (info_seq.release() == false))
483  {
484  return DDS::RETCODE_PRECONDITION_NOT_MET;
485  }
486 
487  /* Rule 5: If input max_len>0 and the input owns==TRUE,
488  * then the read operation will...
489  */
490  if (info_seq.maximum() > 0) { /* owns is true, because of rule 4. */
491  /* Rule 5a: If max_samples = LENGTH_UNLIMITED,
492  * then at most max_len values will be copied.
493  * Rule 5b: If max_samples <= max_len,
494  * then at most max_samples values will be copied.
495  */
496  /* Rule 5c: If max_samples > max_len,
497  * then the read operation will fail.
498  */
499  if ((max_samples != DDS::LENGTH_UNLIMITED) &&
500  ((DDS::ULong)max_samples > info_seq.maximum())) {
501  return DDS::RETCODE_PRECONDITION_NOT_MET;
502  }
503  }
504 
505  if ((max_samples == 0) ||
506  ((info_seq.maximum() == 0) && (info_seq.release()))) {
507  return DDS::RETCODE_NO_DATA;
508  }
509 
510  return DDS::RETCODE_OK;
511 }
512 
513 void *
515  void * received_data,
516  DDS::ULong len)
517 {
518  Knowledge::UpdateSeq *data_seq = reinterpret_cast<Knowledge::UpdateSeq *>(received_data);
519  data_seq->replace(len, len, data_seq->allocbuf(len), false);
520  return data_seq->get_buffer();
521 }
522 
523 void *
525  void * received_data,
526  DDS::ULong index)
527 {
528  Knowledge::UpdateSeq *data_seq = reinterpret_cast<Knowledge::UpdateSeq *>(received_data);
529  return &((*data_seq)[index]);
530 }
531 
532 void
534  void * received_data,
535  DDS::ULong len)
536 {
537  Knowledge::UpdateSeq *data_seq = reinterpret_cast<Knowledge::UpdateSeq *>(received_data);
538  data_seq->length(len);
539 }
540 
541 void
543  const void * from,
544  void * to)
545 {
546  Knowledge::Update *data = reinterpret_cast<Knowledge::Update *>(to);
547  __Knowledge_Update__copyOut(from, data);
548 }
549 
550 void
552  const void * from,
553  void * to)
554 {
555  Knowledge::Update *data = reinterpret_cast<Knowledge::Update *>(to);
556  __Knowledge_Update__copyOut(from, data);
557 }
558 
559 
560 // DDS Knowledge::Update DataReaderView_impl Object Body
562 {
563  // Parent constructor takes care of everything.
564 }
565 
567 {
568  // Parent destructor takes care of everything.
569 }
570 
571 DDS::ReturnCode_t
573  DDS::OpenSplice::DataReader *reader,
574  const char *name,
575  const DDS::DataReaderViewQos &qos,
576  DDS::OpenSplice::cxxCopyIn copyIn,
577  DDS::OpenSplice::cxxCopyOut copyOut)
578 {
579  return DDS::OpenSplice::FooDataReaderView_impl::nlReq_init(
580  reader, name, qos, copyIn, copyOut, Knowledge::UpdateDataReader_impl::dataSeqAlloc,
582 }
583 
584 ::DDS::ReturnCode_t
586  Knowledge::UpdateSeq & received_data,
587  ::DDS::SampleInfoSeq & info_seq,
588  ::DDS::Long max_samples,
589  ::DDS::SampleStateMask sample_states,
590  ::DDS::ViewStateMask view_states,
591  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
592 {
593  ::DDS::ReturnCode_t status;
594 
595  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
596  if ( status == ::DDS::RETCODE_OK ) {
597  status = DDS::OpenSplice::FooDataReaderView_impl::read(&received_data, info_seq, max_samples, sample_states, view_states, instance_states);
598  }
599  return status;
600 }
601 
602 ::DDS::ReturnCode_t
604  Knowledge::UpdateSeq & received_data,
605  ::DDS::SampleInfoSeq & info_seq,
606  ::DDS::Long max_samples,
607  ::DDS::SampleStateMask sample_states,
608  ::DDS::ViewStateMask view_states,
609  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
610 {
611  ::DDS::ReturnCode_t status;
612 
613  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
614  if ( status == ::DDS::RETCODE_OK ) {
615  status = DDS::OpenSplice::FooDataReaderView_impl::take(&received_data, info_seq, max_samples, sample_states, view_states, instance_states);
616  }
617  return status;
618 }
619 
620 ::DDS::ReturnCode_t
622  Knowledge::UpdateSeq & received_data,
623  ::DDS::SampleInfoSeq & info_seq,
624  ::DDS::Long max_samples,
625  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
626 {
627  ::DDS::ReturnCode_t status;
628 
629  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
630  if ( status == ::DDS::RETCODE_OK ) {
631  status = DDS::OpenSplice::FooDataReaderView_impl::read_w_condition(&received_data, info_seq, max_samples, a_condition);
632  }
633  return status;
634 }
635 
636 ::DDS::ReturnCode_t
638  Knowledge::UpdateSeq & received_data,
639  ::DDS::SampleInfoSeq & info_seq,
640  ::DDS::Long max_samples,
641  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
642 {
643  ::DDS::ReturnCode_t status;
644 
645  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
646  if ( status == ::DDS::RETCODE_OK ) {
647  status = DDS::OpenSplice::FooDataReaderView_impl::take_w_condition(&received_data, info_seq, max_samples, a_condition);
648  }
649  return status;
650 }
651 
652 ::DDS::ReturnCode_t
654  Knowledge::Update & received_data,
655  ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS
656 {
657  return DDS::OpenSplice::FooDataReaderView_impl::read_next_sample(&received_data, sample_info);
658 }
659 
660 ::DDS::ReturnCode_t
662  Knowledge::Update & received_data,
663  ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS
664 {
665  return DDS::OpenSplice::FooDataReaderView_impl::take_next_sample(&received_data, sample_info);
666 }
667 
668 ::DDS::ReturnCode_t
670  Knowledge::UpdateSeq & received_data,
671  ::DDS::SampleInfoSeq & info_seq,
672  ::DDS::Long max_samples,
673  ::DDS::InstanceHandle_t a_handle,
674  ::DDS::SampleStateMask sample_states,
675  ::DDS::ViewStateMask view_states,
676  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
677 {
678  ::DDS::ReturnCode_t status;
679 
680  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
681  if ( status == ::DDS::RETCODE_OK ) {
682  status = DDS::OpenSplice::FooDataReaderView_impl::read_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
683  }
684  return status;
685 }
686 
687 ::DDS::ReturnCode_t
689  Knowledge::UpdateSeq & received_data,
690  ::DDS::SampleInfoSeq & info_seq,
691  ::DDS::Long max_samples,
692  ::DDS::InstanceHandle_t a_handle,
693  ::DDS::SampleStateMask sample_states,
694  ::DDS::ViewStateMask view_states,
695  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
696 {
697  ::DDS::ReturnCode_t status;
698 
699  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
700  if ( status == ::DDS::RETCODE_OK ) {
701  status = DDS::OpenSplice::FooDataReaderView_impl::take_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
702  }
703  return status;
704 }
705 
706 ::DDS::ReturnCode_t
708  Knowledge::UpdateSeq & received_data,
709  ::DDS::SampleInfoSeq & info_seq,
710  ::DDS::Long max_samples,
711  ::DDS::InstanceHandle_t a_handle,
712  ::DDS::SampleStateMask sample_states,
713  ::DDS::ViewStateMask view_states,
714  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
715 {
716  ::DDS::ReturnCode_t status;
717 
718  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
719  if ( status == ::DDS::RETCODE_OK ) {
720  status = DDS::OpenSplice::FooDataReaderView_impl::read_next_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
721  }
722  return status;
723 }
724 
725 ::DDS::ReturnCode_t
727  Knowledge::UpdateSeq & received_data,
728  ::DDS::SampleInfoSeq & info_seq,
729  ::DDS::Long max_samples,
730  ::DDS::InstanceHandle_t a_handle,
731  ::DDS::SampleStateMask sample_states,
732  ::DDS::ViewStateMask view_states,
733  ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
734 {
735  ::DDS::ReturnCode_t status;
736 
737  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
738  if ( status == ::DDS::RETCODE_OK ) {
739  status = DDS::OpenSplice::FooDataReaderView_impl::take_next_instance(&received_data, info_seq, max_samples, a_handle, sample_states, view_states, instance_states);
740  }
741  return status;
742 }
743 
744 ::DDS::ReturnCode_t
746  Knowledge::UpdateSeq & received_data,
747  ::DDS::SampleInfoSeq & info_seq,
748  ::DDS::Long max_samples,
749  ::DDS::InstanceHandle_t a_handle,
750  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
751 {
752  ::DDS::ReturnCode_t status;
753 
754  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
755  if ( status == ::DDS::RETCODE_OK ) {
756  status = DDS::OpenSplice::FooDataReaderView_impl::read_next_instance_w_condition(&received_data, info_seq, max_samples, a_handle, a_condition);
757  }
758  return status;
759 }
760 
761 ::DDS::ReturnCode_t
763  Knowledge::UpdateSeq & received_data,
764  ::DDS::SampleInfoSeq & info_seq,
765  ::DDS::Long max_samples,
766  ::DDS::InstanceHandle_t a_handle,
767  ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
768 {
769  ::DDS::ReturnCode_t status;
770 
771  status = Knowledge::UpdateDataReader_impl::check_preconditions(received_data, info_seq, max_samples);
772  if ( status == ::DDS::RETCODE_OK ) {
773  status = DDS::OpenSplice::FooDataReaderView_impl::take_next_instance_w_condition(&received_data, info_seq, max_samples, a_handle, a_condition);
774  }
775  return status;
776 }
777 
778 ::DDS::ReturnCode_t
780  Knowledge::UpdateSeq & received_data,
781  ::DDS::SampleInfoSeq & info_seq) THROW_ORB_EXCEPTIONS
782 {
783  ::DDS::ReturnCode_t result = ::DDS::RETCODE_OK;
784 
785  result = this->write_lock ();
786  if (result == DDS::RETCODE_OK) {
787  if ( received_data.length() > 0 ) {
788  if (received_data.length() == info_seq.length() &&
789  received_data.release() == info_seq.release() ) {
790  if (!received_data.release()) {
791  result = DDS::OpenSplice::FooDataReaderView_impl::wlReq_return_loan( received_data.get_buffer(),
792  info_seq.get_buffer() );
793 
794  if ( result == ::DDS::RETCODE_OK ) {
795  if ( !received_data.release() ) {
796  Knowledge::UpdateSeq::freebuf( received_data.get_buffer(false) );
797  received_data.replace(0, 0, NULL, false);
798  ::DDS::SampleInfoSeq::freebuf( info_seq.get_buffer(false) );
799  info_seq.replace(0, 0, NULL, false);
800  }
801  } else if ( result == ::DDS::RETCODE_NO_DATA ) {
802  if ( received_data.release() ) {
803  result = ::DDS::RETCODE_OK;
804  } else {
805  result = ::DDS::RETCODE_PRECONDITION_NOT_MET;
806  }
807  }
808  }
809  } else {
810  result = ::DDS::RETCODE_PRECONDITION_NOT_MET;
811  }
812  }
813  this->unlock();
814  }
815  return result;
816 }
817 
818 ::DDS::ReturnCode_t
820  Knowledge::Update & key_holder,
821  ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
822 {
823  return DDS::OpenSplice::FooDataReaderView_impl::get_key_value(&key_holder, handle);
824 }
825 
826 ::DDS::InstanceHandle_t
828  const Knowledge::Update & instance) THROW_ORB_EXCEPTIONS
829 {
830  return DDS::OpenSplice::FooDataReaderView_impl::lookup_instance(&instance);
831 }
virtual ::DDS::ReturnCode_t get_key_value(Update &key_holder,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_next_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t get_key_value(Update &key_holder,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t dispose(const Update &instance_data,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_next_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
DDS_DCPSUVLSeq< Update, struct UpdateSeq_uniq_ > UpdateSeq
virtual ::DDS::ReturnCode_t take(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t write(const Update &instance_data,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
::DDS::OpenSplice::DataWriter * create_datawriter()
static void dataSeqLength(void *data_values, DDS::ULong len)
virtual ::DDS::ReturnCode_t read_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t unregister_instance_w_timestamp(const Update &instance_data,::DDS::InstanceHandle_t handle, const ::DDS::Time_t &source_timestamp) THROW_ORB_EXCEPTIONS
::DDS::OpenSplice::DataReader * create_datareader()
virtual ::DDS::ReturnCode_t read_next_sample(Update &received_data,::DDS::SampleInfo &sample_info) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_next_instance_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_next_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::InstanceHandle_t lookup_instance(const Update &instance_data) THROW_ORB_EXCEPTIONS
virtual ::DDS::InstanceHandle_t lookup_instance(const Update &instance) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t unregister_instance(const Update &instance_data,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t write_w_timestamp(const Update &instance_data,::DDS::InstanceHandle_t handle, const ::DDS::Time_t &source_timestamp) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_next_sample(Update &received_data,::DDS::SampleInfo &sample_info) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_next_sample(Update &received_data,::DDS::SampleInfo &sample_info) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::InstanceHandle_t register_instance_w_timestamp(const Update &instance_data, const ::DDS::Time_t &source_timestamp) THROW_ORB_EXCEPTIONS
v_copyin_result __Knowledge_Update__copyIn(c_base base, const struct Knowledge::Update *from, struct _Knowledge_Update *to)
DDS::ReturnCode_t init(DDS::OpenSplice::Subscriber *subscriber, const DDS::DataReaderQos &qos, DDS::OpenSplice::TopicDescription *a_topic, const char *name, DDS::OpenSplice::cxxCopyIn copyIn, DDS::OpenSplice::cxxCopyOut copyOut)
void __Knowledge_Update__copyOut(const void *_from, void *_to)
virtual ::DDS::ReturnCode_t take_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
::DDS::ReturnCode_t check_preconditions(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples)
virtual ::DDS::ReturnCode_t dispose_w_timestamp(const Update &instance_data,::DDS::InstanceHandle_t handle, const ::DDS::Time_t &source_timestamp) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_next_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_next_instance_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
virtual DDS::ReturnCode_t init(DDS::OpenSplice::Publisher *publisher, DDS::OpenSplice::DomainParticipant *participant, const DDS::DataWriterQos &qos, DDS::OpenSplice::Topic *a_topic, const char *name, DDS::OpenSplice::cxxCopyIn copyIn, DDS::OpenSplice::cxxCopyOut copyOut)
virtual DDS::ReturnCode_t init(DDS::OpenSplice::DataReader *reader, const char *name, const DDS::DataReaderViewQos &qos, DDS::OpenSplice::cxxCopyIn copyIn, DDS::OpenSplice::cxxCopyOut copyOut)
static void dataSeqCopyOut(const void *from, void *received_data)
::DDS::OpenSplice::DataReaderView * create_view()
virtual ::DDS::ReturnCode_t return_loan(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq) THROW_ORB_EXCEPTIONS
virtual ::DDS::InstanceHandle_t lookup_instance(const Update &instance) THROW_ORB_EXCEPTIONS
static void copyDataOut(const void *from, void *to)
virtual ::DDS::ReturnCode_t take_next_sample(Update &received_data,::DDS::SampleInfo &sample_info) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t writedispose(const Update &instance_data,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_next_instance_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t get_key_value(Update &key_holder,::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_instance(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::SampleStateMask sample_states,::DDS::ViewStateMask view_states,::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS
virtual ::DDS::InstanceHandle_t register_instance(const Update &instance_data) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t return_loan(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t writedispose_w_timestamp(const Update &instance_data,::DDS::InstanceHandle_t handle, const ::DDS::Time_t &source_timestamp) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t read_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_next_instance_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::InstanceHandle_t a_handle,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
virtual ::DDS::ReturnCode_t take_w_condition(UpdateSeq &received_data,::DDS::SampleInfoSeq &info_seq,::DDS::Long max_samples,::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS
static void * dataSeqGetBuffer(void *data_values, DDS::ULong index)
static void * dataSeqAlloc(void *data_values, DDS::ULong len)