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);