RTI Connext Micro  Version 2.4.1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
dds_c_subscription.h
Go to the documentation of this file.
1 /*
2  * FILE: dds_c_subscription.h - DDS subscription module
3  *
4  * (c) Copyright, Real-Time Innovations, 2008-2014.
5  *
6  * All rights reserved.
7  *
8  * No duplications, whole or partial, manual or electronic, may be made
9  * without express written permission. Any such copies, or
10  * revisions thereof, must display this notice unaltered.
11  * This code contains trade secrets of Real-Time Innovations, Inc.
12  *
13  * Modification History
14  * --------------------
15  * 08oct2014,tk MICRO-919 Added SampleLostReason to SampleLost status
16  * 20sep2014,as Explicitly define public support functions for Status types
17  * 07may2014,as MICRO-784 Expose get_X_status API in C++
18  * 23apr2014,tk MICRO-367: Made DDS_SampleInfoSeq visible in external doc
19  * 19mar2014,tk MICRO-74: Support endpoint specific transport
20  * 19jul2013,as Added support for C++
21  * 30apr2008,tk Written
22  */
23 /*ce
24  * \file
25  * \brief DDS subscription module
26  */
27 
28 /*e
29  @addtogroup DDSSubscriptionModule
30  @ingroup DDSCModule
31  @brief Defines the \dds subscription package.
32 */
33 #ifndef dds_c_subscription_h
34 #define dds_c_subscription_h
35 
36 #include "dds_c_sequence.h"
37 
38 #ifndef dds_c_type_h
39 #include "dds_c/dds_c_type.h"
40 #endif
41 
42 #ifndef dds_c_topic_h
43 #include "dds_c/dds_c_topic.h"
44 #endif
45 
46 #ifndef dds_c_dll_h
47 #include "dds_c/dds_c_dll.h"
48 #endif
49 
50 #ifdef __cplusplus
51 extern "C"
52 {
53 #endif
54 
55 /* ================================================================= */
56 /* Typedef for DataReader */
57 /* ================================================================= */
58 
59 /*ce \dref_DataReader
60  */
61 typedef struct DDS_DataReaderImpl DDS_DataReader;
62 
63 
64 /* ================================================================= */
65 /* Typedef for Subscriber */
66 /* ================================================================= */
67 
68 /*ce \dref_Subscriber
69  */
70 typedef struct DDS_SubscriberImpl DDS_Subscriber;
71 
72 /* ================================================================= */
73 /* Status */
74 /* ================================================================= */
75 
76 /* -------------------------------------- */
77 /* Requested Deadline Missed Status */
78 /* -------------------------------------- */
79 
80 /*e \dref_RequestedDeadlineMissedStatus
81  */
83 {
84  /*e \dref_RequestedDeadlineMissedStatus_total_count
85  */
87 
88  /*e \dref_RequestedDeadlineMissedStatus_total_count_change
89  */
91 
92  /*e \dref_RequestedDeadlineMissedStatus_last_instance_handle
93  */
95 
96  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_RequestedDeadlineMissedStatus)
97 };
98 
99 /*ce \dref_RequestedDeadlineMissedStatus_INITIALIZER
100  */
101 #define DDS_RequestedDeadlineMissedStatus_INITIALIZER \
102 { 0L, 0L, DDS_HANDLE_NIL_NATIVE }
103 
104 
105 /*ci \dref_RequestedDeadlineMissedStatus_reset
106  */
107 #define DDS_RequestedDeadlineMissedStatus_reset(_s) \
108 {\
109  (_s)->total_count_change = 0;\
110 }
111 
112 /* ------------------------------- */
113 /* Liveliness Changed Status */
114 /* ------------------------------- */
115 
116 /*e \dref_LivelinessChangedStatus
117  */
119 {
120 
121  /*e \dref_LivelinessChangedStatus_alive_count
122  */
124 
125  /*e \dref_LivelinessChangedStatus_not_alive_count
126  */
128 
129  /*e \dref_LivelinessChangedStatus_alive_count_change
130  */
132 
133  /*e \dref_LivelinessChangedStatus_not_alive_count_change
134  */
136 
137  /*e \dref_LivelinessChangedStatus_last_publication_handle
138  */
140 
141  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_LivelinessChangedStatus)
142 };
143 
144 /*ce \dref_LivelinessChangedStatus_INITIALIZER
145  */
146 #define DDS_LivelinessChangedStatus_INITIALIZER { 0L, 0L, 0L, 0L, \
147  DDS_HANDLE_NIL_NATIVE }
148 
149 /*ci \dref_LivelinessChangedStatus_reset
150  */
151 #define DDS_LivelinessChangedStatus_reset(_s) \
152 {\
153  (_s)->alive_count_change = 0;\
154  (_s)->not_alive_count_change = 0;\
155 }
156 
157 /* --------------------------------------- */
158 /* Requested Incompatible QoS Status */
159 /* --------------------------------------- */
160 
161 /*e \dref_RequestedIncompatibleQosStatus
162  */
164 {
165  /*e \dref_RequestedIncompatibleQosStatus_total_count
166  */
168 
169  /*e \dref_RequestedIncompatibleQosStatus_total_count_change
170  */
172 
173  /*e \dref_RequestedIncompatibleQosStatus_last_policy_id
174  */
176 
177  /*e \dref_RequestedIncompatibleQosStatus_policies
178  */
179  struct DDS_QosPolicyCountSeq policies;
180 
181  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_RequestedIncompatibleQosStatus)
182 };
183 
184 /*ce \dref_RequestedIncompatibleQosStatus_INITIALIZER
185  */
186 #define DDS_RequestedIncompatibleQosStatus_INITIALIZER \
187  { 0L, 0L, DDS_INVALID_QOS_POLICY_ID, DDS_SEQUENCE_INITIALIZER(struct DDS_QosPolicyCount) }
188 
189 /*ci \dref_RequestedIncompatibleQosStatus_reset
190  */
191 #define DDS_RequestedIncompatibleQosStatus_reset(_s) \
192 {\
193  (_s)->total_count_change = 0;\
194 }
195 
196 /* ----------------------------------- */
197 /* Sample Rejected Status Kind enum */
198 /* ----------------------------------- */
199 
200 /*e \dref_SampleRejectedStatusKind
201  */
202 typedef enum
203 {
204  /*e \dref_SampleRejectedStatusKind_NOT_REJECTED
205  */
207 
208  /*e \dref_SampleRejectedStatusKind_REJECTED_BY_INSTANCES_LIMIT
209  */
211 
212  /*e \dref_SampleRejectedStatusKind_REJECTED_BY_SAMPLES_LIMIT
213  */
215 
216  /*e \dref_SampleRejectedStatusKind_REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT
217  */
219 
220  /*e \dref_SampleRejectedStatusKind_REJECTED_BY_REMOTE_WRITERS_LIMIT
221  */
223 
224  /*e \dref_SampleRejectedStatusKind_REJECTED_BY_REMOTE_WRITERS_PER_INSTANCE_LIMIT
225  */
227 
228  /*e \dref_SampleRejectedStatusKind_REJECTED_BY_SAMPLES_PER_REMOTE_WRITER_LIMIT
229  */
232 
233 /*i deprecated */
234 #define DDS_REJECTED_BY_INSTANCE_LIMIT DDS_REJECTED_BY_INSTANCES_LIMIT
235 
236 /* --------------------------------- */
237 /* Sample Rejected Status struct */
238 /* --------------------------------- */
239 
240 /*e \dref_SampleRejectedStatus
241  */
243 {
244 
245  /*e \dref_SampleRejectedStatus_total_count
246  */
248 
249  /*e \dref_SampleRejectedStatus_total_count_change
250  */
252 
253  /*e \dref_SampleRejectedStatus_last_reason
254  */
256 
257  /*e \dref_SampleRejectedStatus_last_instance_handle
258  */
260 
261  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_SampleRejectedStatus)
262 };
263 
264 /*ce \dref_SampleRejectedStatus_INITIALIZER
265  */
266 #define DDS_SampleRejectedStatus_INITIALIZER \
267  { 0L, 0L, DDS_NOT_REJECTED,DDS_HANDLE_NIL_NATIVE }
268 
269 /*ci \dref_SampleRejectedStatus_reset
270  */
271 #define DDS_SampleRejectedStatus_reset(_s) \
272 {\
273  (_s)->total_count_change = 0;\
274 }
275 
276 /* ----------------------------------------- */
277 /* DataReaderInstanceReplaced Status struct */
278 /* ----------------------------------------- */
279 
280 /*e \dref_DataReaderInstanceReplacedStatus
281  */
283 {
284  /*e \dref_DataReaderInstanceReplacedStatus_total_count
285  */
287 
288  /*e \dref_DataReaderInstanceReplacedStatus_total_count_change
289  */
291 
292  /*e \dref_DataReaderInstanceReplacedStatus_last_instance_handle
293  */
295 
296  /*e \dref_DataReaderInstanceReplacedStatus_last_replacement_instance
297  */
299 
300  /*e \dref_DataReaderInstanceReplacedStatus_publication_handle
301  */
303 
304  /*e \dref_DataReaderInstanceReplacedStatus_lost_samples
305  */
307 
308  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_DataReaderInstanceReplacedStatus)
309 };
310 
311 /*ce \dref_DataReaderInstanceReplacedStatus_INITIALIZER
312  */
313 #define DDS_DataReaderInstanceReplacedStatus_INITIALIZER \
314  { 0L, 0L, DDS_HANDLE_NIL_NATIVE, \
315  DDS_HANDLE_NIL_NATIVE, DDS_HANDLE_NIL_NATIVE, 0L }
316 
317 /*ci \dref_DataReaderInstanceReplacedStatus_reset
318  */
319 #define DDS_DataReaderInstanceReplacedStatus_reset(_s) \
320 {\
321  (_s)->total_count_change = 0;\
322 }
323 
324 /* --------------------------------- */
325 /* Subscription Match Status struct */
326 /* --------------------------------- */
327 
328 /*e \dref_SubscriptionMatchedStatus
329  */
331 {
332  /*e \dref_SubscriptionMatchedStatus_total_count
333  */
335 
336  /*e \dref_SubscriptionMatchedStatus_total_count_change
337  */
339 
340  /*e \dref_SubscriptionMatchedStatus_current_count
341  */
343 
344  /*e \dref_SubscriptionMatchedStatus_current_count_change
345  */
347 
348  /*e \dref_SubscriptionMatchedStatus_last_publication_handle
349  */
351 
352  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_SubscriptionMatchedStatus)
353 };
354 
355 /*ce \dref_SubscriptionMatchedStatus_INITIALIZER
356  */
357 #define DDS_SubscriptionMatchedStatus_INITIALIZER \
358  { 0L, 0L, 0L, 0L, DDS_HANDLE_NIL_NATIVE}
359 
360 /*ci \dref_SubscriptionMatchedStatus_reset
361  */
362 #define DDS_SubscriptionMatchedStatus_reset(_s) \
363 {\
364  (_s)->total_count_change = 0;\
365  (_s)->current_count_change = 0;\
366 }
367 
368 /*i \dref_RequestedDeadlineMissedStatus_initialize
369  */
370 DDSCDllExport DDS_ReturnCode_t
371 DDS_RequestedDeadlineMissedStatus_initialize(
372  struct DDS_RequestedDeadlineMissedStatus *self);
373 
374 /*i \dref_RequestedIncompatibleQosStatus_initialize
375  */
376 DDSCDllExport DDS_ReturnCode_t
377 DDS_RequestedIncompatibleQosStatus_initialize(
379 
380 struct DDS_SampleLostStatus;
381 
382 /*i \dref_SampleLostStatus_initialize
383  */
384 DDSCDllExport DDS_ReturnCode_t
385 DDS_SampleLostStatus_initialize(
386  struct DDS_SampleLostStatus *self);
387 
388 /*i \dref_SampleRejectedStatus_initialize
389  */
390 DDSCDllExport DDS_ReturnCode_t
391 DDS_SampleRejectedStatus_initialize(
392  struct DDS_SampleRejectedStatus *self);
393 
394 /*i \dref_SubscriptionMatchedStatus_initialize
395  */
396 DDSCDllExport DDS_ReturnCode_t
397 DDS_SubscriptionMatchedStatus_initialize(
398  struct DDS_SubscriptionMatchedStatus *self);
399 
400 /*i \dref_LivelinessChangedStatus_initialize
401  */
402 DDSCDllExport DDS_ReturnCode_t
403 DDS_LivelinessChangedStatus_initialize(
404  struct DDS_LivelinessChangedStatus *self);
405 
406 /*i \dref_DataReaderInstanceReplacedStatus_initialize
407  */
408 DDSCDllExport DDS_ReturnCode_t
409 DDS_DataReaderInstanceReplacedStatus_initialize(
411 
412 /* ================================================================= */
413 /* Sample States */
414 /* ================================================================= */
415 
416 /* ---------------------------- */
417 /* Sample State Kind enum */
418 /* ---------------------------- */
419 
420 /*e \dref_SampleStateKind
421  */
422 typedef enum
423 {
424  /*e \dref_SampleStateKind_READ_SAMPLE_STATE
425  */
426  DDS_READ_SAMPLE_STATE = 0x0001 << 0,
427 
428  /*e \dref_SampleStateKind_NOT_READ_SAMPLE_STATE
429  */
432 
433 /* ---------------------------- */
434 /* Sample State Mask */
435 /* ---------------------------- */
436 
437 /*e \dref_SampleStateMask
438  */
440 
441 /*e \dref_ANY_SAMPLE_STATE
442  */
443 extern DDSCDllVariable const DDS_SampleStateMask DDS_ANY_SAMPLE_STATE;
444 
445 /* ================================================================= */
446 /* View States */
447 /* ================================================================= */
448 
449 /* ---------------------------- */
450 /* View State Kind enum */
451 /* ---------------------------- */
452 
453 /*e \dref_ViewStateKind
454  */
455 typedef enum
456 {
457  /*e \dref_ViewStateKind_NEW_VIEW_STATE
458  */
459  DDS_NEW_VIEW_STATE = 0x0001 << 0,
460 
461  /*e \dref_ViewStateKind_NOT_NEW_VIEW_STATE
462  */
465 
466 /* ---------------------------- */
467 /* View State Mask */
468 /* ---------------------------- */
469 
470 /*e \dref_ViewStateMask
471  */
473 
474 /*e \dref_ANY_VIEW_STATE
475  */
476  extern DDSCDllVariable const DDS_ViewStateMask DDS_ANY_VIEW_STATE;
477 
478 /* ================================================================= */
479 /* Instance States */
480 /* ================================================================= */
481 
482 /* ---------------------------- */
483 /* Instance State Kind enum */
484 /* ---------------------------- */
485 
486 /*e \dref_InstanceStateKind
487  */
488  typedef enum
489  {
490  /*e \dref_InstanceStateKind_ALIVE_INSTANCE_STATE
491  */
493 
494  /*e \dref_InstanceStateKind_NOT_ALIVE_DISPOSED_INSTANCE_STATE
495  */
497 
498  /*e \dref_InstanceStateKind_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE
499  */
502 
503 /* ---------------------------- */
504 /* Instance State Mask */
505 /* ---------------------------- */
506 
507 /*e \dref_InstanceStateMask
508  */
510 
511 /*e \dref_ANY_INSTANCE_STATE
512  */
513 extern DDSCDllVariable const DDS_InstanceStateMask DDS_ANY_INSTANCE_STATE;
514 
515 /*e \dref_NOT_ALIVE_INSTANCE_STATE
516  */
517 extern DDSCDllVariable const DDS_InstanceStateMask DDS_NOT_ALIVE_INSTANCE_STATE;
518 
519 
520 /* ================================================================= */
521 /* Sample Info */
522 /* ================================================================= */
523 
524 /* --------------------------- */
525 /* Sample Info struct */
526 /* --------------------------- */
527 
528 /*e \dref_SampleInfo
529  */
531 {
532  /*e \dref_SampleInfo_sample_state
533  */
535 
536  /*e \dref_SampleInfo_view_state
537  */
539 
540  /*e \dref_SampleInfo_instance_state
541  */
543 
544  /*e \dref_SampleInfo_source_timestamp
545  */
547 
548  /*e \dref_SampleInfo_instance_handle
549  */
551 
552  /*e \dref_SampleInfo_publication_handle
553  */
555 
556  /*i \dref_SampleInfo_disposed_generation_count
557  */
558  DDS_Long disposed_generation_count;
559 
560  /*i \dref_SampleInfo_no_writers_generation_count
561  */
562  DDS_Long no_writers_generation_count;
563 
564  /*i \dref_SampleInfo_sample_rank
565  */
566  DDS_Long sample_rank;
567 
568  /*i \dref_SampleInfo_generation_rank
569  */
570  DDS_Long generation_rank;
571 
572  /*i \dref_SampleInfo_absolute_generation_rank
573  */
574  DDS_Long absolute_generation_rank;
575 
576  /*e \dref_SampleInfo_valid_data
577  */
579 
580  /*e \dref_SampleInfo_reception_timestamp
581  */
583 
584  /*i \dref_SampleInfo_publication_sequence_number
585  */
586  struct DDS_SequenceNumber_t publication_sequence_number;
587 
588  /*i \dref_SampleInfo_reception_sequence_number
589  */
590  struct DDS_SequenceNumber_t reception_sequence_number;
591 
592  /*i Reserved, for internal use
593  */
594  void *reserved_data;
595 };
596 
597 #define DDS_SampleInfo_INITIALIZER \
598 {\
599  0,0,0,{0,0},DDS_HANDLE_NIL_NATIVE,\
600  DDS_HANDLE_NIL_NATIVE,0,0,0,0,0,RTI_FALSE,{0,0},\
601  REDA_SEQUENCE_NUMBER_ZERO,\
602  REDA_SEQUENCE_NUMBER_ZERO,\
603  NULL\
604 }
605 
606 #ifdef __cplusplus
607 } /* extern "C" */
608 #endif
609 
610 /*DDS_SEQUENCE(DDS_SampleInfoSeq, struct DDS_SampleInfo)
611 */
612 
613 REDA_DEFINE_SEQUENCE_STRUCT(DDS_SampleInfoSeq, struct DDS_SampleInfo)
614 
615 #ifdef __cplusplus
616 extern "C" {
617 #endif
618 REDA_DEFINE_SEQUENCE_IN_C(DDS_SampleInfoSeq, struct DDS_SampleInfo)
619 
620 
621 #ifdef DOXYGEN_DOCUMENTATION_ONLY
622 
623 /*e \dref_SampleInfoSeq
624  */
626 #endif
627 
628 #ifdef __cplusplus
629 } /* extern "C" */
630 #endif
631 
632 /* ------------------------- */
633 /* Sample Lost Status */
634 /* ------------------------- */
635 
636 /*e \dref_SampleLostStatusKind
637  */
638 typedef enum
639 {
640  /*e \dref_SampleLostStatusKind_NOT_LOST
641  */
643 
644  /*e \dref_SampleLostStatusKind_BY_DATAWRITER
645  */
647 
648  /*e \dref_SampleLostStatusKind_BY_MAX_SAMPLES_LIMIT
649  */
651 
652  /*e \dref_SampleLostStatusKind_BY_HISTORY_DEPTH_LIMIT
653  */
655 
656  /*e \dref_SampleLostStatusKind_BY_META_SAMPLE_LIMIT
657  */
659 
660  /*e \dref_SampleLostStatusKind_BY_NOT_READ_ON_CACHE_DELETION
661  */
664 
665 /*e \dref_SampleLostStatus
666  */
668 {
669  /*e \dref_SampleLostStatus_total_count
670  */
672 
673  /*e \dref_SampleLostStatus_total_count_change
674  */
676 
677  /*e \dref_SampleLostStatus_reason
678  */
680 
681  /*e \dref_SampleLostStatus_sample_info
682  */
684 
685  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_SampleLostStatus)
686 };
687 
688 /*ce \dref_SampleLostStatus_INITIALIZER
689  */
690 #define DDS_SampleLostStatus_INITIALIZER \
691 { \
692  0L, 0L,DDS_SAMPLE_LOST_NOT_LOST,DDS_SampleInfo_INITIALIZER \
693 }
694 
695 /*ci \dref_SampleLostStatus_reset
696  */
697 #define DDS_SampleLostStatus_reset(_s) \
698 {\
699  (_s)->total_count_change = 0;\
700 }
701 
702 
703 /* ================================================================= */
704 /* QoS */
705 /* ================================================================= */
706 
707 /* --------------------- */
708 /* DataReader QoS struct */
709 /* --------------------- */
710 
711 /*i \dref_DataReaderData
712  */
713 struct DDS_DataReaderData
714 {
715  struct DDS_LocatorSeq *unicast_locator;
716  struct DDS_LocatorSeq *multicast_locator;
717 };
718 
719 /*e \dref_DataReaderQos
720  */
722 {
723  /*e \dref_DataReaderQos_deadline
724  */
726 
727  /*e \dref_DataReaderQos_liveliness
728  */
730 
731  /*e \dref_DataReaderQos_history
732  */
734 
735  /*e \dref_DataReaderQos_resource_limits
736  */
738 
739  /*e \dref_DataReaderQos_ownership
740  */
742 
743  /*e \dref_DataReaderQos_reliability
744  */
746 
747  /*e \dref_DataReaderQos_durability
748  */
750 
751  /* --- Extensions: ---------------------------------------------------- */
752  /*i \dref_DataWriterQos_type_support
753  */
754  struct DDS_TypeSupportQosPolicy type_support;
755 
756  /*e \dref_DataReaderQos_protocol
757  */
759 
760  /*e \dref_DataReaderQos_transport
761  */
763 
764  /*e \dref_DataReaderQos_reader_resource_limits
765  */
767 
768  /*i \dref_DataReaderQos_management
769  */
770  struct RTI_ManagementQosPolicy management;
771 
772  /*i \dref_DataReaderQos_data
773  */
774  struct DDS_DataReaderData *data;
775 
776  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_DataReaderQos)
777 };
778 
779 #ifdef __cplusplus
780 extern "C" {
781 #endif
782 
783 /*ce \dref_DataReaderQos_initialize
784  */
785 DDSCDllExport DDS_ReturnCode_t
787 
788 /*ce \dref_DataReaderQos_copy
789  */
790 DDSCDllExport DDS_ReturnCode_t
792  struct DDS_DataReaderQos *self,
793  const struct DDS_DataReaderQos *source);
794 
795 /*i \dref_DataReaderQos_is_equal
796  */
797 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
798 DDS_DataReaderQos_is_equal(const struct DDS_DataReaderQos *left,
799  const struct DDS_DataReaderQos *right);
800 
801 #ifndef RTI_CERT
802 /*ce \dref_DataReaderQos_finalize
803  */
804 DDSCDllExport DDS_ReturnCode_t
806 #endif
807 
808 /*ce \dref_DataReaderQos_INITIALIZER
809  */
810 #define DDS_DataReaderQos_INITIALIZER { \
811  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
812  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
813  DDS_HISTORY_QOS_POLICY_DEFAULT, \
814  DDS_RESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
815  DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
816  DDS_RELIABILITY_QOS_POLICY_DEFAULT, \
817  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
818  DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
819  DDS_DATA_READER_PROTOCOL_QOS_POLICY_DEFAULT, \
820  DDS_TRANSPORT_QOS_POLICY_DEFAULT, \
821  DDS_DATAREADERRESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
822  RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
823  NULL \
824 }
825 
826 #ifdef __cplusplus
827 } /* extern "C" */
828 #endif
829 
830 /* --------------------- */
831 /* Subscriber QoS struct */
832 /* --------------------- */
833 
834 /*e \dref_SubscriberQos
835  */
837 {
838  /*e \dref_SubscriberQos_entity_factory
839  */
841 
842  /*i \dref_SubscriberQos_management
843  */
844  struct RTI_ManagementQosPolicy management;
845 
846  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_SubscriberQos)
847 };
848 
849 
850 #ifdef __cplusplus
851 extern "C" {
852 #endif
853 
854 /*ce \dref_SubscriberQos_initialize
855  */
856 DDSCDllExport DDS_ReturnCode_t
858 
859 /*ce \dref_SubscriberQos_copy
860  */
861 DDSCDllExport DDS_ReturnCode_t
863  struct DDS_SubscriberQos *self,
864  const struct DDS_SubscriberQos *source);
865 
866 /*i \dref_SubscriberQos_is_equal
867  */
868 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
869 DDS_SubscriberQos_is_equal(
870  const struct DDS_SubscriberQos *self,
871  const struct DDS_SubscriberQos *source);
872 
873 #ifndef RTI_CERT
874 /*ce \dref_SubscriberQos_finalize
875  */
876 DDSCDllExport DDS_ReturnCode_t
878 #endif
879 
880 /*ce \dref_SubscriberQos_INITIALIZER
881  */
882 #define DDS_SubscriberQos_INITIALIZER { \
883  DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
884  RTI_MANAGEMENT_QOS_POLICY_DEFAULT \
885 }
886 
887 /* ================================================================= */
888 /* Listeners */
889 /* ================================================================= */
890 
891 /*ci @ingroup DDSReaderModule
892  @brief Pointer to DDS_DataReader
893  */
894 typedef DDS_DataReader *DDS_DataReader_ptr;
895 
896 /*ci @ingroup DDSReaderModule
897  @brief Note: can't use DDS_DataReader* !!
898 
899  The sequence definition uses a macro that will prepend 'const' to the type
900  name in certain cases. The C++ compiler will interpret this 'const'
901  incorrectly without the intervening typedef (it will consider the element
902  type to be a pointer to a constant datareader, when what is desired in a
903  constant pointer to a non-constant datareader).
904 */
905 DDS_SEQUENCE(DDS_DataReaderSeq, DDS_DataReader_ptr)
906 
907 #ifdef DOXYGEN_DOCUMENTATION_ONLY
908 
909 /*ce \dref_DataReaderSeq
910  */
912 #endif
913 
914 /* -------------------------------------- */
915 /* DataReader Listener callback typedefs */
916 /* -------------------------------------- */
917 
918 /*ce \dref_DataReaderListener_RequestedDeadlineMissedCallback
919  */
920 typedef void
922  void *listener_data,
923  DDS_DataReader* reader,
924  const struct DDS_RequestedDeadlineMissedStatus *status);
925 
926 
927 /*ce \dref_DataReaderListener_LivelinessChangedCallback
928  */
929 typedef void
931  void *listener_data,
932  DDS_DataReader *reader,
933  const struct DDS_LivelinessChangedStatus *status);
934 
935 /*ce \dref_DataReaderListener_RequestedIncompatibleQosCallback
936  */
937 typedef void
939  void *listener_data,
940  DDS_DataReader *reader,
941  const struct DDS_RequestedIncompatibleQosStatus *status);
942 
943 /*ce \dref_DataReaderListener_SampleRejectedCallback
944  */
945 typedef void
947  void *listener_data,
948  DDS_DataReader *reader,
949  const struct DDS_SampleRejectedStatus *status);
950 
951 /*ce \dref_DataReaderListener_DataAvailableCallback
952  */
953 typedef void
955  void *listener_data,
956  DDS_DataReader *reader);
957 
958 /*ce \dref_DataReaderListener_SubscriptionMatchedCallback
959  */
960 typedef void
962  void *listener_data,
963  DDS_DataReader *reader,
964  const struct DDS_SubscriptionMatchedStatus *status);
965 
966 /*ce \dref_DataReaderListener_SampleLostCallback
967  */
968 typedef void
970  void *listener_data,
971  DDS_DataReader *reader,
972  const struct DDS_SampleLostStatus *status);
973 
974 /*ce \dref_DataReaderListener_InstanceReplacedCallback
975  */
976 typedef void
978  void *listener_data,
979  DDS_DataReader *reader,
980  const struct DDS_DataReaderInstanceReplacedStatus *status);
981 
982 #if DOXYGEN_DOCUMENTATION_ONLY
983 /*ce \dref_DataReaderListener_BeforeSampleDeserializeCallback
984  */
985 typedef DDS_Boolean
987  void *listener_data,
988  DDS_DataReader *reader,
989  struct NDDS_Type_Plugin *plugin,
990  struct CDR_Stream_t *stream,
991  DDS_Boolean *dropped);
992 #else
993 
994 FUNCTION_MUST_TYPEDEF(
997  void *listener_data,
998  DDS_DataReader *reader,
999  struct NDDS_Type_Plugin *plugin,
1000  struct CDR_Stream_t *stream,
1001  DDS_Boolean *dropped)
1002 )
1003 #endif
1004 
1005 #if DOXYGEN_DOCUMENTATION_ONLY
1006 /*ce \dref_DataReaderListener_BeforeSampleCommitCallback
1007  */
1008 typedef DDS_Boolean
1010  void *listener_data,
1011  DDS_DataReader *reader,
1012  const void *const sample,
1013  DDS_Boolean *dropped);
1014 #else
1015 
1016 FUNCTION_MUST_TYPEDEF(
1019  void *listener_data,
1020  DDS_DataReader *reader,
1021  const void *const sample,
1022  const struct DDS_SampleInfo *const sample_info,
1023  DDS_Boolean *dropped)
1024 )
1025 #endif
1026 
1027 /* -------------------------- */
1028 /* DataReader Listener struct */
1029 /* -------------------------- */
1030 
1031 /*ce \dref_DataReaderListener
1032  */
1034 {
1035  /*ce \dref_DataReaderListener_as_listener
1036  */
1038 
1039  /*ce \dref_DataReaderListener_on_requested_deadline_missed
1040  */
1043 
1044  /*ce \dref_DataReaderListener_on_requested_incompatible_qos
1045  */
1048 
1049  /*ce \dref_DataReaderListener_on_sample_rejected
1050  */
1053 
1054  /*ce \dref_DataReaderListener_on_liveliness_changed
1055  */
1058 
1059  /*ce \dref_DataReaderListener_on_data_available
1060  */
1063 
1064  /*ce \dref_DataReaderListener_on_subscription_matched
1065  */
1068 
1069  /*ce \dref_DataReaderListener_on_sample_lost
1070  */
1073 
1074  /*ce \dref_DataReaderListener_on_before_sample_deserialize
1075  */
1078 
1079  /*ce \dref_DataReaderListener_on_before_sample_commit
1080  */
1083 
1084  /*ce \dref_DataReaderListener_on_instance_replaced
1085  */
1088 };
1089 
1090 /*ce \dref_DataReaderListener_INITIALIZER
1091  */
1092 #define DDS_DataReaderListener_INITIALIZER \
1093 {\
1094  DDS_Listener_INITIALIZER, \
1095  (DDS_DataReaderListener_RequestedDeadlineMissedCallback)NULL, \
1096  (DDS_DataReaderListener_RequestedIncompatibleQosCallback)NULL, \
1097  (DDS_DataReaderListener_SampleRejectedCallback)NULL, \
1098  (DDS_DataReaderListener_LivelinessChangedCallback)NULL, \
1099  (DDS_DataReaderListener_DataAvailableCallback)NULL, \
1100  (DDS_DataReaderListener_SubscriptionMatchedCallback)NULL, \
1101  (DDS_DataReaderListener_SampleLostCallback)NULL,\
1102  (DDS_DataReaderListener_BeforeSampleDeserializeCallback)NULL,\
1103  (DDS_DataReaderListener_BeforeSampleCommitCallback)NULL,\
1104  (DDS_DataReaderListener_InstanceReplacedCallback)NULL\
1105 }
1106 
1107 /* -------------------------------------- */
1108 /* Subscriber Listener callback typedefs */
1109 /* -------------------------------------- */
1110 
1111 /*ce \dref_SubscriberListener_DataOnReadersCallback
1112  */
1113 typedef void
1115  void *listener_data,
1116  DDS_Subscriber *sub);
1117 
1118 
1119 /* ----------------------------- */
1120 /* Subscriber Listener struct */
1121 /* ----------------------------- */
1122 
1123 /*ce \dref_SubscriberListener
1124  */
1126 {
1127 
1128  /*ce \dref_SubscriberListener_as_datareaderlistener
1129  */
1131 
1132  /*ce \dref_SubscriberListener_on_data_on_readers
1133  */
1135 };
1136 
1137 /*ce \dref_SubscriberListener_INITIALIZER
1138  */
1139 #define DDS_SubscriberListener_INITIALIZER \
1140  { DDS_DataReaderListener_INITIALIZER, \
1141  (DDS_SubscriberListener_DataOnReadersCallback)NULL }
1142 
1143 /* ================================================================= */
1144 /* Subscriber */
1145 /* ================================================================= */
1146 
1147 /*e \dref_DATAREADER_QOS_DEFAULT
1148  */
1149 extern DDSCDllVariable const struct DDS_DataReaderQos
1151 
1152 /*e \dref_DATAREADER_QOS_USE_TOPIC_QOS
1153  */
1154 extern DDSCDllVariable const struct DDS_DataReaderQos
1156 
1157 /* ----------------------------------------------------------------- */
1158 #define DDS_Subscriber_as_entity(subscriberPtr) \
1159  ((DDS_Entity*) subscriberPtr)
1160 
1161 /* ----------------------------------------------------------------- */
1162 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1163 
1164 /*ce \dref_Subscriber_as_entity
1165  */
1167 
1168 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
1169 
1170 /* ----------------------------------------------------------------- */
1171 /*ce \dref_Subscriber_get_default_datareader_qos
1172  */
1173 /* #if INCLUDE_API_QOS */
1174 DDSCDllExport DDS_ReturnCode_t
1176  DDS_Subscriber *self,
1177  struct DDS_DataReaderQos *qos);
1178 
1179 /* ----------------------------------------------------------------- */
1180 /*ce \dref_Subscriber_set_default_datareader_qos
1181  */
1182 /* #if INCLUDE_API_QOS */
1183 DDSCDllExport DDS_ReturnCode_t
1185  DDS_Subscriber *self,
1186  const struct DDS_DataReaderQos *qos);
1187 
1188 /* ----------------------------------------------------------------- */
1189 /*ce \dref_Subscriber_create_datareader
1190  */
1191 DDSCDllExport DDS_DataReader*
1193  DDS_TopicDescription *topic,
1194  const struct DDS_DataReaderQos *qos,
1195  const struct DDS_DataReaderListener *listener,
1196  DDS_StatusMask mask);
1197 
1198 /* ----------------------------------------------------------------- */
1199 #ifndef RTI_CERT
1200 /*ce \dref_Subscriber_delete_datareader
1201  */
1202 DDSCDllExport DDS_ReturnCode_t
1204  DDS_Subscriber *self,
1205  DDS_DataReader *a_datareader);
1206 #endif
1207 
1208 /* ----------------------------------------------------------------- */
1209 /*ce \dref_Subscriber_enable
1210  */
1211 DDSCDllExport DDS_ReturnCode_t
1213 
1214 /* ----------------------------------------------------------------- */
1215 #ifndef RTI_CERT
1216 /*ce \dref_Subscriber_delete_contained_entities
1217  */
1218 DDSCDllExport DDS_ReturnCode_t
1220 #endif
1221 
1222 /* ----------------------------------------------------------------- */
1223 /* #ifdef INCLUDE_API_LOOKUP */
1224 /*ce \dref_Subscriber_lookup_datareader
1225  */
1226 DDSCDllExport DDS_DataReader*
1228  DDS_Subscriber *self,
1229  const char *topic_name);
1230 
1231 /* ----------------------------------------------------------------- */
1232 /*ce \dref_Subscriber_get_participant
1233  */
1234 DDSCDllExport DDS_DomainParticipant*
1236 
1237 
1238 /* ----------------------------------------------------------------- */
1239 /* #if INCLUDE_API_QOS */
1240 /*ce \dref_Subscriber_set_qos
1241  */
1242 DDSCDllExport DDS_ReturnCode_t
1244  DDS_Subscriber* self,
1245  const struct DDS_SubscriberQos *qos);
1246 
1247 /* ----------------------------------------------------------------- */
1248 /* #if INCLUDE_API_QOS */
1249 /*ce \dref_Subscriber_get_qos
1250  */
1251 DDSCDllExport DDS_ReturnCode_t
1253  DDS_Subscriber *self,
1254  struct DDS_SubscriberQos *qos);
1255 
1256 /* ----------------------------------------------------------------- */
1257 /*ce \dref_Subscriber_set_listener
1258  */
1259 DDSCDllExport DDS_ReturnCode_t
1261  DDS_Subscriber * self,
1262  const struct DDS_SubscriberListener *l,
1263  DDS_StatusMask mask);
1264 
1265 /*ce \dref_Subscriber_get_listener
1266  */
1267 DDSCDllExport struct DDS_SubscriberListener
1269 
1270 /* ================================================================= */
1271 /* Data Reader */
1272 /* ================================================================= */
1273 #define DDS_DataReader_as_entity(dataReaderPtr) \
1274  ((DDS_Entity*) dataReaderPtr)
1275 
1276 /* ----------------------------------------------------------------- */
1277 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1278 /*ce \dref_DataReader_as_entity
1279  */
1280 DDS_Entity *
1282 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
1283 
1284 /* ----------------------------------------------------------------- */
1285 /*ce \dref_DataReader_enable
1286  */
1287 DDSCDllExport DDS_ReturnCode_t
1289 
1290 /* ----------------------------------------------------------------- */
1291 #if INCLUDE_API_LOOKUP
1292 /*ce \dref_DataReader_get_matched_publications
1293  */
1294 DDSCDllExport DDS_ReturnCode_t
1295 DDS_DataReader_get_matched_publications(
1296  DDS_DataReader *self,
1297  struct DDS_InstanceHandleSeq *publication_handles);
1298 #endif /* INCLUDE_API_LOOKUP */
1299 
1300 struct DDS_PublicationBuiltinTopicData;
1301 /* ----------------------------------------------------------------- */
1302 #if INCLUDE_API_LOOKUP
1303 /*ce \dref_DataReader_get_matched_publication_data
1304  */
1305 DDSCDllExport DDS_ReturnCode_t
1306 DDS_DataReader_get_matched_publication_data(
1307  DDS_DataReader *self,
1308  struct DDS_PublicationBuiltinTopicData *publication_data,
1309  const DDS_InstanceHandle_t *publication_handle);
1310 #endif /* INCLUDE_API_LOOKUP */
1311 
1312 /* ----------------------------------------------------------------- */
1313 /*ce \dref_DataReader_get_topicdescription
1314  */
1315 DDSCDllExport DDS_TopicDescription*
1317 
1318 /* ----------------------------------------------------------------- */
1319 /*ce \dref_DataReader_get_subscriber
1320  */
1321 DDSCDllExport DDS_Subscriber*
1323 
1324 
1325 /* ----------------------------------------------------------------- */
1326 /*e \dref_DataReader_get_sample_rejected_status
1327  */
1328 DDSCDllExport DDS_ReturnCode_t
1330  DDS_DataReader *self,
1331  struct DDS_SampleRejectedStatus *status);
1332 
1333 /* ----------------------------------------------------------------- */
1334 /*e \dref_DataReader_get_liveliness_changed_status
1335  */
1336 DDSCDllExport DDS_ReturnCode_t
1338  DDS_DataReader *self,
1339  struct DDS_LivelinessChangedStatus *status);
1340 
1341 /* ----------------------------------------------------------------- */
1342 /*e \dref_DataReader_get_requested_deadline_missed_status
1343  */
1344 DDSCDllExport DDS_ReturnCode_t
1346  DDS_DataReader *self,
1347  struct DDS_RequestedDeadlineMissedStatus *status);
1348 
1349 /* ----------------------------------------------------------------- */
1350 /*e \dref_DataReader_get_requested_incompatible_qos_status
1351  */
1352 DDSCDllExport DDS_ReturnCode_t
1354  DDS_DataReader *self,
1355  struct DDS_RequestedIncompatibleQosStatus *status);
1356 
1357 /* ----------------------------------------------------------------- */
1358 /*e \dref_DataReader_get_subscription_matched_status
1359  */
1360 DDSCDllExport DDS_ReturnCode_t
1362  DDS_DataReader *self,
1363  struct DDS_SubscriptionMatchedStatus *status);
1364 
1365 /* ----------------------------------------------------------------- */
1366 /*e \dref_DataReader_get_sample_lost_status
1367  */
1368 DDSCDllExport DDS_ReturnCode_t
1370  DDS_DataReader *self,
1371  struct DDS_SampleLostStatus *status);
1372 
1373 /* ----------------------------------------------------------------- */
1374 /*e \dref_DataReader_get_instance_replaced_status
1375  */
1376 DDSCDllExport DDS_ReturnCode_t
1378  DDS_DataReader *self,
1379  struct DDS_DataReaderInstanceReplacedStatus *status);
1380 
1381 /* ----------------------------------------------------------------- */
1382 /* #if INCLUDE_API_QOS */
1383 /*ce \dref_DataReader_set_qos
1384  */
1385 DDSCDllExport DDS_ReturnCode_t
1387  DDS_DataReader* self,
1388  const struct DDS_DataReaderQos *qos);
1389 
1390 /* ----------------------------------------------------------------- */
1391 /* #if INCLUDE_API_QOS */
1392 /*ce \dref_DataReader_get_qos
1393  */
1394 DDSCDllExport DDS_ReturnCode_t
1396  struct DDS_DataReaderQos *qos);
1397 
1398 /* ----------------------------------------------------------------- */
1399 /*ce \dref_DataReader_set_listener
1400  */
1401 DDSCDllExport DDS_ReturnCode_t
1403  DDS_DataReader * self,
1404  const struct DDS_DataReaderListener *l,
1405  DDS_StatusMask mask);
1406 
1407 /* ----------------------------------------------------------------- */
1408 
1409 /*ce \dref_DataReader_get_listener
1410  */
1411 DDSCDllExport struct DDS_DataReaderListener
1413 
1414 /* ----------------------------------------------------------------- */
1415 
1416 /*ce \dref_DataReader_get_instance_replaced_status
1417  */
1420  struct DDS_DataReaderInstanceReplacedStatus *status);
1421 
1422 /* ----------------------------------------------------------------- */
1423 
1424 /****************** Properties Internal API **************************/
1425 
1426 /* ================================================================= */
1427 /* Subscriber Properties */
1428 /* ================================================================= */
1429 
1430 /*i \dref_Subscriber_Properties
1431  */
1432 struct NDDS_Subscriber_Properties
1433 {
1434  DDS_Boolean is_visible;
1435 };
1436 
1437 /*i \dref_Subscriber_Properties_INITIALIZER
1438  */
1439 #define NDDS_Subscriber_Properties_INITIALIZER { \
1440 DDS_BOOLEAN_TRUE }
1441 
1442 /* ================================================================= */
1443 /* DataReader Properties */
1444 /* ================================================================= */
1445 
1446 /*i \dref_DataReader_Properties
1447  */
1448 struct NDDS_DataReader_Properties
1449 {
1450  int dummy; /* otherwise Windows doesn't compile */
1451 };
1452 
1453 /*i \dref_DataReader_Properties_INITIALIZER
1454  */
1455 #define NDDS_DataReader_Properties_INITIALIZER {0}
1456 
1457 #ifdef __cplusplus
1458 }
1459 #endif
1460 
1461 #include "dds_c/dds_c_rh_plugin.h"
1462 
1463 #ifdef __cplusplus
1464 extern "C"
1465 {
1466 #endif
1467 
1468 #define DDS_UntypedSampleSeq REDA_Sequence
1469 #define DDS_UntypedSampleSeq_initialize REDA_Sequence_initialize
1470 #define DDS_UntypedSampleSeq_finalize REDA_Sequence_finalize
1471 #define DDS_UntypedSampleSeq_get_maximum REDA_Sequence_get_maximum
1472 #define DDS_UntypedSampleSeq_set_maximum REDA_Sequence_set_maximum
1473 #define DDS_UntypedSampleSeq_get_length REDA_Sequence_get_length
1474 #define DDS_UntypedSampleSeq_set_length REDA_Sequence_set_length
1475 #define DDS_UntypedSampleSeq_get_reference REDA_Sequence_get_reference
1476 #define DDS_UntypedSampleSeq_copy REDA_Sequence_copy
1477 #define DDS_UntypedSampleSeq_is_equal REDA_Sequence_is_equal
1478 #define DDS_UntypedSampleSeq_loan_contiguous REDA_Sequence_loan_contiguous
1479 #define DDS_UntypedSampleSeq_loan_discontiguous REDA_Sequence_loan_discontiguous
1480 #define DDS_UntypedSampleSeq_unloan REDA_Sequence_unloan
1481 #define DDS_UntypedSampleSeq_has_ownership REDA_Sequence_has_ownership
1482 #define DDS_UntypedSampleSeq_get_buffer REDA_Sequence_get_buffer
1483 #define DDS_UntypedSampleSeq_set_buffer REDA_Sequence_set_buffer
1484 #define DDS_UntypedSampleSeq_has_discontiguous_buffer REDA_Sequence_has_discontiguous_buffer
1485 #define DDS_UntypedSampleSeq_get_token REDA_Sequence_get_token
1486 #define DDS_UntypedSampleSeq_set_token REDA_Sequence_set_token
1487 
1488 /********************* (Untyped) DataReader API ****************************/
1489 /*ce \dref_DataReader_read
1490  */
1491 DDSCDllExport DDS_ReturnCode_t
1493  DDS_DataReader *self,
1494  struct DDS_UntypedSampleSeq *received_data,
1495  struct DDS_SampleInfoSeq *info_seq,
1496  DDS_Long max_samples,
1497  DDS_SampleStateMask sample_states,
1498  DDS_ViewStateMask view_states,
1499  DDS_InstanceStateMask instance_states);
1500 
1501 /*ce \dref_DataReader_take
1502  */
1503 DDSCDllExport DDS_ReturnCode_t
1505  DDS_DataReader *self,
1506  struct DDS_UntypedSampleSeq *received_data,
1507  struct DDS_SampleInfoSeq *info_seq,
1508  DDS_Long max_samples,
1509  DDS_SampleStateMask sample_states,
1510  DDS_ViewStateMask view_states,
1511  DDS_InstanceStateMask instance_states);
1512 
1513 /*ce \dref_DataReader_read_next_sample
1514  */
1515 DDSCDllExport DDS_ReturnCode_t
1517  DDS_DataReader *self,
1518  void *received_data,
1519  struct DDS_SampleInfo *sample_info);
1520 
1521 /*ce \dref_DataReader_take_next_sample
1522  */
1523 DDSCDllExport DDS_ReturnCode_t
1525  DDS_DataReader *self,
1526  void *received_data,
1527  struct DDS_SampleInfo *sample_info);
1528 
1529 /*ce \dref_DataReader_read_instance
1530  */
1531 DDSCDllExport DDS_ReturnCode_t
1533  DDS_DataReader *self,
1534  struct DDS_UntypedSampleSeq *received_data,
1535  struct DDS_SampleInfoSeq *info_seq,
1536  DDS_Long max_samples,
1537  const DDS_InstanceHandle_t *a_handle,
1538  DDS_SampleStateMask sample_states,
1539  DDS_ViewStateMask view_states,
1540  DDS_InstanceStateMask instance_states);
1541 
1542 /*ce \dref_DataReader_take_instance
1543  */
1544 DDSCDllExport DDS_ReturnCode_t
1546  DDS_DataReader *self,
1547  struct DDS_UntypedSampleSeq *received_data,
1548  struct DDS_SampleInfoSeq *info_seq,
1549  DDS_Long max_samples,
1550  const DDS_InstanceHandle_t *a_handle,
1551  DDS_SampleStateMask sample_states,
1552  DDS_ViewStateMask view_states,
1553  DDS_InstanceStateMask instance_states);
1554 
1555 
1556 /*ce \dref_DataReader_return_loan
1557  */
1558 DDSCDllExport DDS_ReturnCode_t
1560  DDS_DataReader *self,
1561  struct DDS_UntypedSampleSeq *received_data,
1562  struct DDS_SampleInfoSeq *info_seq);
1563 
1564 /*ce \dref_DataReader_lookup_instance
1565  */
1566 DDSCDllExport DDS_InstanceHandle_t
1568  const void *key_holder);
1569 
1570 /*i \dref_DataReader_liveliness_lost
1571  */
1572 DDSCDllExport DDS_ReturnCode_t
1573 DDS_DataReader_liveliness_lost(
1574  DDS_DataReader *self,
1575  DDS_InstanceHandle_t *publication_handle);
1576 
1577 /*i \dref_DataReader_add_anonymous_route
1578  */
1579 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
1580 DDS_DataReader_add_anonymous_route(DDS_DataReader *self,
1581  struct NETIO_Address *src_writer,
1582  struct NETIO_Address *from_address);
1583 
1584 /*i \dref_DataReader_delete_anonymous_route
1585  */
1586 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
1587 DDS_DataReader_delete_anonymous_route(DDS_DataReader *self,
1588  struct NETIO_Address *src_writer,
1589  struct NETIO_Address *from_address);
1590 
1591 /* ----------------------------------------------------------------- */
1592 
1593 
1594 #ifdef __cplusplus
1595 } /* extern "C" */
1596 #endif
1597 
1598 
1599 #endif /* dds_c_subscription_h */

RTI Connext Micro Version 2.4.1.0 Copyright © Thu Nov 20 2014 Real-Time Innovations, Inc