RTI Connext Micro  Version 2.4.4.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dds_c_infrastructure.h
Go to the documentation of this file.
1 /*
2  * FILE: dds_c_infrastructure.h - DDS infrastructure module definitions
3  *
4  * (c) Copyright, Real-Time Innovations, 2012-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  * 02apr2014,eh MICRO-964/PR#12378 Remove from Cert unused locator defines
16  * 16mar2015,tk MICRO-1129/PR#14274 Increased size of entity_name to
17  * DDS_ENTITYNAME_QOS_NAME_MAX + 1
18  * 25feb2015,eh MICRO-1040/PR#13555 Remove unused DDS_Guid_equals/copy/compare
19  * 09feb2015,tk MICRO-1061/PR#13633 DDS_AUTOMATIC_LIVELINESS_QOS is now default
20  * 08oct2014,tk MICRO-919 Added SampleLostReason to SampleLost status
21  * MICRO-918 Removed TimeBasedFilter qos policy (unsupported)
22  * 20sep2014,as Make support functions for QosPolicy types private; remove macros DDSC_CPP_VALUE_TYPE_SUPPORT_FUNCTIONS
23  * and DDSC_CPP_SUPPORT_TYPE_SUPPORT_FUNCTIONS; update DDSC_CPP_VALUE_TYPE_SUPPORT_METHODS and
24  * DDSC_CPP_STATUS_TYPE_SUPPORT_METHODS to only define method signatures (no inline implementation)
25  * 04aug2014,tk MICRO-846/PR#10203 - Limit exposure of PropertySeq API
26  * MICRO-848/PR#10206 - Limit exposure of PropertySeq API
27  * 29jul2014,tk MICRO-864/PR#10245 Fixed C++ DDS_DataReaderResourceLimitsQosPolicy
28  * 19jul2013,as Added support for C++
29  * 06feb2013,eh MICRO-262: add max_remote_readers
30  * 29jun2012,tk Written
31  */
32 /*ce
33  * \file
34  * \brief DDS Domain Module definitions
35  */
36 /*e @addtogroup DDSInfrastructureModule Infrastructure Module
37  @ingroup DDSCModule
38 
39 
40  @brief Defines the \dds infrastructure package
41 */
42 #ifndef dds_c_infrastructure_h
43 #define dds_c_infrastructure_h
44 
45 #ifndef dds_c_dll_h
46 #include "dds_c/dds_c_dll.h"
47 #endif
48 #ifndef osapi_thread_h
49 #include "osapi/osapi_thread.h"
50 #endif
51 #ifndef netio_rtps_h
52 #include "netio/netio_rtps.h"
53 #endif
54 #ifndef rtps_rtps_h
55 #include "rtps/rtps_rtps.h"
56 #endif
57 #ifndef dds_c_common_h
58 #include "dds_c/dds_c_common.h"
59 #endif
60 #ifndef dds_c_string_h
61 #include "dds_c/dds_c_string.h"
62 #endif
63 #ifndef dds_c_sequence_h
64 #include "dds_c/dds_c_sequence.h"
65 #endif
66 
67 #ifdef __cplusplus
68 extern "C"
69 {
70 #endif
71 
72 #ifndef NULL
73 #define NULL 0
74 #endif
75 
76 /* ================================================================= */
77 /* Micro DDS */
78 /* ================================================================= */
79 #define RTI_MICRODDS
80 #define RTI_MICRODDS_MAJOR 2
81 #define RTI_MICRODDS_MINOR 0
82 
83 /* ================================================================= */
84 /* CPP VALUE-TYPE SUPPORT */
85 /* ================================================================= */
86 
87 
88 #ifdef RTI_CPP
89 #ifndef RTI_CERT
90 #define DDSC_CPP_SUPPORT_METHODS_EXTENDED(T) \
91  public:\
92  T();\
93  ~T();\
94  DDS_ReturnCode_t copy(const T& from);\
95  T(const T& from);\
96  T& operator=(const T& from);\
97  bool operator==(const T& other);\
98  bool operator!=(const T& other);
99 #else /* ifdef RTI_CERT */
100 #define DDSC_CPP_SUPPORT_METHODS_EXTENDED(T) \
101  public:\
102  T();\
103  ~T();\
104  DDS_ReturnCode_t copy(const T& from);\
105  private: \
106  T(const T& from);\
107  T& operator=(const T& from);\
108  bool operator==(const T& other);\
109  bool operator!=(const T& other);
110 #endif /* ifdef RTI_CERT */
111 
112 #define DDSC_CPP_SUPPORT_METHODS_BASIC(T) \
113  public:\
114  T();\
115  ~T();\
116  private: \
117  T(const T& from);\
118  T& operator=(const T& from);\
119  bool operator==(const T& other);\
120  bool operator!=(const T& other);
121 
122 #else /* ifdef RTI_CPP */
123 #define DDSC_CPP_SUPPORT_METHODS_EXTENDED(T)
124 #define DDSC_CPP_SUPPORT_METHODS_BASIC(T)
125 #endif /* ifdef RTI_CPP */
126 
127 /* ================================================================= */
128 /* Time Support */
129 /* ================================================================= */
130 
131 /*e
132  * \dref_TimeSupportGroupDocs
133  */
134 
135 /*e
136  * \dref_Time_t
137  */
139 {
140  /*e
141  * \dref_TimeStamp_sec
142  */
144 
145  /*e
146  * \dref_TimeStamp_nanosec
147  */
149 };
150 
151 /* This is only used by tests, keep as macro */
152 #define DDS_Time_t_greater_than(l, r) \
153  (((l).sec > (r).sec) || \
154  (((l).sec == (r).sec) && \
155  ((l).nanosec > (r).nanosec)))
156 
157 #ifdef DOXYGEN_DOCUMENTATION_ONLY
158 /*e
159  * \dref_Time_t_greater_than
160  */
162  const struct DDS_Time_t *l, const struct DDS_Time_t *r);
163 
164 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
165 
166 /*e
167  * \dref_Time_t_ZERO
168  */
169 #define DDS_TIME_ZERO { 0L, 0UL }
170 
171 /* This is only used by tests, keep as macro */
172 #define DDS_Time_is_zero(timePtr) \
173  ((timePtr)->sec == 0L || (timePtr)->nanosec == 0UL)
174 
175 #ifdef DOXYGEN_DOCUMENTATION_ONLY
176 
177 /*e
178  * \dref_Time_t_is_zero
179  */
180  DDS_Boolean DDS_Time_is_zero(const struct DDS_Time_t *time);
181 
182 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
183 
184 /*e
185  * \dref_Time_t_INVALID_SEC
186  */
187 extern DDSCDllVariable const DDS_Long DDS_TIME_INVALID_SEC;
188 
189 /*e
190  * \dref_Time_t_INVALID_NSEC
191  */
192 extern DDSCDllVariable const DDS_UnsignedLong DDS_TIME_INVALID_NSEC;
193 
194 /*e
195  * \dref_Time_t_INVALID
196  */
197 extern DDSCDllVariable const struct DDS_Time_t DDS_TIME_INVALID;
198 
199 /* ================================================================= */
200 /* Duration */
201 /* ================================================================= */
202 /*e \dref_Duration_t
203  */
205 {
206  /*e \dref_TimeStamp_sec
207  */
209 
210  /*e \dref_TimeStamp_nanosec
211  */
213 };
214 
215 /*e \dref_Duration_t_INFINITE_SEC
216  */
217 extern DDSCDllVariable const DDS_Long DDS_DURATION_INFINITE_SEC;
218 
219 /*e \dref_Duration_t_INFINITE_NSEC
220  */
221 extern DDSCDllVariable const DDS_UnsignedLong DDS_DURATION_INFINITE_NSEC;
222 
223 /*e \dref_Duration_t_INFINITE
224  */
225 extern DDSCDllVariable const struct DDS_Duration_t DDS_DURATION_INFINITE;
226 
227 /*e \dref_Duration_t_is_infinite
228  */
229 DDSCDllExport DDS_Boolean
230 DDS_Duration_is_infinite(const struct DDS_Duration_t *duration);
231 
232 /*ce \dref_Duration_t_compare
233  */
234 DDSCDllExport int
235 DDS_Duration_compare(const struct DDS_Duration_t *left,
236  const struct DDS_Duration_t *right);
237 
238 /*ce \dref_Duration_t_to_ntp_time
239  */
240 DDSCDllExport void
241 DDS_Duration_to_ntp_time(const struct DDS_Duration_t *self,
242  struct OSAPI_NtpTime *dst);
243 
244 /*ce \dref_Duration_t_from_ntp_time
245  */
246 DDSCDllExport void
248  const struct OSAPI_NtpTime *src);
249 
250 /*e
251  * \dref_Duration_t_equal
252  */
253 DDSCDllExport DDS_Boolean
254 DDS_Duration_equal(const struct DDS_Duration_t *self,
255  const struct DDS_Duration_t *other);
256 /*i
257  *\brief Set a duration structure's seconds and nanoseconds
258  *
259  * \param[inout] self The duration structure
260  * \param[in] sec The seconds part
261  * \param[in] nanosec The nano seconds part
262  */
263 DDSCDllExport void
264 DDS_Duration_set(struct DDS_Duration_t *self,
266 
267 /*e \dref_Duration_t_ZERO_SEC
268  */
269 extern DDSCDllVariable const DDS_Long DDS_DURATION_ZERO_SEC;
270 
271 /*e \dref_Duration_t_ZERO_NSEC
272  */
273 extern DDSCDllVariable const DDS_UnsignedLong DDS_DURATION_ZERO_NSEC;
274 
275 /*e \dref_Duration_t_ZERO
276  */
277 extern DDSCDllVariable const struct DDS_Duration_t DDS_DURATION_ZERO;
278 
279 /*e \dref_Duration_t_is_zero
280  */
281 DDSCDllExport DDS_Boolean
282 DDS_Duration_is_zero(const struct DDS_Duration_t *duration);
283 
284 /* ================================================================= */
285 /* Instance Handle */
286 /* ================================================================= */
287 
288 /*e \dref_InstanceHandle_t
289  */
290 typedef DDS_HANDLE_TYPE_NATIVE DDS_InstanceHandle_t;
291 
292 #define T DDS_InstanceHandle_t
293 #define TSeq DDS_InstanceHandleSeq
294 #include <reda/reda_sequence_decl.h>
295 
296 #ifdef DOXYGEN_DOCUMENTATION_ONLY
297 /*i \dref_InstanceHandleSeq
298  */
299 struct DDS_InstanceHandleSeq {};
300 #endif
301 
302 /*e \dref_InstanceHandle_t_NIL
303 */
304 extern DDSCDllVariable const DDS_InstanceHandle_t DDS_HANDLE_NIL;
305 
306 /*e \dref_InstanceHandle_t_equals
307  */
308 DDSCDllExport DDS_Boolean
309 DDS_InstanceHandle_equals(const DDS_InstanceHandle_t *self,
310  const DDS_InstanceHandle_t *other);
311 
312 #define DDS_InstanceHandle_is_nil(handlePtr) \
313  DDS_InstanceHandle_equals(handlePtr, &DDS_HANDLE_NIL)
314 
315 #ifdef DOXYGEN_DOCUMENTATION_ONLY
316 /*e \dref_InstanceHandle_t_is_nil
317  */
318  DDS_Boolean DDS_InstanceHandle_is_nil(const DDS_InstanceHandle_t * self);
319 #endif
320 
321 /*i \dref_InstanceHandle_t_from_rtps
322  */
323 DDSCDllExport void
324 DDS_InstanceHandle_from_rtps(DDS_InstanceHandle_t * self,
325  const struct RTPS_Guid *other);
326 
327 /*i \dref_InstanceHandle_t_to_rtps
328  */
329 DDSCDllExport void
330 DDS_InstanceHandle_to_rtps(struct RTPS_Guid *other,
331  const DDS_InstanceHandle_t * self);
332 
333 /*i \dref_InstanceHandle_t_from_netio_address
334  */
335 DDSCDllExport void
336 DDS_InstanceHandle_from_netio_address(DDS_InstanceHandle_t * self,
337  const struct NETIO_Address *other);
338 
339 /*e \dref_InstanceHandle_t_equals
340  */
341 DDSCDllExport DDS_Boolean
342 DDS_InstanceHandle_equals(const DDS_InstanceHandle_t * self,
343  const DDS_InstanceHandle_t * other);
344 
345 /*i \dref_InstanceHandle_t_compare
346  */
347 DDSCDllExport DDS_Long
348 DDS_InstanceHandle_compare(const DDS_InstanceHandle_t * self,
349  const DDS_InstanceHandle_t * other);
350 
351 /* ================================================================= */
352 /* GUID */
353 /* ================================================================= */
354 
355 /*e
356  * \dref_GUIDSupportGroupDocs
357  */
358 
359 /*e \dref_GUID_t
360  */
362 {
363  /*e \dref_GUID_t_value
364  */
366 };
367 
368 /*i \dref_GUID_t_INITIALIZER
369  */
370 #define DDS_GUID_INITIALIZER {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
371 
372 /*i \dref_GUID_t_AUTO
373 */
374 extern DDSCDllVariable const struct DDS_GUID_t DDS_GUID_AUTO;
375 
376 /*e \dref_GUID_t_UNKNOWN
377 */
378 extern DDSCDllVariable const struct DDS_GUID_t DDS_GUID_UNKNOWN;
379 
380 /*i \dref_GUID_t_PREFIX_UNKNOWN
381 */
382 extern DDSCDllVariable const struct DDS_GUID_t DDS_GUID_PREFIX_UNKNOWN;
383 
384 /*i \dref_GUID_t_PREFIX_UNKNOWN
385  */
386 extern DDSCDllVariable const struct DDS_GUID_t DDS_GUID_PREFIX_AUTO;
387 
388 /*i \dref_GUID_t_to_rtps
389  @brief Convert from DDS GUID to RTPS GUID
390  */
391 DDSCDllExport void
392 DDS_GUID_to_rtps(struct RTPS_Guid *other,
393  const struct DDS_GUID_t *self);
394 
395 /*i \dref_GUID_t_from_rtps
396  @brief Convert from RTPS GUID to DDS GUID
397  */
398 DDSCDllExport void
399 DDS_GUID_from_rtps(struct DDS_GUID_t *self,
400  const struct RTPS_Guid *other);
401 
402 /*i \dref_GUID_t_set_suffix
403  @brief Set the suffix of a GUID
404  */
405 DDSCDllExport void
406 DDS_GUID_set_suffix(struct DDS_GUID_t *self,DDS_Long suffix);
407 
408 /* ================================================================= */
409 /* Sequence Number Support */
410 /* ================================================================= */
411 
412 /*e
413  * \dref_SequenceNumberSupportGroupDocs
414  */
415 
416 /*e \dref_SequenceNumber_t
417  */
419 {
420  /*e \dref_SequenceNumber_t_high
421  */
423 
424  /*e \dref_SequenceNumber_t_low
425  */
427 };
428 
429 /*i \dref_SequenceNumber_NUMBER_UNKNOWN
430  */
431 #define DDS_SEQUENCE_NUMBER_UNKNOWN REDA_SEQUENCE_NUMBER_UNKNOWN
432 
433 /*i \dref_SequenceNumber_NUMBER_ZERO
434  */
435 #define DDS_SEQUENCE_NUMBER_ZERO REDA_SEQUENCE_NUMBER_ZERO
436 
437 /*i \dref_SequenceNumber_NUMBER_MAX
438  */
439 #define DDS_SEQUENCE_NUMBER_MAX REDA_SEQUENCE_NUMBER_MAX
440 
441 /*e \dref_SequenceNumber_t_compare
442  */
443 DDSCDllExport int
445  const struct DDS_SequenceNumber_t *sn2);
446 
447 
448 /* ================================================================= */
449 /* Return Types */
450 /* ================================================================= */
451 /*e \dref_ReturnCodeGroupDocs
452  */
453 
454 /* ----------------------------------------------------------------- */
455 /*e \dref_ReturnCode_t
456 */
457 typedef enum
458 {
459  /*e \dref_ReturnCode_t_RETCODE_OK
460  */
462 
463  /*e \dref_ReturnCode_t_RETCODE_ERROR
464  */
466 
467  /*e \dref_ReturnCode_t_RETCODE_UNSUPPORTED
468  */
470 
471  /*e \dref_ReturnCode_t_RETCODE_BAD_PARAMETER
472  */
474 
475  /*e \dref_ReturnCode_t_RETCODE_PRECONDITION_NOT_MET
476  */
478 
479  /*e \dref_ReturnCode_t_RETCODE_OUT_OF_RESOURCES
480  */
482 
483  /*e \dref_ReturnCode_t_RETCODE_NOT_ENABLED
484  */
486 
487  /*e \dref_ReturnCode_t_RETCODE_IMMUTABLE_POLICY
488  */
490 
491  /*e \dref_ReturnCode_t_RETCODE_INCONSISTENT_POLICY
492  */
494 
495  /*e \dref_ReturnCode_t_RETCODE_ALREADY_DELETED
496  */
498 
499  /*e \dref_ReturnCode_t_RETCODE_TIMEOUT
500  */
502 
503  /*e \dref_ReturnCode_t_RETCODE_NO_DATA
504  */
506 
507  /*e \dref_ReturnCode_t_RETCODE_ILLEGAL_OPERATION
508  */
511 
512 
513 /* ================================================================= */
514 /* VARIABLE LENGTH TYPES SUPPORT */
515 /* ================================================================= */
516 /*i @defgroup DDSVarLenType Full Variable Length Type Support
517  @ingroup DDSCommonModule
518  */
519 #define DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(T) \
520  struct T; \
521  DDSCDllExport DDS_Boolean T ## _initialize(struct T* self); \
522  DDSCDllExport DDS_Boolean T ## _finalize(struct T* self); \
523  DDSCDllExport DDS_Boolean T ## _copy(struct T* self, const struct T* from);\
524  MUST_CHECK_RETURN DDSCDllExport DDS_Boolean T ## _is_equal(const struct T* self, const struct T* from)
525 
526 /*i @defgroup DDSVarLenType Basic Variable Length Type Support
527  @ingroup DDSCommonModule
528  */
529 #define DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_BASIC(T) \
530  struct T; \
531  DDSCDllExport DDS_Boolean T ## _is_equal(const struct T* self, const struct T* from)
532 
533 /* DDSCDllExport DDS_ReturnCode_t T ## _copy(struct T* self, const struct T* from); */
534 
535 /* ================================================================= */
536 /* Status Types */
537 /* ================================================================= */
538 
539 /*e \dref_StatusKindGroupDocs
540  */
541 
542 /*e \dref_StatusMask
543  */
545 
546 /*e \dref_STATUS_MASK_NONE
547  */
548 #define DDS_STATUS_MASK_NONE ((DDS_StatusMask) 0)
549 
550 /*e \dref_STATUS_MASK_ALL
551  */
552 #define DDS_STATUS_MASK_ALL (~DDS_STATUS_MASK_NONE)
553 
554 /* ----------------------------------------------------------------- */
555 /*e \dref_StatusKind
556  */
557 typedef enum
558 {
559  /*e \dref_StatusKind_INCONSISTENT_TOPIC_STATUS
560  */
562 
563  /*e \dref_StatusKind_OFFERED_DEADLINE_MISSED_STATUS
564  */
566 
567  /*e \dref_StatusKind_REQUESTED_DEADLINE_MISSED_STATUS
568  */
570 
571  /*e \dref_StatusKind_OFFERED_INCOMPATIBLE_QOS_STATUS
572  */
574 
575  /*e \dref_StatusKind_REQUESTED_INCOMPATIBLE_QOS_STATUS
576  */
578 
579  /*e \dref_StatusKind_SAMPLE_LOST_STATUS
580  */
581  DDS_SAMPLE_LOST_STATUS = 0x0001 << 7,
582 
583  /*e \dref_StatusKind_SAMPLE_REJECTED_STATUS
584  */
586 
587  /*e \dref_StatusKind_DATA_ON_READERS_STATUS
588  */
590 
591  /*e \dref_StatusKind_DATA_AVAILABLE_STATUS
592  */
594 
595  /*e \dref_StatusKind_LIVELINESS_LOST_STATUS
596  */
598 
599  /*e \dref_StatusKind_LIVELINESS_CHANGED_STATUS
600  */
602 
603  /*e \dref_StatusKind_PUBLICATION_MATCHED_STATUS
604  */
606 
607  /*e \dref_StatusKind_SUBSCRIPTION_MATCHED_STATUS
608  */
610 
611  /* --- Begin extended statuses --- */
612  /* The "right"-most 24 bits of the StatusMask are reserved
613  * for standard statuses. The remaining 8 bits are for extended statuses.
614  */
615 
616  /*e \dref_StatusKind_INSTANCE_REPLACED_STATUS
617  */
619 
620  /*e \dref_StatusKind_RELIABLE_READER_ACTIVITY_CHANGED_STATUS
621  */
623 
625 
626 /* ================================================================= */
627 /* QoS Types */
628 /* ================================================================= */
629 /*e \dref_QosPoliciesGroupDocs
630  */
631 
632 /*e \dref_QosPolicyId_t
633  *
634  * Note that the value of these constants disagree with the values of
635  * the corresponding parameter IDs in the RTPS protocol. This conflict
636  * is unavoidable since these values are given in the DDS specification,
637  * which is not tied to RTPS.
638  */
639 typedef enum
640 {
641  /*e \dref_QosPolicyId_t_INVALID_QOS_POLICY_ID
642  */
644 
645  /*i \dref_QosPolicyId_t_USERDATA_QOS_POLICY_ID
646  */
647  DDS_USERDATA_QOS_POLICY_ID = 1,
648 
649  /*i \dref_QosPolicyId_t_DURABILITY_QOS_POLICY_ID
650  */
651  DDS_DURABILITY_QOS_POLICY_ID = 2,
652 
653  /*i \dref_QosPolicyId_t_PRESENTATION_QOS_POLICY_ID
654  */
655  DDS_PRESENTATION_QOS_POLICY_ID = 3,
656 
657  /*e \dref_QosPolicyId_t_DEADLINE_QOS_POLICY_ID
658  */
660 
661  /*i \dref_QosPolicyId_t_LATENCYBUDGET_QOS_POLICY_ID
662  */
663  DDS_LATENCYBUDGET_QOS_POLICY_ID = 5,
664 
665  /*e \dref_QosPolicyId_t_OWNERSHIP_QOS_POLICY_ID
666  */
668 
669  /*e \dref_QosPolicyId_t_OWNERSHIPSTRENGTH_QOS_POLICY_ID
670  */
672 
673  /*e \dref_QosPolicyId_t_LIVELINESS_QOS_POLICY_ID
674  */
676 
677  /*i \dref_QosPolicyId_t_TIMEBASEDFILTER_QOS_POLICY_ID
678  */
679  DDS_TIMEBASEDFILTER_QOS_POLICY_ID = 9,
680 
681  /*i \dref_QosPolicyId_t_PARTITION_QOS_POLICY_ID
682  */
683  DDS_PARTITION_QOS_POLICY_ID = 10,
684 
685  /*e \dref_QosPolicyId_t_RELIABILITY_QOS_POLICY_ID
686  */
688 
689  /*i \dref_QosPolicyId_t_DESTINATIONORDER_QOS_POLICY_ID
690  */
691  DDS_DESTINATIONORDER_QOS_POLICY_ID = 12,
692 
693  /*e \dref_QosPolicyId_t_HISTORY_QOS_POLICY_ID
694  */
696 
697  /*i \dref_QosPolicyId_t_RESOURCELIMITS_QOS_POLICY_ID
698  */
699  DDS_RESOURCELIMITS_QOS_POLICY_ID = 14,
700 
701  /*e \dref_QosPolicyId_t_ENTITYFACTORY_QOS_POLICY_ID
702  */
704 
705  /*i \dref_QosPolicyId_t_WRITERDATALIFECYCLE_QOS_POLICY_ID
706  */
707  DDS_WRITERDATALIFECYCLE_QOS_POLICY_ID = 16,
708 
709  /*i \dref_QosPolicyId_t_READERDATALIFECYCLE_QOS_POLICY_ID
710  */
711  DDS_READERDATALIFECYCLE_QOS_POLICY_ID = 17,
712 
713  /*i \dref_QosPolicyId_t_TOPICDATA_QOS_POLICY_ID
714  */
715  DDS_TOPICDATA_QOS_POLICY_ID = 18,
716 
717  /*i \dref_QosPolicyId_t_GROUPDATA_QOS_POLICY_ID
718  */
719  DDS_GROUPDATA_QOS_POLICY_ID = 19,
720 
721  /*i \dref_QosPolicyId_t_TRANSPORTPRIORITY_QOS_POLICY_ID
722  */
723  DDS_TRANSPORTPRIORITY_QOS_POLICY_ID = 20,
724 
725  /*i \dref_QosPolicyId_t_LIFESPAN_QOS_POLICY_ID
726  */
727  DDS_LIFESPAN_QOS_POLICY_ID = 21,
728 
729  /*i \dref_QosPolicyId_t_DURABILITYSERVICE_QOS_POLICY_ID
730  */
731  DDS_DURABILITYSERVICE_QOS_POLICY_ID = 22,
732 
734 
735 /* ----------------------------------------------------------------- */
736 /*i \dref_QosPolicyCount
737  */
738 struct DDS_QosPolicyCount
739 {
740  /*e \dref_QosPolicyCount_policy_id
741  */
742  DDS_QosPolicyId_t policy_id;
743 
744  /*e \dref_QosPolicyCount_count
745  */
746  DDS_Long count;
747 };
748 
749 #define MICRO_DDS_SEQUENCE_MODULE
750 #ifdef MICRO_DDS_SEQUENCE_MODULE
751 #define T struct DDS_QosPolicyCount
752 #define TSeq DDS_QosPolicyCountSeq
753 #include <reda/reda_sequence_decl.h>
754 
755 #ifdef DOXYGEN_DOCUMENTATION_ONLY
756 /*i \dref_QosPolicyCountSeq
757  */
758 struct DDS_QosPolicyCountSeq
759 {
760 };
761 #endif
762 #endif
763 
764 /* ================================================================= */
765 /* Entity Types */
766 /* ================================================================= */
767 
768 /*e \dref_EntityKind_t
769 */
770 typedef enum
771 {
772  /*e \dref_EntityKind_t_UNKNOWN_ENTITY_KIND
773  */
775  /*e \dref_EntityKind_t_PARTICIPANT_ENTITY_KIND
776  */
778  /*e \dref_EntityKind_t_PUBLISHER_ENTITY_KIND
779  */
781  /*e \dref_EntityKind_t_SUBSCRIBER_ENTITY_KIND
782  */
784  /*e \dref_EntityKind_t_TOPIC_ENTITY_KIND
785  */
787  /*e \dref_EntityKind_t_DATAREADER_ENTITY_KIND
788  */
790  /*e \dref_EntityKind_t_DATAWRITER_ENTITY_KIND
791  */
794 
795 /* ----------------------------------------------------------------- */
796 /* DEADLINE */
797 /* ----------------------------------------------------------------- */
798 /*e \dref_DeadlineQosGroupDocs
799  */
800 
801 /*e \dref_DEADLINE_QOS_POLICY_NAME
802  */
803 extern DDSCDllVariable const char *const DDS_DEADLINE_QOS_POLICY_NAME;
804 
805 /* ----------------------------------------------------------------- */
806 /*e \dref_DeadlineQosPolicy
807  */
809 {
810  /*e \dref_DeadlineQosPolicy_period
811  */
813 };
814 
815 /*i
816  * \brief Convert a duration to ms
817  *
818  * \param[in] self Duration structure to convert to ms
819  */
820 DDSCDllExport DDS_Long
821 DDS_Duration_to_ms(const struct DDS_Duration_t *const self);
822 
823 /*i \dref_DeadlineQosPolicy_DEFAULT
824  * Default is infinite
825  */
826 #define DDS_DEADLINE_QOS_POLICY_DEFAULT \
827 {{ 0x7fffffffL, 0xffffffffUL }}
828 
829 /* ----------------------------------------------------------------- */
830 /* OWNERSHIP */
831 /* ----------------------------------------------------------------- */
832 /*e \dref_OwnershipQosGroupDocs
833  */
834 
835 /*e \dref_OWNERSHIP_QOS_POLICY_NAME
836  */
837 extern DDSCDllVariable const char *const DDS_OWNERSHIP_QOS_POLICY_NAME;
838 
839 /* ----------------------------------------------------------------- */
840 /*e \dref_OwnershipQosPolicyKind
841  */
842 typedef enum
843 {
844  /*e \dref_OwnershipQosPolicyKind_SHARED_OWNERSHIP_QOS
845  */
847 
848  /*e \dref_OwnershipQosPolicyKind_EXCLUSIVE_OWNERSHIP_QOS
849  */
852 
853 /* ----------------------------------------------------------------- */
854 /*e \dref_OwnershipQosPolicy
855  */
857 {
858  /*e \dref_OwnershipQosPolicy_kind
859  */
861 };
862 
863 /*i \dref_OwnershipQosPolicy_DEFAULT
864  */
865 #define DDS_OWNERSHIP_QOS_POLICY_DEFAULT { DDS_SHARED_OWNERSHIP_QOS }
866 
867 /* ----------------------------------------------------------------- */
868 /* OWNERSHIP_STRENGTH */
869 /* ----------------------------------------------------------------- */
870 /*e \dref_OwnershipStrengthQosGroupDocs
871  */
872 
873 /*e \dref_OWNERSHIPSTRENGTH_QOS_POLICY_NAME
874  */
875 extern DDSCDllVariable const char *const DDS_OWNERSHIPSTRENGTH_QOS_POLICY_NAME;
876 
877 /* ----------------------------------------------------------------- */
878 /*e \dref_OwnershipStrengthQosPolicy
879  */
881 {
882  /*e \dref_OwnershipStrengthQosPolicy_value
883  */
885 };
886 
887 /*i \dref_OwnershipStrengthQosPolicy_DEFAULT
888  */
889 #define DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT { 0L }
890 
891 /* ----------------------------------------------------------------- */
892 /* LIVELINESS */
893 /* ----------------------------------------------------------------- */
894 /*e \dref_LivelinessQosGroupDocs
895  */
896 
897 /*e \dref_LIVELINESS_QOS_POLICY_NAME
898  */
899 extern DDSCDllVariable const char *const DDS_LIVELINESS_QOS_POLICY_NAME;
900 
901 /* ----------------------------------------------------------------- */
902 /*e \dref_LivelinessQosPolicyKind
903  */
904 typedef enum
905 {
906  /*i \dref_LivelinessQosPolicyKind_AUTOMATIC_LIVELINESS_QOS
907  */
908  DDS_AUTOMATIC_LIVELINESS_QOS,
909 
910  /*i \dref_LivelinessQosPolicyKind_MANUAL_BY_PARTICIPANT_LIVELINESS_QOS
911  */
912  DDS_MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,
913 
914  /*e \dref_LivelinessQosPolicyKind_MANUAL_BY_TOPIC_LIVELINESS_QOS
915  */
918 
919 /* ----------------------------------------------------------------- */
920 /*e \dref_LivelinessQosPolicy
921  */
923 {
924  /*e \dref_LivelinessQosPolicy_kind
925  */
927 
928  /*e \dref_LivelinessQosPolicy_lease_duration
929  */
931 };
932 
933 /*i \dref_LivelinessQosPolicy_DEFAULT
934  * Default least duration is infinite
935  */
936 #define DDS_LIVELINESS_QOS_POLICY_DEFAULT \
937 {\
938  DDS_AUTOMATIC_LIVELINESS_QOS,\
939  {0x7fffffff, 0xffffffffUL} \
940 }
941 
942 /* ----------------------------------------------------------------- */
943 /* RELIABILITY */
944 /* ----------------------------------------------------------------- */
945 /*e \dref_ReliabilityQosGroupDocs
946  */
947 
948 /*e \dref_RELIABILITY_QOS_POLICY_NAME
949  */
950 extern DDSCDllVariable const char *const DDS_RELIABILITY_QOS_POLICY_NAME;
951 
952 /* ----------------------------------------------------------------- */
953 /*e \dref_ReliabilityQosPolicyKind
954  */
955 typedef enum
956 {
957  /*e \dref_ReliabilityQosPolicyKind_BEST_EFFORT_RELIABILITY_QOS
958  */
960 
961  /*e \dref_ReliabilityQosPolicyKind_RELIABLE_RELIABILITY_QOS
962  * NOTE: The RTPS spec defines reliability as 0x03 to comply with RTPS spec.
963  * However, RTI Connext Core uses 0x3, as well as others.
964  */
967 
968 /* ----------------------------------------------------------------- */
969 /*e \dref_ReliabilityQosPolicy
970  */
972 {
973  /*e \dref_ReliabilityQosPolicy_kind
974  */
976 
977  /*e \dref_ReliabilityQosPolicy_max_blocking_time
978  */
980 };
981 
982 /*i \dref_ReliabilityQosPolicy_DEFAULT
983  */
984 #define DDS_RELIABILITY_QOS_POLICY_DEFAULT \
985  { DDS_BEST_EFFORT_RELIABILITY_QOS, \
986  {0L, 0UL} }
987 
988 
989 /* ----------------------------------------------------------------- */
990 /* HISTORY */
991 /* ----------------------------------------------------------------- */
992 /*e \dref_HistoryQosGroupDocs
993  */
994 
995 /*e \dref_HISTORY_QOS_POLICY_NAME
996  */
997 extern DDSCDllVariable const char *const DDS_HISTORY_QOS_POLICY_NAME;
998 
999 /* ----------------------------------------------------------------- */
1000 /*e \dref_HistoryQosPolicyKind
1001  */
1002 typedef enum
1003 {
1004  /*e \dref_HistoryQosPolicyKind_KEEP_LAST_HISTORY_QOS
1005  */
1007 
1008  /*i \dref_HistoryQosPolicyKind_KEEP_ALL_HISTORY_QOS
1009  */
1010  DDS_KEEP_ALL_HISTORY_QOS
1012 
1013 /* ----------------------------------------------------------------- */
1014 /*e \dref_HistoryQosPolicy
1015  */
1017 {
1018  /*e \dref_HistoryQosPolicy_kind
1019  */
1021 
1022  /*e \dref_HistoryQosPolicy_depth
1023  */
1025 };
1026 
1027 /*i \dref_HistoryQosPolicy_DEFAULT
1028  */
1029 #define DDS_HISTORY_QOS_POLICY_DEFAULT { DDS_KEEP_LAST_HISTORY_QOS, \
1030  1L /* depth */ }
1031 
1032 /* ----------------------------------------------------------------- */
1033 /* DURABILITY */
1034 /* ----------------------------------------------------------------- */
1035 /*e \dref_DurabilityQosGroupDocs
1036 */
1037 
1038 /*e \dref_DURABILITY_QOS_POLICY_NAME
1039  */
1040 extern DDSCDllVariable const char *const DDS_DURABILITY_QOS_POLICY_NAME;
1041 
1042 /* ----------------------------------------------------------------- */
1043 /*e \dref_DurabilityQosPolicyKind
1044 */
1045 typedef enum
1046 {
1047  /*e \dref_DurabilityQosPolicyKind_VOLATILE_DURABILITY_QOS
1048  */
1050 
1051  /*e \dref_DurabilityQosPolicyKind_TRANSIENT_LOCAL_DURABILITY_QOS
1052  */
1054 
1055  /*i \dref_DurabilityQosPolicyKind_TRANSIENT_DURABILITY_QOS
1056  */
1057  DDS_TRANSIENT_DURABILITY_QOS,
1058 
1059  /*i \dref_DurabilityQosPolicyKind_PERSISTENT_DURABILITY_QOS
1060  */
1061  DDS_PERSISTENT_DURABILITY_QOS
1063 
1064 /* ----------------------------------------------------------------- */
1065 /*e \dref_DurabilityQosPolicy
1066  */
1068 {
1069  /*e \dref_DurabilityQosPolicy_kind
1070  */
1072 };
1073 
1074 /*i \dref_DurabilityQosPolicy_DEFAULT
1075  */
1076 #define DDS_DURABILITY_QOS_POLICY_DEFAULT \
1077 { DDS_VOLATILE_DURABILITY_QOS }
1078 
1079 /* ----------------------------------------------------------------- */
1080 /* RESOURCE_LIMITS */
1081 /* ----------------------------------------------------------------- */
1082 /*e \dref_ResourceLimitsQosGroupDocs
1083  */
1084 
1085 /*e \dref_RESOURCELIMITS_QOS_POLICY_NAME
1086  */
1087 extern DDSCDllVariable const char *const DDS_RESOURCELIMITS_QOS_POLICY_NAME;
1088 
1089 /*e \dref_LENGTH_UNLIMITED
1090  */
1091 extern DDSCDllVariable const DDS_Long DDS_LENGTH_UNLIMITED;
1092 
1093 /* ----------------------------------------------------------------- */
1094 /*e \dref_ResourceLimitsQosPolicy
1095  */
1097 {
1098  /*e \dref_ResourceLimitsQosPolicy_max_samples
1099  */
1101 
1102  /*e \dref_ResourceLimitsQosPolicy_max_instances
1103  */
1105 
1106  /*e \dref_ResourceLimitsQosPolicy_max_samples_per_instance
1107  */
1109 };
1110 
1111 /*i \dref_ResourceLimitsQosPolicy_DEFAULT
1112  */
1113 #define DDS_RESOURCE_LIMITS_QOS_POLICY_DEFAULT { \
1114  1L, /* max_samples */ \
1115  1L, /* max_instances */ \
1116  1L, /* max_samples_per_instance */ \
1117 }
1118 
1119 /* ----------------------------------------------------------------- */
1120 /*e \dref_DataReaderResourceLimitsInstanceReplacementKind
1121 */
1122 typedef enum
1123 {
1124  /*e \dref_DataReaderResourceLimitsInstanceReplacementKind_NO_INSTANCE_REPLACEMENT_QOS
1125  */
1127 
1128  /*e \dref_DataReaderResourceLimitsInstanceReplacementKind_REPLACE_OLDEST_INSTANCE_REPLACEMENT_QOS
1129  */
1132 
1133 /* ----------------------------------------------------------------- */
1134 /* DATAREADER_RESOURCE_LIMITS */
1135 /* ----------------------------------------------------------------- */
1136 /*e \dref_DataReaderResourceLimitsQosGroupDocs
1137  */
1138 
1139 /*e \dref_DATAREADERRESOURCELIMITS_QOS_POLICY_NAME
1140  */
1141 extern DDSCDllVariable const char *const
1143 
1144 /* ----------------------------------------------------------------- */
1145 /*e \dref_DataReaderResourceLimitsQosPolicy
1146  */
1148 {
1149  /*e \dref_DataReaderResourceLimitsQosPolicy_max_remote_writers
1150  */
1152 
1153  /*e \dref_DataReaderResourceLimitsQosPolicy_max_remote_writers_per_instance
1154  */
1156 
1157  /*e \dref_DataReaderResourceLimitsQosPolicy_max_samples_per_remote_writer
1158  */
1160 
1161  /*e \dref_DataReaderResourceLimitsQosPolicy_max_outstanding_reads
1162  */
1164 
1165  /*e \dref_DataReaderResourceLimitsQosPolicy_instance_replacement
1166  */
1168 };
1169 
1170 /*i \dref_DataReaderResourceLimitsQosPolicy_DEFAULT
1171  */
1172 #define DDS_DATAREADERRESOURCE_LIMITS_QOS_POLICY_DEFAULT { \
1173  1L, /* max_remote_writers */ \
1174  1L, /* max_remote_writers_per_instance */ \
1175  1L, /* max_samples_per_remote_writer */ \
1176  1L, /* max_outstanding_reads */ \
1177  DDS_NO_INSTANCE_REPLACEMENT_QOS, /* Default */ \
1178 }
1179 
1180 /* ----------------------------------------------------------------- */
1181 /* DATAWRITER_RESOURCE_LIMITS */
1182 /* ----------------------------------------------------------------- */
1183 /*e \dref_DataWriterResourceLimitsQosGroupDocs
1184  */
1185 
1186 /*e \dref_DATAWRITERRESOURCELIMITS_QOS_POLICY_NAME
1187  */
1188 extern DDSCDllVariable const char *const
1190 
1191 /* ----------------------------------------------------------------- */
1192 /*e \dref_DataWriterResourceLimitsQosPolicy
1193  */
1195 {
1196  /*e \dref_DataWriterResourceLimitsQosPolicy_max_remote_readers
1197  */
1199 };
1200 
1201 /*i \dref_DataWriterResourceLimitsQosPolicy_DEFAULT
1202  */
1203 #define DDS_DATAWRITERRESOURCE_LIMITS_QOS_POLICY_DEFAULT { \
1204  16L /* max_remote_readers */ \
1205 }
1206 
1207 /* ----------------------------------------------------------------- */
1208 /* ENTITY_FACTORY */
1209 /* ----------------------------------------------------------------- */
1210 /*e \dref_EntityFactoryQosGroupDocs
1211  */
1212 
1213 /*e \dref_ENTITYFACTORY_QOS_POLICY_NAME
1214  */
1215 extern DDSCDllVariable const char *const DDS_ENTITYFACTORY_QOS_POLICY_NAME;
1216 
1217 /* ----------------------------------------------------------------- */
1218 /*e \dref_EntityFactoryQosPolicy
1219  */
1221 {
1222  /*e \dref_EntityFactoryQosPolicy_autoenable_created_entities
1223  */
1225 };
1226 
1227 /*i \dref_EntityFactoryQosPolicy_DEFAULT
1228  */
1229 #define DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT { DDS_BOOLEAN_TRUE }
1230 
1231 /* ----------------------------------------------------------------- */
1232 /* EXTENDED QOS SUPPORT */
1233 /* ----------------------------------------------------------------- */
1234 
1235 /* ----------------------------------------------------------------- */
1236 /*e
1237  * \dref_ExtendedQosSupportGroupDocs
1238  */
1239 #define DDS_LENGTH_UNLIMITED (-1)
1240 
1241 /* ----------------------------------------------------------------- */
1242 
1243 /* ----------------------------------------------------------------- */
1244 /* TYPESUPPORT */
1245 /* ----------------------------------------------------------------- */
1246 /*i \dref_TypeSupportQosGroupDocs
1247 */
1248 
1249 /*i \dref_TYPESUPPORT_QOS_POLICY_NAME
1250  */
1251 extern DDSCDllVariable const char *const DDS_TYPESUPPORT_QOS_POLICY_NAME;
1252 
1253 /* ----------------------------------------------------------------- */
1254 /*i \dref_TypeSupportQosPolicy
1255  */
1256 struct DDS_TypeSupportQosPolicy
1257 {
1258  /*e \dref_TypeSupportQosPolicy_plugin_data
1259  */
1260  void *plugin_data;
1261 };
1262 
1263 /*i \dref_TypeSupportQosPolicy_DEFAULT
1264  */
1265 #define DDS_TYPESUPPORT_QOS_POLICY_DEFAULT \
1266 { NULL }
1267 
1268 /* ----------------------------------------------------------------- */
1269 /* SYSTEM_RESOURCE_LIMITS_X (eXtension QoS) */
1270 /* ----------------------------------------------------------------- */
1271 /*e \dref_SystemResourceLimitsQosGroupDocs
1272  */
1273 
1274 /*e \dref_SYSTEMRESOURCELIMITS_QOS_POLICY_NAME
1275  */
1276 extern DDSCDllVariable const char *const DDS_SYSTEMRESOURCELIMITS_QOS_POLICY_NAME;
1277 
1278 /* ----------------------------------------------------------------- */
1279 
1280 /*e \dref_SystemResourceLimitsQosPolicy
1281  */
1283 {
1284  /*e \dref_SystemResourceLimitsQosPolicy_max_participants
1285  */
1287 
1288  /*e \dref_SystemResourceLimitsQosPolicy_max_components
1289  */
1291 };
1292 
1293 /*i \dref_SystemResourceLimitsQosPolicy_DEFAULT
1294  */
1295 #define DDS_SYSTEM_RESOURCE_LIMITS_QOS_POLICY_DEFAULT { 1L,16L }
1296 
1297 /* ----------------------------------------------------------------- */
1298 /* WIRE_PROTOCOL_X (eXtension QoS) */
1299 /* ----------------------------------------------------------------- */
1300 /*e \dref_WireProtocolQosGroupDocs
1301  */
1302 
1303 #define DDS_RtpsWellKnownPorts NETIO_RtpsPortParam
1304 
1305 /*e \dref_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS
1306  */
1307 extern DDSCDllVariable struct DDS_RtpsWellKnownPorts_t
1309 
1310 /*e \dref_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS
1311  */
1312 extern DDSCDllVariable struct DDS_RtpsWellKnownPorts_t
1314 
1315 /*i @ingroup DDSWireProtocolQosModule
1316  these defaults are compatible with >= 4.2d
1317  */
1318 
1319 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1320 /*e \dref_RtpsWellKnownPorts_t
1321  */
1323 {
1324  /*e \dref_RtpsWellKnownPorts_t_port_base
1325  */
1327 
1328  /*e \dref_RtpsWellKnownPorts_t_domain_id_gain
1329  */
1331 
1332  /*e \dref_RtpsWellKnownPorts_t_participant_id_gain
1333  */
1335 
1336  /*e \dref_RtpsWellKnownPorts_t_builtin_multicast_port_offset
1337  */
1339 
1340  /*e \dref_RtpsWellKnownPorts_t_builtin_unicast_port_offset
1341  */
1343 
1344  /*e \dref_RtpsWellKnownPorts_t_user_multicast_port_offset
1345  */
1347 
1348  /*e \dref_RtpsWellKnownPorts_t_user_unicast_port_offset
1349  */
1351 };
1352 
1353 #endif /* DOXYGEN_DOCUMENTATION_ONLY */
1354 
1355 #define DDS_RtpsWellKnownPorts_t DDS_RtpsWellKnownPorts
1356 
1357 /*i \dref_RtpsWellKnownPorts_DEFAULT
1358  */
1359 #define DDS_RTPS_WELL_KNOWN_PORTS_DEFAULT \
1360 { \
1361  7400, /* port_base */ \
1362  250, /* domain_id_gain */ \
1363  2, /* participant_id_gain */ \
1364  0, /* builtin_multicast_port_offset */ \
1365  10, /* builtin_unicast_port_offset */ \
1366  1, /* user_multicast_port_offset */ \
1367  11 /* user_unicast_port_offset */ \
1368 }
1369 
1370 /*e \dref_WIREPROTOCOL_QOS_POLICY_NAME
1371  */
1372 extern DDSCDllVariable const char *const DDS_WIREPROTOCOL_QOS_POLICY_NAME;
1373 
1374 /* ----------------------------------------------------------------- */
1375 /*e \dref_WireProtocolQosPolicy
1376  */
1378 {
1379  /*e \dref_WireProtocolQosPolicy_participant_id
1380  */
1382  /*e \dref_WireProtocolQosPolicy_rtps_host_id
1383  */
1385 
1386  /*e \dref_WireProtocolQosPolicy_rtps_app_id
1387  */
1389 
1390  /*e \dref_WireProtocolQosPolicy_rtps_instance_id
1391  */
1393  /*e \dref_WireProtocolQosPolicy_rtps_well_known_ports
1394  */
1396 };
1397 
1398 enum
1399 {
1400  /*e \dref_WireProtocolQosPolicy_RTPS_AUTO_ID
1401  */
1403 };
1404 
1405 /*i \dref_WireProtocolQosPolicy_DEFAULT
1406  */
1407 #define DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT { \
1408 -1 /* auto participant_id */, \
1409 DDS_RTPS_AUTO_ID /* rtps_host_id */, \
1410 DDS_RTPS_AUTO_ID /* rtps_app_id */, \
1411 DDS_RTPS_AUTO_ID /* rtps_instance_id */, \
1412 DDS_RTPS_WELL_KNOWN_PORTS_DEFAULT /* rtps_well_known_ports */\
1413 }
1414 
1415 /* ----------------------------------------------------------------- */
1416 
1417 /*i
1418  * Alias for DDS_Locator
1419  */
1420 #define DDS_Locator RTPS_Locator
1421 
1422 /*i
1423  * Alias for DDS_Locator_t
1424  */
1425 #define DDS_Locator_t RTPS_Locator_t
1426 
1427 /*i
1428  * Alias for DDS_LocatorUdpv4_t
1429  */
1430 #define DDS_LocatorUdpv4_t RTPS_LocatorUdpv4_t
1431 
1432 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1433 
1434 /*e \dref_Locator_t
1435  */
1437 {
1438  /*e \dref_Locator_t_kind
1439  */
1441 
1442  /*e \dref_Locator_t_port
1443  */
1445 
1446  /*e \dref_Locator_t_address
1447  */
1448  DDS_Octet address[RTPS_LOCATOR_ADDRESS_LENGTH_MAX];
1449 };
1450 
1451 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
1452 
1453 #ifdef RTI_CERT
1454 #define REDA_SEQUENCE_API REDA_SEQUENCE_API_CERT
1455 #define TSeq_is_equal
1456 #define TSeq_copy
1457 #endif
1458 #define T struct RTPS_Locator
1459 #define TSeq DDS_LocatorSeq
1460 #include <reda/reda_sequence_decl.h>
1461 
1462 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1463 /*e \dref_LocatorSeq
1464  */
1465 struct DDS_LocatorSeq {};
1466 #endif
1467 
1468 /*e
1469  * \dref_Locator_t_INVALID
1470  */
1471 #define DDS_LOCATOR_INVALID RTPS_LOCATOR_INVALID
1472 
1473 #ifndef RTI_CERT
1474 /*e
1475  * \dref_Locator_t_DEFAULT
1476  */
1477 #define DDS_LOCATOR_DEFAULT RTPS_LOCATOR_DEFAULT
1478 
1479 /*e
1480  * \dref_Locator_t_KIND_INVALID
1481  */
1482 #define DDS_LOCATOR_KIND_INVALID RTPS_LOCATOR_KIND_INVALID
1483 
1484 /*e
1485  * \dref_Locator_t_PORT_INVALID
1486  */
1487 #define DDS_LOCATOR_PORT_INVALID RTPS_LOCATOR_PORT_INVALID
1488 
1489 /*e
1490  * \dref_Locator_t_ADDRESS_INVALID
1491  */
1492 #define DDS_LOCATOR_ADDRESS_INVALID RTPS_LOCATOR_ADDRESS_INVALID
1493 
1494 #endif /* !RTI_CERT */
1495 
1496 
1497 /*e
1498  * \dref_Locator_t_KIND_UDPv4
1499  */
1500 #define DDS_LOCATOR_KIND_UDPv4 RTPS_LOCATOR_KIND_UDPv4
1501 
1502 /*e
1503  * \dref_Locator_t_KIND_UDPv6
1504  */
1505 #define DDS_LOCATOR_KIND_UDPv6 RTPS_LOCATOR_KIND_UDPv6
1506 
1507 /*e
1508  * \dref_Locator_t_KIND_RESERVED
1509  */
1510 #define DDS_LOCATOR_KIND_RESERVED RTPS_LOCATOR_KIND_RESERVED
1511 
1512 /*e
1513  * \dref_Locator_t_KIND_SHMEM
1514  */
1515 #define DDS_LOCATOR_KIND_SHMEM RTPS_LOCATOR_KIND_SHMEM
1516 
1517 /* ----------------------------------------------------------------- */
1518 
1519 /*e \dref_ProtocolVersion_t
1520  */
1521 typedef struct DDS_ProtocolVersion
1522 {
1523  /*e \dref_ProtocolVersion_t_major
1524  */
1526 
1527  /*e \dref_ProtocolVersion_t_minor
1528  */
1531 
1532 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_BASIC(DDS_ProtocolVersion);
1533 
1534 /*i \dref_ProtocolVersion_DEFAULT
1535  */
1536 #define DDS_PROTOCOL_VERSION_DEFAULT { 0, 0 }
1537 
1538 /*e \dref_ProtocolVersion_t_PROTOCOLVERSION_1_0
1539  */
1540 #define DDS_PROTOCOLVERSION_1_0 { 1, 0 }
1541 /*e \dref_ProtocolVersion_t_PROTOCOLVERSION_1_1
1542  */
1543 #define DDS_PROTOCOLVERSION_1_1 { 1, 1 }
1544 /*e \dref_ProtocolVersion_t_PROTOCOLVERSION_1_2
1545  */
1546 #define DDS_PROTOCOLVERSION_1_2 { 1, 2 }
1547 /*e \dref_ProtocolVersion_t_PROTOCOLVERSION
1548  */
1549 #define DDS_PROTOCOLVERSION_2_0 { 2, 0 }
1550 /*e \dref_ProtocolVersion_t_PROTOCOLVERSION_2_1
1551  */
1552 #define DDS_PROTOCOLVERSION_2_1 { 2, 1 }
1553 /*e \dref_ProtocolVersion_t_PROTOCOLVERSION
1554  */
1555 #define DDS_PROTOCOLVERSION { 2, 1 }
1556 
1557 /*e \dref_VendorId_t_LENGTH_MAX
1558  */
1559 #define DDS_VENDOR_ID_LENGTH_MAX 2
1560 
1561 /*e \dref_VendorId_t
1562  */
1564 {
1565  /*e \dref_VendorId_t_vendorId
1566  */
1568 };
1569 
1570 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1571 /*e \dref_VendorId_t
1572  */
1574 {
1575  /*e \dref_VendorId_t_vendorId
1576  */
1578 };
1579 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
1580 
1581 
1582 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_BASIC(DDS_VendorId);
1583 #define DDS_VendorId_t DDS_VendorId
1584 
1585 /*i \dref_VendorId_dEFAULT
1586  */
1587 #define DDS_VENDOR_ID_DEFAULT { {0, 0} }
1588 
1589 /*i \dref_VendorId_t_VENDORID_UNKNOWN
1590  */
1591 #define DDS_VENDORID_UNKNOWN { {0, 0} }
1592 
1593 /* ----------------------------------------------------------------- */
1594 
1595 /*e \dref_ProductVersion_t
1596  */
1598 {
1599  /*e \dref_ProductVersion_t_major
1600  */
1602  /*e \dref_ProductVersion_t_minor
1603  */
1605  /*e \dref_ProductVersion_t_release
1606  */
1608  /*e \dref_ProductVersion_t_revision
1609  */
1611 };
1612 
1613 
1614 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1615 /*e \dref_ProductVersion_t
1616  */
1618 {
1619  /*e \dref_ProductVersion_t_major
1620  */
1622  /*e \dref_ProductVersion_t_minor
1623  */
1625  /*e \dref_ProductVersion_t_release
1626  */
1628  /*e \dref_ProductVersion_t_revision
1629  */
1631 };
1632 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
1633 
1634 #define DDS_ProductVersion_t DDS_ProductVersion
1635 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_BASIC(DDS_ProductVersion);
1636 
1637 /*e \dref_ProductVersion_t_UNKNOWN
1638  */
1639 #define DDS_PRODUCTVERSION_UNKNOWN { 0, 0, '0', 0 }
1640 
1641 /*i \dref_ProductVersion_DEFAULT
1642  */
1643 #define DDS_PRODUCTVERSION_DEFAULT { 2, 0, 'c', 1 }
1644 
1645 
1646 /* ----------------------------------------------------------------- */
1647 /* DATA_READER_PROTOCOL_X (eXtension QoS) */
1648 /* ----------------------------------------------------------------- */
1649 /*e \dref_DataReaderProtocolQosGroupDocs
1650  */
1651 
1652 /*e \dref_DATAREADERPROTOCOL_QOS_POLICY_NAME
1653  */
1654 extern DDSCDllVariable const char *const DDS_DATAREADERPROTOCOL_QOS_POLICY_NAME;
1655 
1656 /* ----------------------------------------------------------------- */
1657 /*e \dref_DataReaderProtocolQosPolicy
1658  */
1660 {
1661  /*e \dref_DataReaderProtocolQosPolicy_rtps_object_id
1662  */
1664 };
1665 
1666 /*i \dref_DataReaderProtocolQosPolicy_DEFAULT
1667  */
1668 #define DDS_DATA_READER_PROTOCOL_QOS_POLICY_DEFAULT \
1669 { \
1670  DDS_RTPS_AUTO_ID \
1671 }
1672 
1673 /* ----------------------------------------------------------------- */
1674 
1675 /*e \dref_RtpsReliableWriterProtocol_t
1676  */
1678  {
1679  /*e \dref_RtpsReliableWriterProtocol_t_heartbeat_period
1680  */
1682 
1683  /*e \dref_RtpsReliableWriterProtocol_t_heartbeats_per_max_samples
1684  */
1686 
1687  /*e \dref_RtpsReliableWriterProtocol_t_max_send_window
1688  */
1690 
1691  /*e \dref_RtpsReliableWriterProtocol_t_max_heartbeat_retries
1692  */
1694 
1695  /*i \dref_RtpsReliableWriterProtocol_t_first_write_sequence_number
1696  */
1697  struct DDS_SequenceNumber_t first_write_sequence_number;
1698  };
1699 
1700 #define DDS_RTPSRELIABLEWRITER_DEFAULT_SEND_WINDOW (DDS_LENGTH_UNLIMITED)
1701 
1702 /*i \dref_RtpsReliableWriterProtocol_DEFAULT
1703  */
1704 #define DDS_RTPS_RELIABLE_WRITER_PROTOCOL_DEFAULT { \
1705  {3,0}, /* hb_period */ \
1706  1, /* hb_per_max_samples */ \
1707  DDS_RTPSRELIABLEWRITER_DEFAULT_SEND_WINDOW, /* max_send_window */ \
1708  DDS_LENGTH_UNLIMITED, /* max_heartbeat_retries */ \
1709  {0,1} /* first_write_sequence_number */\
1710 }
1711 
1712 /* ----------------------------------------------------------------- */
1713 /* DATA_WRITER_PROTOCOL_X (eXtension QoS) */
1714 /* ----------------------------------------------------------------- */
1715 /*e \dref_DataWriterProtocolQosGroupDocs
1716  */
1717 
1718 /*e \dref_DATAWRITERPROTOCOL_QOS_POLICY_NAME
1719  */
1720 extern DDSCDllVariable const char *const DDS_DATAWRITERPROTOCOL_QOS_POLICY_NAME;
1721 
1722 /* ----------------------------------------------------------------- */
1723 /*e \dref_DataWriterProtocolQosPolicy
1724  */
1726 {
1727  /*e \dref_DataWriterProtocolQosPolicy_rtps_object_id
1728  */
1730 
1731  /*e \dref_DataWriterProtocolQosPolicy_rtps_reliable_writer
1732  */
1734 };
1735 
1736 /*i \dref_DataWriterProtocolQosPolicy_DEFAULT
1737  */
1738 #define DDS_DATA_WRITER_PROTOCOL_QOS_POLICY_DEFAULT \
1739 { DDS_RTPS_AUTO_ID, \
1740  DDS_RTPS_RELIABLE_WRITER_PROTOCOL_DEFAULT\
1741 }
1742 
1743 /* ----------------------------------------------------------------- */
1744 /* TRANSPORT_QOS_POLICY (eXtension QoS) */
1745 /* ----------------------------------------------------------------- */
1746 /*e \dref_TransportQosGroupDocs
1747  */
1748 
1749 /*e \dref_TRANSPORT_QOS_POLICY_NAME
1750  */
1751 extern DDSCDllVariable const char *const DDS_TRANSPORT_QOS_POLICY_NAME;
1752 
1753 /* ----------------------------------------------------------------- */
1754 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1755 /*i \dref_StringSeq
1756  */
1757 struct DDS_StringSeq {};
1758 #endif
1759 
1760 
1761 /*e \dref_TransportQosPolicy
1762  */
1764 {
1765  /*e \dref_TransportQosPolicy_enabled_transports
1766  */
1767  struct DDS_StringSeq enabled_transports;
1768 };
1769 
1770 /*i \dref_TransportQosPolicy_DEFAULT
1771  */
1772 #define DDS_TRANSPORT_QOS_POLICY_DEFAULT \
1773 {\
1774  DDS_SEQUENCE_INITIALIZER(DDS_String)\
1775 }
1776 
1777 /* ----------------------------------------------------------------- */
1778 /* DOMAIN_PARTICIPANT_RESOURCE_LIMITS_X (eXtension QoS) */
1779 /* ----------------------------------------------------------------- */
1780 /*e \dref_DomainParticipantResourceLimitsQosGroupDocs
1781  */
1782 
1783 /*e \dref_DOMAINPARTICIPANTRESOURCELIMITS_QOS_POLICY_NAME
1784  */
1785 extern DDSCDllVariable const char *const
1787 
1788 /* ----------------------------------------------------------------- */
1789 
1790 /*e \dref_DomainParticipantResourceLimitsQosPolicy
1791  */
1793 {
1794  /*e \dref_DomainParticipantResourceLimitsQosPolicy_local_writer_allocation
1795  */
1797  /*e \dref_DomainParticipantResourceLimitsQosPolicy_local_reader_allocation
1798  */
1800  /*e \dref_DomainParticipantResourceLimitsQosPolicy_local_publisher_allocation
1801  */
1803  /*e \dref_DomainParticipantResourceLimitsQosPolicy_local_subscriber_allocation
1804  */
1806  /*e \dref_DomainParticipantResourceLimitsQosPolicy_local_topic_allocation
1807  */
1809 
1810  /*e \dref_DomainParticipantResourceLimitsQosPolicy_local_type_allocation
1811  */
1813 
1814  /*e \dref_DomainParticipantResourceLimitsQosPolicy_remote_participant_allocation
1815  */
1817 
1818  /*e \dref_DomainParticipantResourceLimitsQosPolicy_remote_writer_allocation
1819  */
1821 
1822  /*e \dref_DomainParticipantResourceLimitsQosPolicy_remote_reader_allocation
1823  */
1825 
1826  /*e \dref_DomainParticipantResourceLimitsQosPolicy_matching_writer_reader_pair_allocation
1827  */
1829 
1830  /*e \dref_DomainParticipantResourceLimitsQosPolicy_matching_reader_writer_pair_allocation
1831  */
1833 
1834  /*e \dref_DomainParticipantResourceLimitsQosPolicy_max_receive_ports
1835  */
1837 
1838  /*e \dref_DomainParticipantResourceLimitsQosPolicy_max_destination_ports
1839  */
1841 };
1842 
1843 /*i @ingroup DDSDomainParticipantResourceLimitsQosModule
1844  *
1845  * This constant is used below in
1846  * DDS_DOMAIN_PARTICIPANT_RESOURCE_LIMITS_QOS_POLICY_DEFAULT; other types
1847  * should not use it alone.
1848  */
1849 #define DDS_DomainParticipantResourceLimitsQosPolicy_MATCH_INIT (32L)
1850 
1851 
1852 /*i @ingroup DDSDomainParticipantResourceLimitsQosModule
1853  *
1854  * Several fields in this structure are actually never used. These fields
1855  * should be explicitly initialized when this structure is copied
1856  * from a lower layer structure to prevent the values from being left in
1857  * an uninitialized state. The unused fields include:
1858  *
1859  * - local_publisher_allocation.max_count
1860  * - local_subscriber_allocation.max_count
1861  * - local_topic_allocation.max_count
1862  * - matching_writer_reader_pair_allocation.initial_count
1863  * - matching_writer_reader_pair_allocation.max_count
1864  * - matching_reader_writer_pair_allocation.initial_count
1865  * - matching_reader_writer_pair_allocation.max_count
1866  */
1867 /*i \dref_DomainParticipantReasourceLimitsQosPolicy_DEFAULT
1868  */
1869 #define DDS_DOMAIN_PARTICIPANT_RESOURCE_LIMITS_QOS_POLICY_DEFAULT \
1870 {1L, /*local_writer_allocation*/ \
1871  1L, /*local_reader_allocation*/ \
1872  1L, /*local_publisher_allocation*/ \
1873  1L, /*local_subscriber_allocation*/ \
1874  1L, /*local_topic_allocation*/ \
1875  1L, /*local_type_allocation*/ \
1876  1L, /*remote_participant_allocation*/ \
1877  1L, /*remote_writer_allocation*/ \
1878  1L, /*remote_reader_allocation*/ \
1879  DDS_DomainParticipantResourceLimitsQosPolicy_MATCH_INIT, \
1880  DDS_DomainParticipantResourceLimitsQosPolicy_MATCH_INIT, \
1881  8L,\
1882  8L \
1883 }
1884 
1885 /* ----------------------------------------------------------------- */
1886 
1887 /*i \dref_BUILTIN_TOPIC_KEY_TYPE_NATIVE_LENGTH
1888  */
1889 #define DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE_LENGTH (4)
1890 
1891 /*e \dref_BuiltinTopicKey_t
1892  */
1894 {
1895  /*e \dref_BuiltinTopicKey_t_value
1896  */
1897  DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE value[DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE_LENGTH];
1899 
1900 /*i @ingroup BuiltinTopicGroupDocs
1901  */
1902 #define DDS_BuiltinTopicKey_t_INITIALIZER { {0, 0, 0, 0} }
1903 
1904 /*e \dref_BuiltinTopicKey_t_AUTO
1905  */
1906 extern DDSCDllVariable const struct DDS_BuiltinTopicKey_t DDS_BUILTINTOPICKEY_AUTO;
1907 
1908 /*e \dref_BuiltinTopicKey_t_UNKNOWN
1909  */
1910 extern DDSCDllVariable const struct DDS_BuiltinTopicKey_t DDS_BUILTINTOPICKEY_UNKNOWN;
1911 
1912 /*i \dref_BuiltinTopicKey_t_PREFIX_UNKNOWN
1913  */
1914 extern DDSCDllVariable const struct DDS_BuiltinTopicKey_t DDS_BUILTINTOPICKEY_PREFIX_UNKNOWN;
1915 
1916 /*i \dref_BuiltinTopicKey_t_PREFIX_UNKNOWN
1917  */
1918 extern DDSCDllVariable const struct DDS_BuiltinTopicKey_t DDS_BUILTINTOPICKEY_PREFIX_AUTO;
1919 
1920 /*i \ingroup BuiltinTopicGroupDocs_equals
1921 */
1922 DDSCDllExport DDS_Boolean
1923 DDS_BuiltinTopicKey_equals(const DDS_BuiltinTopicKey_t *a,
1924  const DDS_BuiltinTopicKey_t *b);
1925 
1926 /*i \ingroup BuiltinTopicGroupDocs_prefix_equals
1927  */
1928 DDSCDllExport DDS_Boolean
1929 DDS_BuiltinTopicKey_prefix_equals(const DDS_BuiltinTopicKey_t *a,
1930  const DDS_BuiltinTopicKey_t *b);
1931 
1932 /*i \ingroup BuiltinTopicGroupDocs_suffix_equals
1933  */
1934 DDSCDllExport DDS_Boolean
1935 DDS_BuiltinTopicKey_suffix_equals(const DDS_BuiltinTopicKey_t *a,
1936  const DDS_BuiltinTopicKey_t *b);
1937 
1938 /*i \ingroup BuiltinTopicGroupDocs_copy_prefix
1939  */
1940 DDSCDllExport void
1941 DDS_BuiltinTopicKey_copy_prefix(DDS_BuiltinTopicKey_t *a,
1942  const DDS_BuiltinTopicKey_t *b);
1943 
1944 /*i \ingroup BuiltinTopicGroupDocs_copy_suffix
1945  */
1946 DDSCDllExport void
1947 DDS_BuiltinTopicKey_copy_suffix(DDS_BuiltinTopicKey_t *a,
1948  const DDS_BuiltinTopicKey_t *b);
1949 
1950 /*i \ingroup BuiltinTopicGroupDocs_from_guid
1951  */
1952 DDSCDllExport void
1953 DDS_BuiltinTopicKey_from_guid(DDS_BuiltinTopicKey_t *in,
1954  const DDS_InstanceHandle_t *out);
1955 
1956 /* ================================================================= */
1957 /* Condition and Waitsets */
1958 /* ================================================================= */
1959 
1960 /*ce \dref_Entity
1961  */
1962 typedef struct DDS_EntityImpl DDS_Entity;
1963 
1964 /* ----------------------------------------------------------------- */
1965 /*e \dref_ConditionsAndWaitsetsModuleDocs
1966  */
1967 
1968 /*ce \dref_Condition
1969  */
1970 typedef struct DDS_ConditionImpl DDS_Condition;
1971 
1972 /*ci @ingroup DDSConditionsModule
1973  @brief Pointer to DDS_Condition.
1974  */
1975 typedef struct DDS_ConditionImpl *DDS_Condition_ptr;
1976 
1977 /*ce \dref_ConditionSeq
1978  */
1979 #ifdef RTI_CERT
1980 #define REDA_SEQUENCE_API REDA_SEQUENCE_API_CERT
1981 #define TSeq_is_equal
1982 #define TSeq_copy
1983 #endif
1984 #define T struct DDS_ConditionImpl*
1985 #define TSeq DDS_ConditionSeq
1986 #include <reda/reda_sequence_decl.h>
1987 
1988 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1989 /*ce \dref_ConditionSeq
1990  */
1992 #endif
1993 
1994 /*ce \dref_Condition_get_trigger_value
1995  */
1996 DDSCDllExport DDS_Boolean
1998 
1999 /*i \dref_Condition_set_wrapper
2000  */
2001 DDSCDllExport void
2002 DDS_ConditionImpl_set_wrapper(DDS_Condition *self, void *wrapper);
2003 
2004 /*i \dref_Condition_get_wrapper
2005  */
2006 DDSCDllExport void**
2007 DDS_ConditionImpl_get_wrapper_ref(DDS_Condition *self);
2008 
2009 /* ----------------------------------------------------------------- */
2010 
2011 /*ce \dref_GuardCondition
2012  */
2013 typedef struct DDS_GuardConditionImpl DDS_GuardCondition;
2014 
2015 #define DDS_GuardCondition_as_condition(guard_condition_ptr_) \
2016  ((DDS_Condition*) guard_condition_ptr_)
2017 
2018 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2019 /*ce \dref_GuardCondition_as_condition
2020  */
2022 #endif /*DOXYGEN_DOCUMENTATION_ONLY*/
2023 
2024 /*ce \dref_GuardCondition_new
2025  */
2026 DDSCDllExport DDS_GuardCondition*
2028 
2029 #ifndef RTI_CERT
2030 /*ce \dref_GuardCondition_delete
2031  */
2032 DDSCDllExport DDS_ReturnCode_t
2034 #endif
2035 
2036 /*ce \dref_GuardCondition_set_trigger_value
2037  */
2038 DDSCDllExport DDS_ReturnCode_t
2040  DDS_Boolean value);
2041 
2042 /* ----------------------------------------------------------------- */
2043 
2044 /*ce \dref_StatusCondition
2045  */
2046 typedef struct DDS_StatusConditionImpl DDS_StatusCondition;
2047 
2048 #define DDS_StatusCondition_as_condition(status_cond_ptr_) \
2049  ((DDS_Condition*) status_cond_ptr_)
2050 
2051 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2052 /*ce \dref_StatusCondition_as_condition
2053  */
2055  DDS_StatusCondition *statusCondition);
2056 #endif /*DOXYGEN_DOCUMENTATION_ONLY*/
2057 
2058 
2059 /*ce \dref_StatusCondition_get_enabled_statuses
2060  */
2061 DDSCDllExport DDS_StatusMask
2063 
2064 /*ce \dref_StatusCondition_set_enabled_statuses
2065  */
2066 DDSCDllExport DDS_ReturnCode_t
2068  DDS_StatusMask mask);
2069 
2070 /*ce \dref_StatusCondition_get_entity
2071  */
2072 DDSCDllExport DDS_Entity*
2074 
2075 /*ce \dref_WaitSet
2076  */
2077 typedef struct DDS_WaitSetImpl DDS_WaitSet;
2078 
2079 /*ce \dref_WaitSet_new
2080  */
2081 DDSCDllExport DDS_WaitSet*
2082 DDS_WaitSet_new(void);
2083 
2084 /*ce \dref_WaitSet_wait
2085  */
2086 DDSCDllExport DDS_ReturnCode_t
2088  struct DDS_ConditionSeq *active_conditions,
2089  const struct DDS_Duration_t *timeout);
2090 
2091 /*ce \dref_WaitSet_attach_condition
2092  */
2093 DDSCDllExport DDS_ReturnCode_t
2095 
2096 #ifndef RTI_CERT
2097 /*ce \dref_WaitSet_delete
2098  */
2099 DDSCDllExport DDS_ReturnCode_t
2101 #endif /* !RTI_CERT */
2102 
2103 #ifndef RTI_CERT
2104 /*ce \dref_WaitSet_detach_condition
2105  */
2106 DDSCDllExport DDS_ReturnCode_t
2108 #endif /* !RTI_CERT */
2109 
2110 
2111 /*ce \dref_WaitSet_get_conditions
2112  */
2113 DDSCDllExport DDS_ReturnCode_t
2115  struct DDS_ConditionSeq *attached_conditions);
2116 
2117 /* ================================================================= */
2118 /* Listeners */
2119 /* ================================================================= */
2120 /*e \dref_EntityModuleDocs
2121  */
2122 
2123 /*ce \dref_Listener
2124  */
2126 {
2127  /*ce \dref_Listener_listener_data
2128  */
2130 };
2131 
2132 /*ce \dref_Listener_INITIALIZER
2133  */
2134 #define DDS_Listener_INITIALIZER { NULL }
2135 
2136 /* ================================================================= */
2137 /* Entity typedef */
2138 /* ================================================================= */
2139 
2140 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2141 /*ce \dref_DomainEntity
2142  */
2143 typedef struct DDS_DomainEntityImpl DDS_DomainEntity;
2144 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
2145 
2146 /* ================================================================= */
2147 /* DDS_Entity */
2148 /* ================================================================= */
2149 
2150 /*ce \dref_Entity_enable
2151  */
2152 DDSCDllExport DDS_ReturnCode_t
2154 
2155 /*ce \dref_Entity_is_enabled
2156  */
2157 DDSCDllExport DDS_Boolean
2159 
2160 /*ce \dref_Entity_get_instance_handle
2161  */
2162 DDSCDllExport DDS_InstanceHandle_t
2164 
2165 /*ce \dref_Entity_get_entity_kind
2166  */
2167 DDSCDllExport DDS_EntityKind_t
2169 
2170 /*ce \dref_Entity_get_statuscondition
2171  */
2172 DDSCDllExport DDS_StatusCondition*
2174 
2175 /*ce \dref_Entity_get_status_changes
2176  */
2177 DDSCDllExport DDS_StatusMask
2179 
2180 /*ci
2181  * \brief Associate a language-dependent wrapper object with a DDS_Entity.
2182  *
2183  * \long This operation is used to support access to the functionality of
2184  * the C implementation from other compatible programming languages, such as C++.
2185  * Implementations of the Micro API in these programming languages may use
2186  * this facility to associate objects created in their run-time environments
2187  * with DDS_Entity instances by means of this operation, and then access
2188  * them using DDS_Entity_get_wrapper, typically to support the correct
2189  * propagation of events from the C core to the wrapping programming language's
2190  * layer.
2191  *
2192  * \param[in] self a non NULL DDS_Entity
2193  * \param[in] wrapper pointer to a wrapper instance or NULL to delete an
2194  * existing association.
2195  */
2196 DDSCDllExport void
2197 DDS_Entity_set_wrapper(DDS_Entity *self, void *wrapper);
2198 
2199 /*ci
2200  * \brief Access a language-dependent wrapper object attached to the DDS_Entity.
2201  *
2202  * \long This operation is used to support access to the functionality of
2203  * the C implementation from other compatible programming languages, such as C++.
2204  * Implementations of the Micro API in these programming languages may use
2205  * this facility to associate objects created in their run-time environments
2206  * with DDS_Entity instances by means of DDS_Entity_set_wrapper, typically
2207  * to support the correct propagation of events from the C core to the wrapping
2208  * programming language's layer.
2209  *
2210  * \param[in] self a non NULL DDS_Entity
2211  *
2212  * \return a pointer to a wrapper object previously or NULL if none had been
2213  * previously set using DDS_Entity_set_wrapper.
2214  */
2215 DDSCDllExport void*
2216 DDS_Entity_get_wrapper(DDS_Entity *self);
2217 
2218 /* ----------------------------------------------------------------- */
2219 /* ENTITY_NAME */
2220 /* ----------------------------------------------------------------- */
2221 /*e \dref_EntityNameQosGroupDocs
2222  */
2223 
2224 /*e \dref_ENTITYNAME_QOS_POLICY_NAME
2225  */
2226 extern DDSCDllVariable const char *const DDS_ENTITYNAME_QOS_POLICY_NAME;
2227 
2228 /*e \dref_AUTO_NAME_ENTITY
2229  */
2230 extern DDSCDllVariable const char *const DDS_AUTO_NAME_ENTITY;
2231 
2232 /* ----------------------------------------------------------------- */
2233 /*e \dref_EntityNameQosPolicy_NAME_MAX
2234  */
2235 #define DDS_ENTITYNAME_QOS_NAME_MAX 255
2236 
2237 /*e \dref_EntityNameQosPolicy
2238  */
2240 {
2241  /*e \dref_EntityNameQosPolicy_name
2242  */
2244 };
2245 
2246 /*i \dref_EntityNameQosPolicy_DEFAULT
2247  */
2248 #define DDS_ENTITY_NAME_QOS_POLICY_DEFAULT { {'\0'} }
2249 
2250 /* ================================================================= */
2251 /* RTI_Management */
2252 /* ================================================================= */
2253 
2254 /*i \dref_ManagementQosPolicy
2255  */
2256 struct RTI_ManagementQosPolicy
2257 {
2258  DDS_Boolean is_hidden;
2259  DDS_Boolean is_anonymous;
2260 };
2261 
2262 /*i \dref_ManagementQosPolicy_DEFAULT
2263  */
2264 #define RTI_MANAGEMENT_QOS_POLICY_DEFAULT { \
2265  DDS_BOOLEAN_FALSE,\
2266  DDS_BOOLEAN_FALSE\
2267 }
2268 
2269 /* ================================================================= */
2270 /* DDS_DomainEntity */
2271 /* ================================================================= */
2272 
2273 /*ce \dref_DomainParticipant
2274  */
2275 typedef struct DDS_DomainParticipantImpl DDS_DomainParticipant;
2276 
2277 /* ----------------------------------------------------------------- */
2278 
2279 /* ================================================================= */
2280 /* DDSHST_History */
2281 /* ================================================================= */
2282 /*i \dref_DDSHST_ReturnCode_T
2283  */
2284 typedef enum
2285 {
2286  DDSHST_RETCODE_ERROR = -1000,
2287  DDSHST_RETCODE_NOSPACE,
2288  DDSHST_RETCODE_EXISTS,
2289  DDSHST_RETCODE_NOT_EXISTS,
2290  DDSHST_RETCODE_INVALID_PROPERTY,
2291  DDSHST_RETCODE_INVALID_ENTRY_REQUEST,
2292  DDSHST_RETCODE_SUCCESS = 0
2293 } DDSHST_ReturnCode_T;
2294 
2295 /*i \dref_ReplacePolicyKind_T
2296  */
2297 typedef enum
2298 {
2299  DDSHST_REPLACE_POLICY_KIND_OLDEST,
2300  DDSHST_REPLACE_POLICY_KIND_NONE
2301 } DDSHST_ReplacePolicyKind_T;
2302 
2303 
2304 /* ----------------------------------------------------------------- */
2305 /* WRITE_PARAMS */
2306 /* ----------------------------------------------------------------- */
2307 
2308 /*e \dref_SampleIdentity_t
2309  */
2311 {
2312  /*e \dref_SampleIdentity_t_writer_guid */
2314  /*e \dref_SampleIdentity_t_sequence_number */
2316 };
2317 
2318 
2319 /*ce \dref_SampleIdentity_t
2320  */
2321 #define DDS_SAMPLE_IDENTITY_UNKNOWN \
2322 { \
2323  DDS_GUID_INITIALIZER, \
2324  DDS_SEQUENCE_NUMBER_UNKNOWN \
2325 }
2326 
2327 /*e \dref_WriteParams
2328  */
2330 {
2331  /*e \dref_WriteParams_identity
2332  */
2334 
2335  /*e \dref_WriteParams_related_sample_identity
2336  */
2338 
2339  /*e \dref_WriteParams_source_timestamp
2340  */
2342 
2343  /*e \dref_WriteParams_handle
2344  */
2345  DDS_InstanceHandle_t handle;
2346 };
2347 
2348 /*e \dref_WriteParams_DEFAULT
2349  */
2350 #define DDS_WRITEPARAMS_DEFAULT \
2351 { \
2352  DDS_SAMPLE_IDENTITY_UNKNOWN, \
2353  DDS_SAMPLE_IDENTITY_UNKNOWN, \
2354  DDS_TIME_ZERO, \
2355  DDS_HANDLE_NIL_NATIVE \
2356 }
2357 
2358 /* ================================================================= */
2359 /* DDS Properties */
2360 /* ================================================================= */
2361 /* NOTE:
2362  * DDS_PropertySeq is not a exposed a general purpose property
2363  * sequence. It is only used to send required properties for RTI Tools.
2364  * Thus, although the generic sequence type is used to implement the property
2365  * sequence, its internal use is highly specialized and only a limited
2366  * number of functions are exposed.
2367  */
2368 #define DDS_PropertySeq CDR_PropertySeq
2369 #define DDS_Property CDR_Property
2370 #define DDS_PropertySeq_initialize CDR_PropertySeq_initialize
2371 #define DDS_PropertySeq_set_length CDR_PropertySeq_set_length
2372 #define DDS_PropertySeq_get_length CDR_PropertySeq_get_length
2373 #define DDS_PropertySeq_get_reference CDR_PropertySeq_get_reference
2374 
2375 /*i
2376  */
2377 DDSCDllExport struct DDS_PropertySeq*
2378 DDS_DomainParticipant_get_dds_properties(DDS_DomainParticipant *self);
2379 
2380 #ifdef __cplusplus
2381 } /* extern "C" */
2382 #endif
2383 
2384 #endif /* dds_c_infrastructure_h */

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