45 #ifndef dds_c_infrastructure_h
46 #define dds_c_infrastructure_h
51 #ifndef osapi_thread_h
60 #ifndef dds_c_common_h
63 #ifndef dds_c_string_h
66 #ifndef dds_c_sequence_h
83 #define RTI_MICRODDS_MAJOR 2
84 #define RTI_MICRODDS_MINOR 0
93 #define DDSC_CPP_SUPPORT_METHODS_EXTENDED(T) \
97 DDS_ReturnCode_t copy(const T& from);\
99 T& operator=(const T& from);\
100 bool operator==(const T& other);\
101 bool operator!=(const T& other);
103 #define DDSC_CPP_SUPPORT_METHODS_EXTENDED(T) \
107 DDS_ReturnCode_t copy(const T& from);\
110 T& operator=(const T& from);\
111 bool operator==(const T& other);\
112 bool operator!=(const T& other);
116 #define DDSC_CPP_SUPPORT_METHODS_BASIC(T) \
121 T& operator=(const T& from);\
122 bool operator==(const T& other);\
123 bool operator!=(const T& other);
125 #define DDSC_CPP_SUPPORT_METHODS_BASIC(T) \
131 T& operator=(const T& from);\
132 bool operator==(const T& other);\
133 bool operator!=(const T& other);
137 #define DDSC_CPP_SUPPORT_METHODS_EXTENDED(T)
138 #define DDSC_CPP_SUPPORT_METHODS_BASIC(T)
175 #define DDS_Time_t_greater_than(l, r) \
176 (((l).sec > (r).sec) || \
177 (((l).sec == (r).sec) && \
178 ((l).nanosec > (r).nanosec)))
180 #ifdef DOXYGEN_DOCUMENTATION_ONLY
192 #define DDS_TIME_ZERO { 0L, 0UL }
195 #define DDS_Time_is_zero(timePtr) \
196 ((timePtr)->sec == 0L || (timePtr)->nanosec == 0UL)
198 #ifdef DOXYGEN_DOCUMENTATION_ONLY
228 #define DDS_DURATION_INFINITE_SEC_INITIALIZER 0x7fffffff
232 #define DDS_DURATION_INFINITE_NSEC_INITIALIZER 0xffffffffUL
261 #define DDS_DURATION_INFINITE_INITIALIZER \
263 DDS_DURATION_INFINITE_SEC_INITIALIZER, \
264 DDS_DURATION_INFINITE_NSEC_INITIALIZER \
288 extern DDSCDllVariable
const struct DDS_Duration_t DDS_DURATION_YEAR;
292 extern DDSCDllVariable
const struct DDS_Duration_t DDS_DURATION_NANOSEC;
388 DDS_Duration_is_normalized(
const struct DDS_Duration_t *
const self);
398 #define T DDS_InstanceHandle_t
399 #define TSeq DDS_InstanceHandleSeq
400 #include <reda/reda_sequence_decl.h>
402 #ifdef DOXYGEN_DOCUMENTATION_ONLY
405 struct DDS_InstanceHandleSeq {};
423 const DDS_InstanceHandle_t *other);
425 #define DDS_InstanceHandle_is_nil(handlePtr) \
426 DDS_InstanceHandle_equals(handlePtr, &DDS_HANDLE_NIL)
428 #ifdef DOXYGEN_DOCUMENTATION_ONLY
446 DDS_InstanceHandle_from_rtps(DDS_InstanceHandle_t *
self,
447 const struct RTPS_Guid *other);
461 DDS_InstanceHandle_to_rtps(
struct RTPS_Guid *other,
462 const DDS_InstanceHandle_t *
self);
477 DDS_InstanceHandle_from_netio_address(DDS_InstanceHandle_t *
self,
478 const struct NETIO_Address *other);
491 DDS_InstanceHandle_compare(
const DDS_InstanceHandle_t *
self,
492 const DDS_InstanceHandle_t *other);
513 #define DDS_GUID_INITIALIZER {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
517 extern DDSCDllVariable
const struct DDS_GUID_t DDS_GUID_AUTO;
525 extern DDSCDllVariable
const struct DDS_GUID_t DDS_GUID_PREFIX_UNKNOWN;
529 extern DDSCDllVariable
const struct DDS_GUID_t DDS_GUID_PREFIX_AUTO;
542 DDS_GUID_to_rtps(
struct RTPS_Guid *other,
557 const struct RTPS_Guid *other);
600 #define DDS_SEQUENCE_NUMBER_UNKNOWN REDA_SEQUENCE_NUMBER_UNKNOWN
604 #define DDS_SEQUENCE_NUMBER_ZERO REDA_SEQUENCE_NUMBER_ZERO
608 #define DDS_SEQUENCE_NUMBER_MAX REDA_SEQUENCE_NUMBER_MAX
688 #define DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(T) \
690 DDSCDllExport DDS_Boolean T ## _initialize(struct T* self); \
691 DDSCDllExport DDS_Boolean T ## _finalize(struct T* self); \
692 DDSCDllExport DDS_Boolean T ## _copy(struct T* self, const struct T* from);\
693 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean T ## _is_equal(const struct T* self, const struct T* from)
698 #define DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_BASIC(T) \
700 DDSCDllExport DDS_Boolean T ## _is_equal(const struct T* self, const struct T* from)
717 #define DDS_STATUS_MASK_NONE ((DDS_StatusMask) 0)
721 #define DDS_STATUS_MASK_ALL (~DDS_STATUS_MASK_NONE)
816 DDS_USERDATA_QOS_POLICY_ID = 1,
820 DDS_DURABILITY_QOS_POLICY_ID = 2,
824 DDS_PRESENTATION_QOS_POLICY_ID = 3,
832 DDS_LATENCYBUDGET_QOS_POLICY_ID = 5,
848 DDS_TIMEBASEDFILTER_QOS_POLICY_ID = 9,
852 DDS_PARTITION_QOS_POLICY_ID = 10,
860 DDS_DESTINATIONORDER_QOS_POLICY_ID = 12,
868 DDS_RESOURCELIMITS_QOS_POLICY_ID = 14,
876 DDS_WRITERDATALIFECYCLE_QOS_POLICY_ID = 16,
880 DDS_READERDATALIFECYCLE_QOS_POLICY_ID = 17,
884 DDS_TOPICDATA_QOS_POLICY_ID = 18,
888 DDS_GROUPDATA_QOS_POLICY_ID = 19,
892 DDS_TRANSPORTPRIORITY_QOS_POLICY_ID = 20,
896 DDS_LIFESPAN_QOS_POLICY_ID = 21,
900 DDS_DURABILITYSERVICE_QOS_POLICY_ID = 22,
907 struct DDS_QosPolicyCount
918 #define T struct DDS_QosPolicyCount
919 #define TSeq DDS_QosPolicyCountSeq
920 #include <reda/reda_sequence_decl.h>
922 #ifdef DOXYGEN_DOCUMENTATION_ONLY
925 struct DDS_QosPolicyCountSeq
1005 DDS_DeadlineQosPolicy_get_sample_freq(
1024 #define DDS_DEADLINE_QOS_POLICY_DEFAULT \
1025 {DDS_DURATION_INFINITE_INITIALIZER}
1063 #define DDS_OWNERSHIP_QOS_POLICY_DEFAULT { DDS_SHARED_OWNERSHIP_QOS }
1087 #define DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT { 0L }
1106 DDS_AUTOMATIC_LIVELINESS_QOS,
1110 DDS_MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,
1134 #define DDS_LIVELINESS_QOS_POLICY_DEFAULT \
1136 DDS_AUTOMATIC_LIVELINESS_QOS,\
1137 DDS_DURATION_INFINITE_INITIALIZER \
1182 #define DDS_RELIABILITY_QOS_POLICY_DEFAULT \
1183 { DDS_BEST_EFFORT_RELIABILITY_QOS, \
1208 DDS_KEEP_ALL_HISTORY_QOS
1217 #define DDS_MAX_DEPTH_HISTORY_QOS (2147483647)
1235 #define DDS_HISTORY_QOS_POLICY_DEFAULT { DDS_KEEP_LAST_HISTORY_QOS, \
1263 DDS_TRANSIENT_DURABILITY_QOS,
1267 DDS_PERSISTENT_DURABILITY_QOS
1282 #define DDS_DURABILITY_QOS_POLICY_DEFAULT \
1283 { DDS_VOLATILE_DURABILITY_QOS }
1323 #define DDS_RESOURCE_LIMITS_QOS_POLICY_DEFAULT { \
1351 extern DDSCDllVariable
const char *
const
1386 #define DDS_DATAREADERRESOURCE_LIMITS_QOS_POLICY_DEFAULT { \
1391 DDS_NO_INSTANCE_REPLACEMENT_QOS, \
1403 extern DDSCDllVariable
const char *
const
1422 #define DDS_DATAWRITERRESOURCE_LIMITS_QOS_POLICY_DEFAULT { \
1449 #define DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT { DDS_BOOLEAN_TRUE }
1459 #define DDS_LENGTH_UNLIMITED (-1)
1461 #define DDS_LENGTH_AUTO (-2)
1473 extern DDSCDllVariable
const char *
const DDS_TYPESUPPORT_QOS_POLICY_NAME;
1478 struct DDS_TypeSupportQosPolicy
1487 #define DDS_TYPESUPPORT_QOS_POLICY_DEFAULT \
1517 #define DDS_SYSTEM_RESOURCE_LIMITS_QOS_POLICY_DEFAULT { 1L,16L }
1525 #define DDS_RtpsWellKnownPorts NETIO_RtpsPortParam
1541 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1577 #define DDS_RtpsWellKnownPorts_t DDS_RtpsWellKnownPorts
1581 #define DDS_RTPS_WELL_KNOWN_PORTS_DEFAULT \
1633 #define DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT { \
1635 DDS_RTPS_AUTO_ID , \
1636 DDS_RTPS_AUTO_ID , \
1637 DDS_RTPS_AUTO_ID , \
1638 DDS_RTPS_WELL_KNOWN_PORTS_DEFAULT \
1646 #define DDS_Locator RTPS_Locator
1651 #define DDS_Locator_t RTPS_Locator_t
1656 #define DDS_LocatorUdpv4_t RTPS_LocatorUdpv4_t
1658 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1679 #define T struct RTPS_Locator
1680 #define TSeq DDS_LocatorSeq
1681 #define REDA_SEQUENCE_USER_API
1682 #define TSeq_is_equal
1683 #include <reda/reda_sequence_decl.h>
1685 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1694 #define DDS_LOCATOR_INVALID RTPS_LOCATOR_INVALID
1700 #define DDS_LOCATOR_DEFAULT RTPS_LOCATOR_DEFAULT
1705 #define DDS_LOCATOR_KIND_INVALID RTPS_LOCATOR_KIND_INVALID
1710 #define DDS_LOCATOR_PORT_INVALID RTPS_LOCATOR_PORT_INVALID
1715 #define DDS_LOCATOR_ADDRESS_INVALID RTPS_LOCATOR_ADDRESS_INVALID
1723 #define DDS_LOCATOR_KIND_UDPv4 RTPS_LOCATOR_KIND_UDPv4
1728 #define DDS_LOCATOR_KIND_UDPv6 RTPS_LOCATOR_KIND_UDPv6
1733 #define DDS_LOCATOR_KIND_RESERVED RTPS_LOCATOR_KIND_RESERVED
1738 #define DDS_LOCATOR_KIND_SHMEM RTPS_LOCATOR_KIND_SHMEM
1759 #define DDS_PROTOCOL_VERSION_DEFAULT { 0, 0 }
1763 #define DDS_PROTOCOLVERSION_1_0 { 1, 0 }
1766 #define DDS_PROTOCOLVERSION_1_1 { 1, 1 }
1769 #define DDS_PROTOCOLVERSION_1_2 { 1, 2 }
1772 #define DDS_PROTOCOLVERSION_2_0 { 2, 0 }
1775 #define DDS_PROTOCOLVERSION_2_1 { 2, 1 }
1778 #define DDS_PROTOCOLVERSION { 2, 1 }
1782 #define DDS_VENDOR_ID_LENGTH_MAX 2
1793 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1805 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_BASIC(
DDS_VendorId);
1806 #define DDS_VendorId_t DDS_VendorId
1810 #define DDS_VENDOR_ID_DEFAULT { {0, 0} }
1814 #define DDS_VENDORID_UNKNOWN { {0, 0} }
1840 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1860 #define DDS_ProductVersion_t DDS_ProductVersion
1865 #define DDS_PRODUCTVERSION_UNKNOWN { 0, 0, '0', 0 }
1869 #define DDS_PRODUCTVERSION_DEFAULT { 2, 0, 'c', 1 }
1894 #define DDS_DATA_READER_PROTOCOL_QOS_POLICY_DEFAULT \
1926 #define DDS_RTPSRELIABLEWRITER_DEFAULT_SEND_WINDOW (DDS_LENGTH_UNLIMITED)
1930 #define DDS_RTPS_RELIABLE_WRITER_PROTOCOL_DEFAULT { \
1933 DDS_RTPSRELIABLEWRITER_DEFAULT_SEND_WINDOW, \
1934 DDS_LENGTH_UNLIMITED, \
1968 #define DDS_DATA_WRITER_PROTOCOL_QOS_POLICY_DEFAULT \
1969 { DDS_RTPS_AUTO_ID, \
1970 DDS_RTPS_RELIABLE_WRITER_PROTOCOL_DEFAULT,\
1985 #ifdef DOXYGEN_DOCUMENTATION_ONLY
1988 struct DDS_StringSeq {};
2003 #define DDS_TRANSPORT_QOS_POLICY_DEFAULT \
2005 DDS_SEQUENCE_INITIALIZER \
2016 extern DDSCDllVariable
const char *
const
2084 #define DDS_DomainParticipantResourceLimitsQosPolicy_MATCH_INIT (32L)
2104 #define DDS_DOMAIN_PARTICIPANT_RESOURCE_LIMITS_QOS_POLICY_DEFAULT \
2114 DDS_DomainParticipantResourceLimitsQosPolicy_MATCH_INIT, \
2115 DDS_DomainParticipantResourceLimitsQosPolicy_MATCH_INIT, \
2124 #define DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE_LENGTH (4)
2132 DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE
value[DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE_LENGTH];
2137 #define DDS_BuiltinTopicKey_t_INITIALIZER { {0, 0, 0, 0} }
2189 const DDS_InstanceHandle_t *out);
2223 typedef struct DDS_ConditionImpl *DDS_Condition_ptr;
2227 #define T struct DDS_ConditionImpl*
2228 #define TSeq DDS_ConditionSeq
2229 #include <reda/reda_sequence_decl.h>
2231 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2245 DDS_ConditionImpl_set_wrapper(
DDS_Condition *
self,
void *wrapper);
2249 DDSCDllExport
void**
2258 #define DDS_GuardCondition_as_condition(guard_condition_ptr_) \
2259 ((DDS_Condition*) guard_condition_ptr_)
2261 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2291 #define DDS_StatusCondition_as_condition(status_cond_ptr_) \
2292 ((DDS_Condition*) status_cond_ptr_)
2294 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2304 DDSCDllExport DDS_StatusMask
2311 DDS_StatusMask mask);
2377 #define DDS_Listener_INITIALIZER { NULL }
2383 #ifdef DOXYGEN_DOCUMENTATION_ONLY
2405 DDSCDllExport DDS_InstanceHandle_t
2420 DDSCDllExport DDS_StatusMask
2441 DDS_Entity_set_wrapper(
DDS_Entity *
self,
void *wrapper);
2479 #define DDS_ENTITYNAME_QOS_NAME_MAX 255
2496 #define DDS_ENTITY_NAME_QOS_POLICY_DEFAULT { {'\0'} }
2502 const char *
const name);
2510 struct RTI_ManagementQosPolicy
2518 #define RTI_MANAGEMENT_QOS_POLICY_DEFAULT { \
2540 DDSHST_RETCODE_ERROR = -1000,
2541 DDSHST_RETCODE_NOSPACE,
2542 DDSHST_RETCODE_EXISTS,
2543 DDSHST_RETCODE_NOT_EXISTS,
2544 DDSHST_RETCODE_INVALID_PROPERTY,
2545 DDSHST_RETCODE_INVALID_ENTRY_REQUEST,
2546 DDSHST_RETCODE_SUCCESS = 0
2547 } DDSHST_ReturnCode_T;
2553 DDSHST_REPLACE_POLICY_KIND_OLDEST,
2554 DDSHST_REPLACE_POLICY_KIND_NONE
2555 } DDSHST_ReplacePolicyKind_T;
2577 #define DDS_SAMPLE_IDENTITY_UNKNOWN \
2579 DDS_GUID_INITIALIZER, \
2580 DDS_SEQUENCE_NUMBER_UNKNOWN \
2608 #define DDS_WRITEPARAMS_DEFAULT \
2610 DDS_SAMPLE_IDENTITY_UNKNOWN, \
2611 DDS_SAMPLE_IDENTITY_UNKNOWN, \
2613 DDS_HANDLE_NIL_NATIVE \
2626 #define DDS_PropertySeq CDR_PropertySeq
2627 #define DDS_Property CDR_Property
2628 #define DDS_PropertySeq_initialize CDR_PropertySeq_initialize
2629 #define DDS_PropertySeq_set_length CDR_PropertySeq_set_length
2630 #define DDS_PropertySeq_get_length CDR_PropertySeq_get_length
2631 #define DDS_PropertySeq_get_reference CDR_PropertySeq_get_reference
2646 DDSCDllExport
struct DDS_PropertySeq*
2660 struct DDS_Locator *locator);