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

RTI Connext Micro Version 2.4.4.0 Copyright © Thu Apr 30 2015 Real-Time Innovations, Inc