Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/include/ndds/disc/disc_rtps.h
T
torstenandCopilot 342ffd3e5c Update submodule to latest BUILD_RTI fixes
- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten
- svcTabCommon: Export-Header-Fix via Fallback-Target
- TrainingAreaBase: Stub-Header für BUILD_RTI=OFF
- ddsfts: Include-Pfad und Dependency-Fixes
- BUILD_RTI=OFF Compilation vollständig unterstützt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
2026-08-21 19:30:20 +02:00

925 lines
30 KiB
C

/*
* (c) Copyright 2024, Real-Time Innovations, All rights reserved.
* No duplications, whole or partial, manual or electronic, may be made
* without express written permission. Any such copies, or
* revisions thereof, must display this notice unaltered.
* This code contains trade secrets of Real-Time Innovations, Inc.
*/
#ifndef disc_rtps_h
#define disc_rtps_h
#ifndef osapi_type_h
#include "osapi/osapi_type.h"
#endif
#ifndef netio_common_h
#include "netio/netio_common.h"
#endif
#ifndef mig_rtps_h
#include "mig/mig_rtps.h"
#endif
#ifndef disc_dll_h
#include "disc/disc_dll.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Doxygen file-level documentation =====================================*/
/*e \file
* \brief RTPS definition for discovery
*/
/*e \defgroup DISCRtpsModule rtps
* \ingroup DISC
* @brief RTPS definition for discovery
*/
/*e \defgroup DISCRtpsObjectIdModule RTPS object ID
* \ingroup DISCRtpsModule
* @brief RTPS defined object ID.
* @see RTPS protocol PSM, section 3.2.1.3
*/
/*e \ingroup DISCRtpsObjectIdModule
* participant how the participant refers to itself
*/
#define DISC_RTPS_OBJECT_ID_PARTICIPANT MIG_RTPS_OBJECT_ID_PARTICIPANT
/*e \ingroup DISCRtpsObjectIdModule
* Writer of Simple Discovery Protocol Participant messages
* Spec calls this builtinSdpParticipantWriter
*/
#define DISC_RTPS_OBJECT_ID_WRITER_SDP_PARTICIPANT \
MIG_RTPS_OBJECT_ID_SPDP_PARTICIPANT_WRITER
/*e
* \ingroup DISCRtpsObjectIdModule
* Reader of Simple Discovery Protocol Participant messages
* Spec calls this builtinSdpParticipantReader
*/
#define DISC_RTPS_OBJECT_ID_READER_SDP_PARTICIPANT \
MIG_RTPS_OBJECT_ID_SPDP_PARTICIPANT_READER
/*e \ingroup DISCRtpsObjectIdModule
* Writer of Secure Reliable Simple Participant Discovery Protocol.
*/
#define DISC_RTPS_OBJECT_ID_SECURE_RELIABLE_WRITER_SDP_PARTICIPANT \
MIG_RTPS_OBJECT_ID_SECURE_SPDP_BUILTIN_PARTICIPANT_RELIABLE_WRITER
/*e \ingroup DISCRtpsObjectIdModule
* Reader of Secure Reliable Simple Participant Discovery Protocol.
*/
#define DISC_RTPS_OBJECT_ID_SECURE_RELIABLE_READER_SDP_PARTICIPANT \
MIG_RTPS_OBJECT_ID_SECURE_SPDP_BUILTIN_PARTICIPANT_RELIABLE_READER
/*e \ingroup DISCRtpsObjectIdModule
* Writer of Simple Discovery Protocol Participant (proxy) messages
* (builtinSdpParticipantProxyWriter)
*/
#define DISC_RTPS_OBJECT_ID_WRITER_SDP_PARTICIPANT_PROXY (0x000300C2)
/*e \ingroup DISCRtpsObjectIdModule
* Reader of Simple Discovery Protocol Participant (proxy) messages
* (builtinSdpParticipantProxyReader)
*/
#define DISC_RTPS_OBJECT_ID_READER_SDP_PARTICIPANT_PROXY (0x000300C7)
/*e \ingroup DISCRtpsObjectIdModule
* Writer of Simple Discovery Protocol Participant state messages
* (builtinSdpParticipantStateWriter)
*/
#define DISC_RTPS_OBJECT_ID_WRITER_SDP_PARTICIPANT_STATE (0x000400C2)
/*e \ingroup DISCRtpsObjectIdModule
* Reader of Simple Discovery Protocol Participant messages
* (builtinSdpParticipantStateReader)
*/
#define DISC_RTPS_OBJECT_ID_READER_SDP_PARTICIPANT_STATE (0x000400C7)
/*e
* \ingroup DISCRtpsObjectIdModule
* Writer of Simple Discovery Protocol 2.0 Participant Bootstrap messages
*/
#define DISC_RTPS_OBJECT_ID_SPDP2_PARTICIPANT_BOOTSTRAP_WRITER \
MIG_RTPS_OBJECT_ID_SPDP2_BUILTIN_PARTICIPANT_BOOTSTRAP_WRITER
/*e
* \ingroup DISCRtpsObjectIdModule
* Reader of Simple Discovery Protocol 2.0 Participant Bootstrap messages
*/
#define DISC_RTPS_OBJECT_ID_SPDP2_PARTICIPANT_BOOTSTRAP_READER \
MIG_RTPS_OBJECT_ID_SPDP2_BUILTIN_PARTICIPANT_BOOTSTRAP_READER
/*e
* \ingroup DISCRtpsObjectIdModule
* Writer of Simple Discovery Protocol 2.0 Participant Config messages
*/
#define DISC_RTPS_OBJECT_ID_SPDP2_PARTICIPANT_CONFIG_WRITER \
MIG_RTPS_OBJECT_ID_SPDP2_BUILTIN_PARTICIPANT_RELIABLE_WRITER
/*e
* \ingroup DISCRtpsObjectIdModule
* Reader of Simple Discovery Protocol 2.0 Participant Config messages
*/
#define DISC_RTPS_OBJECT_ID_SPDP2_PARTICIPANT_CONFIG_READER \
MIG_RTPS_OBJECT_ID_SPDP2_BUILTIN_PARTICIPANT_RELIABLE_READER
/*e
* \ingroup DISCRtpsObjectIdModule
* Writer of Simple Discovery Protocol 2.0 Participant Config secure messages
*/
#define DISC_RTPS_OBJECT_ID_SPDP2_PARTICIPANT_SECURE_CONFIG_WRITER \
MIG_RTPS_OBJECT_ID_SPDP2_BUILTIN_PARTICIPANT_SECURE_RELIABLE_WRITER
/*e
* \ingroup DISCRtpsObjectIdModule
* Reader of Simple Discovery Protocol 2.0 Participant Config secure messages
*/
#define DISC_RTPS_OBJECT_ID_SPDP2_PARTICIPANT_SECURE_CONFIG_READER \
MIG_RTPS_OBJECT_ID_SPDP2_BUILTIN_PARTICIPANT_SECURE_RELIABLE_READER
/*e \ingroup DISCRtpsObjectIdModule
* Writer of topic messages; spec calls this builtinTopicWriter
*/
#define DISC_RTPS_OBJECT_ID_WRITER_TOPICS (0x000002C2)
/*e \ingroup DISCRtpsObjectIdModule
* Reader of topic messages; spec calls this builtinTopicReader
*/
#define DISC_RTPS_OBJECT_ID_READER_TOPICS (0x000002C7)
/*e \ingroup DISCRtpsObjectIdModule
* Writer of publication messages; spec calls this builtinPublicationsWriter
*/
#define DISC_RTPS_OBJECT_ID_WRITER_PUBLICATIONS \
NDDS_TRANSPORT_RTPS_OBJECT_ID_PUB_WRITER
/*e \ingroup DISCRtpsObjectIdModule
* Reader of publication messages; spec calls this builtinPublicationsReader
*/
#define DISC_RTPS_OBJECT_ID_READER_PUBLICATIONS \
NDDS_TRANSPORT_RTPS_OBJECT_ID_PUB_READER
/*e \ingroup DISCRtpsObjectIdModule
* Writer of subscription messages; spec calls this builtinSubscriptionsWriter
*/
#define DISC_RTPS_OBJECT_ID_WRITER_SUBSCRIPTIONS \
NDDS_TRANSPORT_RTPS_OBJECT_ID_SUB_WRITER
/*e \ingroup DISCRtpsObjectIdModule
* Reader of subscription messages
*/
#define DISC_RTPS_OBJECT_ID_READER_SUBSCRIPTIONS \
NDDS_TRANSPORT_RTPS_OBJECT_ID_SUB_READER
/*e \ingroup DISCRtpsObjectIdModule
* Secure Writer of publication messages
* spec calls this builtinPublicationsSecureWriter
*/
#define DISC_RTPS_OBJECT_ID_SECURE_WRITER_PUBLICATIONS \
MIG_RTPS_OBJECT_ID_SECURE_PUB_WRITER
/*e \ingroup DISCRtpsObjectIdModule
* Secure Reader of publication messages; spec calls this
* builtinPublicationsSecureReader
*/
#define DISC_RTPS_OBJECT_ID_SECURE_READER_PUBLICATIONS (0xFF0003C7)
/*e \ingroup DISCRtpsObjectIdModule
* Secure Writer of subscription messages; spec calls this
* builtinSubscriptionsSecureWriter
*/
#define DISC_RTPS_OBJECT_ID_SECURE_WRITER_SUBSCRIPTIONS \
MIG_RTPS_OBJECT_ID_SECURE_SUB_WRITER
/*e \ingroup DISCRtpsObjectIdModule
* Secure Reader of subscription messages; spec calls this
* builtinSubscriptionsSecureReader
*/
#define DISC_RTPS_OBJECT_ID_SECURE_READER_SUBSCRIPTIONS (0xFF0004C7)
/* ----------------------------------------------------------------- */
/*e \defgroup DISCRtpsPidModule DISCRtpsPid
* \ingroup DISCRtpsModule
* @brief RTPS defined parameter ID.
*/
/*e \ingroup DISCRtpsPidModule
* RTPS parameter ID, used to describe RTPS objects.
*/
typedef RTI_UINT16 DISCRtpsParameterId;
/* ========================================================================== */
/* RTPS SPECIFICATION PID DEFINITIONS */
/* ========================================================================== */
/*e \ingroup DISCRtpsPidModule
* Pad for parameter values in case they don't end on a 4-byte boundary
*/
#define DISC_RTPS_PID_PAD MIG_RTPS_PID_PAD
/*e \ingroup DISCRtpsPidModule
* Indicate end of parameter sequence.
*/
#define DISC_RTPS_PID_SENTINEL MIG_RTPS_PID_SENTINEL
/*e \ingroup DISCRtpsPidModule
* Allows the specification of large member ID and/or data length values;
*/
#define DISC_RTPS_PID_EXTENDED MIG_RTPS_PID_EXTENDED
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::userDataQosPolicy : UserDataQosPolicy,
* Subscription::userDataQosPolicy : UserDataQosPolicy
* Application::userDataQosPolicy : UserDataQosPolicy
*/
#define DISC_RTPS_PID_USER_DATA MIG_RTPS_PID_USER_DATA
/*e \ingroup DISCRtpsPidModule
* Data Representation - reader, writer and topic
*/
#define DISC_RTPS_PID_DATA_REPRESENTATION MIG_RTPS_PID_DATA_REPRESENTATION
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::topic : PathName, Subscription::topic : PathName
*/
#define DISC_RTPS_PID_TOPIC_NAME MIG_RTPS_PID_TOPIC_NAME
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::typeName : TypeName,
* Subscription::typeName : TypeName
*/
#define DISC_RTPS_PID_TYPE_NAME MIG_RTPS_PID_TYPE_NAME
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::groupDataQosPolicy : GroupDataQosPolicy,
* Subscription::groupDataQosPolicy : GroupDataQosPolicy
*/
#define DISC_RTPS_PID_GROUP_DATA MIG_RTPS_PID_GROUP_DATA
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::topicDataQosPolicy : TopicDataQosPolicy,
* Subscription::topicDataQosPolicy : TopicDataQosPolicy
*/
#define DISC_RTPS_PID_TOPIC_DATA MIG_RTPS_PID_TOPIC_DATA
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::durabilityQosPolicy : DurabilityQosPolicy
* Used for field Subscription::durabilityQosPolicy : DurabilityQosPolicy
*/
#define DISC_RTPS_PID_DURABILITY MIG_RTPS_PID_DURABILITY
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::durabilityQosPolicy : DurabilityServiceQosPolicy
* Used for field Topic::durabilityQosPolicy : DurabilityServiceQosPolicy
*/
#define DISC_RTPS_PID_DURABILITY_SERVICE MIG_RTPS_PID_DURABILITY_SERVICE
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::deadlineQosPolicy : DeadlineQosPolicy
*/
#define DISC_RTPS_PID_DEADLINE MIG_RTPS_PID_DEADLINE
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::latencyBudgetQosPolicy : LatencyBudgetQosPolicy
*/
#define DISC_RTPS_PID_LATENCY_BUDGET MIG_RTPS_PID_LATENCY_BUDGET
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::livelinessQosPolicy : LivelinessQosPolicy
* Used for field Subscription::livelinessQosPolicy : LivelinessQosPolicy
*/
#define DISC_RTPS_PID_LIVELINESS MIG_RTPS_PID_LIVELINESS
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::reliabilityOffered : RTI_UINT32
* Used for field Subscription::reliabilityRequested : RTI_UINT32
*/
#define DISC_RTPS_PID_RELIABILITY MIG_RTPS_PID_RELIABILITY
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::lifespanQosPolicy : LifespanQosPolicy
*/
#define DISC_RTPS_PID_LIFESPAN MIG_RTPS_PID_LIFESPAN
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::destinationOrderQosPolicy :
* DestinationOrderQosPolicy
*/
#define DISC_RTPS_PID_DESTINATION_ORDER MIG_RTPS_PID_DESTINATION_ORDER
/*e \ingroup DISCRtpsPidModule
* Used for field Topic::history : HistoryQosPolicy
*/
#define DISC_RTPS_PID_HISTORY MIG_RTPS_PID_HISTORY
/*e \ingroup DISCRtpsPidModule
* Used for field Topic::resourceLimits : ResourceLimitsQosPolicy
*/
#define DISC_RTPS_PID_RESOURCE_LIMITS MIG_RTPS_PID_RESOURCE_LIMITS
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::ownershipQosPolicy : OwnershipQosPolicy
*/
#define DISC_RTPS_PID_OWNERSHIP MIG_RTPS_PID_OWNERSHIP
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::strength : long
*/
#define DISC_RTPS_PID_OWNERSHIP_STRENGTH MIG_RTPS_PID_OWNERSHIP_STRENGTH
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::presentationQosPolicy : PresentationQosPolicy
*/
#define DISC_RTPS_PID_PRESENTATION MIG_RTPS_PID_PRESENTATION
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::partitionQosPolicy : PartitionQosPolicy
*/
#define DISC_RTPS_PID_PARTITION MIG_RTPS_PID_PARTITION
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::minimumSeparation : NtpTime, AKA
* Used for field Subscription::time_based_filter : TimeBasedFilterQosPolicy
*/
#define DISC_RTPS_PID_TIME_BASED_FILTER MIG_RTPS_PID_TIME_BASED_FILTER
/*e \ingroup DISCRtpsPidModule
* Used for field Application::protocolVersion : ProtocolVersion
*/
#define DISC_RTPS_PID_PROTOCOL_VERSION MIG_RTPS_PID_PROTOCOL_VERSION
/*e \ingroup DISCRtpsPidModule
* Used for field Application::vendorId : VendorId
*/
#define DISC_RTPS_PID_VENDOR_ID MIG_RTPS_PID_VENDOR_ID
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_UNICAST_IPADDRESS_COUNT_MAX
*/
#define DISC_RTPS_PID_UNICAST_LOCATOR6 MIG_RTPS_PID_UNICAST_LOCATOR6
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_MULTICAST_IPADDRESS_COUNT_MAX
*/
#define DISC_RTPS_PID_MULTICAST_LOCATOR6 MIG_RTPS_PID_MULTICAST_LOCATOR6
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_MULTICAST_IPADDRESS_COUNT_MAX
* Used for field Reader::userdataMulticastIPAddressList : IPAddress[]
*/
#define DISC_RTPS_PID_MULTICAST_IPADDRESS MIG_RTPS_PID_MULTICAST_IPADDRESS
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_UNICAST_IPADDRESS_COUNT_MAX
*/
#define DISC_RTPS_PID_DEFAULT_UNICAST_LOCATOR6 \
MIG_RTPS_PID_DEFAULT_UNICAST_LOCATOR6
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_UNICAST_IPADDRESS_COUNT_MAX
*/
#define DISC_RTPS_PID_DEFAULT_MULTICAST_LOCATOR6 \
MIG_RTPS_PID_DEFAULT_MULTICAST_LOCATOR6
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_UNICAST_IPADDRESS_COUNT_MAX
*/
#define DISC_RTPS_PID_METATRAFFIC_UNICAST_LOCATOR6 \
MIG_RTPS_PID_METATRAFFIC_UNICAST_LOCATOR6
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_USERDATA_MULTICAST_IPADDRESS_COUNT_MAX
*/
#define DISC_RTPS_PID_METATRAFFIC_MULTICAST_LOCATOR6 \
MIG_RTPS_PID_METATRAFFIC_MULTICAST_LOCATOR6
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_APP_IPADDRESS_COUNT_MAX
* Used for field Application::unicastIPAddressList : IPAddress[]
*/
#define DISC_RTPS_PID_DEFAULT_UNICAST_IPADDRESS \
MIG_RTPS_PID_DEFAULT_UNICAST_IPADDRESS
/*e \ingroup DISCRtpsPidModule
* Used for field Application::userdataUnicastPort :Port
*/
#define DISC_RTPS_PID_DEFAULT_UNICAST_PORT MIG_RTPS_PID_DEFAULT_UNICAST_PORT
/*e \ingroup DISCRtpsPidModule
* Used for field ParticipantProxy::metatrafficUnicastLocatorList.address :
* IPv4Address_t
*/
#define DISC_RTPS_PID_METATRAFFIC_UNICAST_IPADDRESS \
MIG_RTPS_PID_METATRAFFIC_UNICAST_IPADDRESS
/*e \ingroup DISCRtpsPidModule
* Used for field Application::metatrafficUnicastPort : Port
*/
#define DISC_RTPS_PID_METATRAFFIC_UNICAST_PORT \
MIG_RTPS_PID_METATRAFFIC_UNICAST_PORT
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_METATRAFFIC_MULTICAST_IPADDRESS_COUNT_MAX
* Used for field Application::metatrafficMulticastIPAddressList: IPAddress[]
*/
#define DISC_RTPS_PID_METATRAFFIC_MULTICAST_IPADDRESS \
MIG_RTPS_PID_METATRAFFIC_MULTICAST_IPADDRESS
/*e \ingroup DISCRtpsPidModule
*/
#define DISC_RTPS_PID_METATRAFFIC_MULTICAST_PORT \
MIG_RTPS_PID_METATRAFFIC_MULTICAST_PORT
/*e \ingroup DISCRtpsPidModule
* boolean
*/
#define DISC_RTPS_PID_EXPECTS_INLINE_QOS MIG_RTPS_PID_EXPECTS_INLINE_QOS
/*e \ingroup DISCRtpsPidModule
* Used for field DomainParticipant::manualLivelinessCount : unsigned long
*/
#define DISC_RTPS_PID_MANUAL_LIVELINESS_COUNT \
MIG_RTPS_PID_MANUAL_LIVELINESS_COUNT
/*e \ingroup DISCRtpsPidModule
*/
#define DISC_RTPS_PID_PARTICIPANT_BUILTIN_ENDPOINTS \
MIG_RTPS_PID_PARTICIPANT_BUILTIN_ENDPOINTS
/*e \ingroup DISCRtpsPidModule
* Used for field SDPParticipantData::leaseDuration NtpTime
*/
#define DISC_RTPS_PID_LEASE_DURATION MIG_RTPS_PID_LEASE_DURATION
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::contentFilteredTopicProperties
*/
#define DISC_RTPS_PID_CONTENT_FILTER_PROPERTY \
MIG_RTPS_PID_CONTENT_FILTER_PROPERTY
/*e \ingroup DISCRtpsPidModule
* Used for field Participant::propertyList
*/
#define DISC_RTPS_PID_PROPERTY_LIST MIG_RTPS_PID_PROPERTY_LIST
/*e \ingroup DISCRtpsPidModule
* Used for field Publication/Subscription::dataTagQosPolicy
*/
#define DISC_RTPS_PID_DATA_TAGS MIG_RTPS_PID_DATA_TAGS
/*e \ingroup DISCRtpsPidModule
* Used for participant GUID
*/
#define DISC_RTPS_PID_PARTICIPANT_GUID MIG_RTPS_PID_PARTICIPANT_GUID
/*e \ingroup DISCRtpsPidModule
* Used for participant entity ID
*/
#define DISC_RTPS_PID_PARTICIPANT_ENTITY_ID MIG_RTPS_PID_PARTICIPANT_ENTITY_ID
/*e \ingroup DISCRtpsPidModule
* Used for GROUP GUID
*/
#define DISC_RTPS_PID_GROUP_GUID MIG_RTPS_PID_GROUP_GUID
/*e \ingroup DISCRtpsPidModule
* Used for Group OID
*/
#define DISC_RTPS_PID_GROUP_ENTITY_ID MIG_RTPS_PID_GROUP_ENTITY_ID
/*e \ingroup DISCRtpsPidModule
* Used for Endpoint GUID
*/
#define DISC_RTPS_PID_ENDPOINT_GUID MIG_RTPS_PID_ENDPOINT_GUID
/*e \ingroup DISCRtpsPidModule
* Used for built in endpoints
*/
#define DISC_RTPS_PID_BUILTIN_ENDPOINT_MASK MIG_RTPS_PID_BUILTIN_ENDPOINT_MASK
/*e \ingroup DISCRtpsPidModule
* Maximum serialized size of a writer sample
*/
#define DISC_RTPS_PID_MAX_SAMPLE_SERIALIZED_SIZE \
MIG_RTPS_PID_MAX_SAMPLE_SERIALIZED_SIZE
/*e \ingroup DISCRtpsPidModule
* Used for entity name
*/
#define DISC_RTPS_PID_ENTITY_NAME MIG_RTPS_PID_ENTITY_NAME
/*e \ingroup DISCRtpsPidModule
* XTypes (see Jira CXTYPES-21)
*/
#define DISC_RTPS_PID_TYPE_OBJECT MIG_RTPS_PID_TYPE_OBJECT
/*e \ingroup DISCRtpsPidModule
* XTypes (see Jira CXTYPES-10)
*/
#define DISC_RTPS_PID_TYPE_CONSISTENCY MIG_RTPS_PID_TYPE_CONSISTENCY
/*e \ingroup DISCRtpsPidModule
*/
#define DISC_RTPS_PID_TYPE_INFORMATION_V2 MIG_RTPS_PID_TYPE_INFORMATION_V2
/*e \ingroup DISCRtpsPidModule
* XTypes (see Jira CXTYPES-21)
*/
#define DISC_RTPS_PID_BASE_TYPE_NAME MIG_RTPS_PID_BASE_TYPE_NAME
/*e \ingroup DISCRtpsPidModule
* RTPS 2.3 Builtin Endpoint QoS.
*/
#define DISC_RTPS_PID_BUILTIN_ENDPOINT_QOS MIG_RTPS_PID_BUILTIN_ENDPOINT_QOS
/*e \ingroup DISCRtpsPidModule
* Security
*/
#define DISC_RTPS_PID_IDENTITY_TOKEN MIG_RTPS_PID_IDENTITY_TOKEN
#define DISC_RTPS_PID_PERMISSIONS_TOKEN MIG_RTPS_PID_PERMISSIONS_TOKEN
#define DISC_RTPS_PID_ENDPOINT_SECURITY_PROTECTION_INFO \
MIG_RTPS_PID_ENDPOINT_SECURITY_PROTECTION_INFO
#define DISC_RTPS_PID_PARTICIPANT_SECURITY_PROTECTION_INFO \
MIG_RTPS_PID_PARTICIPANT_SECURITY_PROTECTION_INFO
#define DISC_RTPS_PID_PARTICIPANT_SECURITY_DIGITAL_SIGNATURE_ALGO \
MIG_RTPS_PID_PARTICIPANT_SECURITY_DIGITAL_SIGNATURE_ALGO
#define DISC_RTPS_PID_PARTICIPANT_SECURITY_KEY_ESTABLISHMENT_ALGO \
MIG_RTPS_PID_PARTICIPANT_SECURITY_KEY_ESTABLISHMENT_ALGO
#define DISC_RTPS_PID_PARTICIPANT_SECURITY_SYMMETRIC_CIPHER_ALGO \
MIG_RTPS_PID_PARTICIPANT_SECURITY_SYMMETRIC_CIPHER_ALGO
#define DISC_RTPS_PID_ENDPOINT_SECURITY_SYMMETRIC_CIPHER_ALGO \
MIG_RTPS_PID_ENDPOINT_SECURITY_SYMMETRIC_CIPHER_ALGO
/**
* DDS-Security implementations that support DDS-XTYPES shall advertise the
* availability of the Secure TypeLookup Built-In Endpoints using the Parameter
* with ID PID_AVAILABLE_BUILTIN_ENDPOINTS_EXT
*/
#define DISC_RTPS_PID_BUILTIN_ENDPOINT_EX_MASK \
MIG_RTPS_PID_AVAILABLE_BUILTIN_ENDPOINTS_EX
/*
* NOTE: for adding new RTPS spec discovery-related PIDs:
* 1) Add a new PID that is not currently in use in MIG rtps.ifc
* 2) Add a redefinition here.
*/
/* end RTPS spec PIDs ======================================================= */
/* ========================================================================== */
/* RTI VENDOR SPECIFIC PID DEFINITIONS */
/* ========================================================================== */
/*e \ingroup DISCRtpsPidModule
* Used for field Participant::productVersion
*/
#define DISC_RTPS_PID_PRODUCT_VERSION MIG_RTPS_PID_PRODUCT_VERSION
/*e \ingroup DISCRtpsPidModule
* Used for field Participant::pluginPromiscuityKind
*/
#define DISC_RTPS_PID_PLUGIN_PROMISCUITY_KIND_DEPRECATED \
MIG_RTPS_PID_PLUGIN_PROMISCUITY_KIND_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for field:
* - Publication::virtualGuid
*/
#define DISC_RTPS_PID_ENTITY_VIRTUAL_GUID MIG_RTPS_PID_ENTITY_VIRTUAL_GUID
/*e \ingroup DISCRtpsPidModule
* Used for field:
* - Participant::serviceKind
* - Publication::serviceKind
* - Subscription::serviceKind
*/
#define DISC_RTPS_PID_SERVICE MIG_RTPS_PID_SERVICE
/*e \ingroup DISCRtpsPidModule
* Used for TypeCode information
*/
#define DISC_RTPS_PID_TYPECODE MIG_RTPS_PID_TYPECODE
/*e \ingroup DISCRtpsPidModule
* Used for disabling acks
*/
#define DISC_RTPS_PID_DISABLE_ACKS MIG_RTPS_PID_DISABLE_ACKS
/*e \ingroup DISCRtpsPidModule
* Used for Locator Filter information
*/
#define DISC_RTPS_PID_LOCATOR_FILTER_LIST MIG_RTPS_PID_LOCATOR_FILTER_LIST
/*e \ingroup DISCRtpsPidModule
* Used for Encapsulation information
*/
#define DISC_RTPS_PID_UNICAST_LOCATOR6_EX MIG_RTPS_PID_UNICAST_LOCATOR6_EX
/*e \ingroup DISCRtpsPidModule
* Used for Encapsulation information
*/
#define DISC_RTPS_PID_MULTICAST_LOCATOR6_EX MIG_RTPS_PID_MULTICAST_LOCATOR6_EX
/*e \ingroup DISCRtpsPidModule
* Used to indicate if virtual HB are expected
*/
#define DISC_RTPS_PID_EXPECTS_VIRTUAL_HB MIG_RTPS_PID_EXPECTS_VIRTUAL_HB
/*e \ingroup DISCRtpsPidModule
* Used for Role Name information
*/
#define DISC_RTPS_PID_ROLE_NAME MIG_RTPS_PID_ROLE_NAME
/*e \ingroup DISCRtpsPidModule
* Used for ack kind
*/
#define DISC_RTPS_PID_ACK_KIND MIG_RTPS_PID_ACK_KIND
/*e \ingroup DISCRtpsPidModule
* Used for presentation
*/
#define DISC_RTPS_PID_PRESENTATION_EX MIG_RTPS_PID_PRESENTATION_EX
/*e \ingroup DISCRtpsPidModule
* Used for field:
* - Publisher::virtualGuid
*
* This parameter is used only with GROUP access
*/
#define DISC_RTPS_PID_GROUP_VIRTUAL_GUID MIG_RTPS_PID_GROUP_VIRTUAL_GUID
/*e \ingroup DISCRtpsPidModule
* Used for peer host update
*/
#define DISC_RTPS_PID_PEER_HOST_EPOCH_DEPRECATED \
MIG_RTPS_PID_PEER_HOST_EPOCH_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for domain ID
*/
#define DISC_RTPS_PID_DOMAIN_ID MIG_RTPS_PID_DOMAIN_ID
/*e \ingroup DISCRtpsPidModule
* Legacy domain ID keep for interoperating with older RTI versions.
*/
#define DISC_RTPS_PID_RTI_DOMAIN_ID MIG_RTPS_PID_RTI_DOMAIN_ID
/*e \ingroup DISCRtpsPidModule
* Used for domain Tag
*/
#define DISC_RTPS_PID_DOMAIN_TAG MIG_RTPS_PID_DOMAIN_TAG
/*e \ingroup DISCRtpsPidModule
* Used for propagating transport settings
*/
#define DISC_RTPS_PID_TRANSPORT_INFO_LIST MIG_RTPS_PID_TRANSPORT_INFO_LIST
/*e \ingroup DISCRtpsPidModule
* Used for propagating the direct communication setting in
* a PERSISTENT or TRANSIENT DR
*/
#define DISC_RTPS_PID_DIRECT_COMMUNICATION MIG_RTPS_PID_DIRECT_COMMUNICATION
/*e \ingroup DISCRtpsPidModule
* Used for propagating the topic-query-publication property
*/
#define DISC_RTPS_PID_TOPIC_QUERY_PUBLICATION \
MIG_RTPS_PID_TOPIC_QUERY_PUBLICATION
/*e \ingroup DISCRtpsPidModule
* Used for propagating the endpoint property change epoch
*/
#define DISC_RTPS_PID_ENDPOINT_PROPERTY_CHANGE_EPOCH \
MIG_RTPS_PID_ENDPOINT_PROPERTY_CHANGE_EPOCH
/*e \ingroup DISCRtpsPidModule
* Used for propagating the participant locator reachability lease expiration
*/
#define DISC_RTPS_PID_REACHABILITY_LEASE_DURATION \
MIG_RTPS_PID_REACHABILITY_LEASE_DURATION
/*e \ingroup DISCRtpsPidModule
* Used for propagating the vendor-specific endpoints for a participant
*/
#define DISC_RTPS_PID_VENDOR_BUILTIN_ENDPOINT_MASK \
MIG_RTPS_PID_VENDOR_BUILTIN_ENDPOINT_MASK
/*e \ingroup DISCRtpsPidModule
* Used for propagating the vendor-specific endpoint security attributes.
*/
#define DISC_RTPS_PID_ENDPOINT_SECURITY_ATTRIBUTES \
MIG_RTPS_PID_ENDPOINT_SECURITY_ATTRIBUTES
/*e \ingroup DISCRtpsPidModule
* Used for propagating the compressed type object.
*/
#define DISC_RTPS_PID_TYPE_OBJECT_LB MIG_RTPS_PID_TYPE_OBJECT_LB
/*e \ingroup DISCRtpsPidModule
* Used for propagating the instance state consistency kind configuration.
*/
#define DISC_RTPS_PID_ISC_KIND MIG_RTPS_PID_ISC_KIND
/*e \ingroup DISCRtpsPidModule
* Used for propagating the vendor-specific participant security protection
* info.
*/
#define DISC_RTPS_PID_VENDOR_PARTICIPANT_SECURITY_PROTECTION_INFO \
MIG_RTPS_PID_VENDOR_PARTICIPANT_SECURITY_PROTECTION_INFO
/*e \ingroup DISCRtpsPidModule
* Used for propagating the related DW/DR GUID in enhanced RPC discovery.
*/
#define DISC_RTPS_PID_RELATED_ENTITY_GUID MIG_RTPS_PID_RELATED_ENTITY_GUID
/*e \ingroup DISCRtpsPidModule
* Used for propagating topic name aliases.
*/
#define DISC_RTPS_PID_TOPIC_NAME_ALIASES MIG_RTPS_PID_TOPIC_NAME_ALIASES
/*e \ingroup DISCRtpsPidModule
* Used for propagating type name aliases.
*/
#define DISC_RTPS_PID_TYPE_NAME_ALIASES MIG_RTPS_PID_TYPE_NAME_ALIASES
/*e \ingroup DISCRtpsPidModule
* Used for propagating exact reliability kind match requirement.
*
* We only propagate this in the Publication topic, and not in the
* Subscription topic, because:
* - The subscriber needs to know if the publisher has
* exact_reliability_kind_match enabled, if so and the subscriber
* is Best Effort the subscriber will trigger an on_requested_incompatible.
* - The publisher does not need to know if the subscriber has
* exact_reliability_kind_match enabled (exact_reliability_kind_match is
* ignored for DataReaders), becase the publisher just needs to know if the
* subscriber is Best Effort or not, then it will look its own
* exact_reliability_kind_match and if it's true it will trigger an
* on_offered_incompatible.
*
* These considerations apply to Reliable Publishers only. For Best Effort
* Publishers, `exact_reliability_kind_match` has no effect and is not
* propagated because a Best Effort Publisher can only match with Best Effort
* Subscribers.
*/
#define DISC_RTPS_PID_EXACT_RELIABILITY_KIND_MATCH \
MIG_RTPS_PID_EXACT_RELIABILITY_KIND_MATCH
/*e \ingroup DISCRtpsPidModule
*
* Used for propagating some information about the features that a type supports
* like zero copy or flat data.
*
* Prior to TypeObjectV2, this information was sent in the TypeObjectV1 object.
*
* We only send this field if it's not 0
*/
#define DISC_RTPS_PID_TYPE_PROPERTIES MIG_RTPS_PID_TYPE_PROPERTIES
/*
* NOTE: for adding new vendor specific discovery-related PIDs:
* 1) Add a new PID that is not currently in use in MIG rtps.ifc
* 2) Add a redefinition here.
*/
/* end vendor specific PIDs ================================================= */
/* ========================================================================== */
/* DEPRECATED PID DEFINITIONS */
/* ========================================================================== */
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::persistence : NtpTime
*/
#define DISC_RTPS_PID_PERSISTENCE_DEPRECATED MIG_RTPS_PID_PERSISTENCE_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::typeChecksum : TypeChecksum,
* Subscription::typeChecksum : TypeChecksum
*/
#define DISC_RTPS_PID_TYPE_CHECKSUM_DEPRECATED \
MIG_RTPS_PID_TYPE_CHECKSUM_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for client server.
*/
#define DISC_RTPS_PID_TYPE2_NAME_DEPRECATED MIG_RTPS_PID_TYPE2_NAME_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for client server.
*/
#define DISC_RTPS_PID_TYPE2_CHECKSUM_DEPRECATED \
MIG_RTPS_PID_TYPE2_CHECKSUM_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::expectsAck : boolean
*/
#define DISC_RTPS_PID_EXPECTS_ACK_DEPRECATED MIG_RTPS_PID_EXPECTS_ACK_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Array of max size DISC_RTPS_PID_MANAGER_KEY_COUNT_MAX
* Used for field Application::managerKeyList : unsigned long []
*/
#define DISC_RTPS_PID_MANAGER_KEY_DEPRECATED MIG_RTPS_PID_MANAGER_KEY_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for field Publication::sendQueueSize : unsigned long.
*/
#define DISC_RTPS_PID_SEND_QUEUE_SIZE_DEPRECATED \
MIG_RTPS_PID_SEND_QUEUE_SIZE_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for field Manager::vargAppsSequenceNumberLast : SequenceNumber
*/
#define DISC_RTPS_PID_VARGAPPS_SEQUENCE_NUMBER_LAST_DEPRECATED \
MIG_RTPS_PID_VARGAPPS_SEQUENCE_NUMBER_LAST_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for field Subscription::recvQueueSize : unsigned long
*/
#define DISC_RTPS_PID_RECV_QUEUE_SIZE_DEPRECATED \
MIG_RTPS_PID_RECV_QUEUE_SIZE_DEPRECATED
/*e \ingroup DISCRtpsPidModule
* Used for TypeCode information
*/
#define DISC_RTPS_PID_TYPECODE_DEPRECATED MIG_RTPS_PID_TYPECODE_DEPRECATED
/* end deprecated PIDs ====================================================== */
/* ----------------------------------------------------------------- */
/*e \ingroup DISCRtpsPortModule
default value for domain base port
*/
#define DISC_RTPS_BASE_PORT_DEFAULT (7400)
/*e \ingroup DISCRtpsPortModule
default value for domain index
*/
#define DISC_RTPS_DOMAIN_INDEX_DEFAULT (0)
/*e \ingroup DISCRtpsPortModule
default value for application number
*/
#define DISC_RTPS_APP_INDEX_DEFAULT (0)
/*i
* \ingroup DISCRtpsPortModule
* @brief Get well known port for multicast traffic.
*
* @details RTPS defines well known ports based on the system wide
* port base number, and application specific port group number.
* We offer static helper methods to map them into well known port, using
* RTPS defined logic:
*
* PB + (DG * domainId) + dX
*
* @param domainId \b In. Domain index of participant.
* @param portBase \b In. Domain base port.
* @param domainIdGain \b In. Domain index gain.
* @param portOffset \b In. Domain base port offset.
*/
extern DISCDllExport NDDS_Transport_Port_t DISCRtps_getWellKnownMulticastPort(
int domainId,
NDDS_Transport_Port_t portBase,
int domainIdGain,
int portOffset);
/*i
* \ingroup DISCRtpsPortModule
* @brief Get well known port for unicast traffic.
*
* @details RTPS defines well known ports based on the system wide
* port base number, and application specific port group number.
* We offer static helper methods to map them into well known port, using
* RTPS defined logic:
*
* PB + (DG * domainId) + (PG * participantId) + dX
*
* @param domainId \b In. Domain index of participant.
* @param participantId \b In. Participant index of participant.
* @param portBase \b In. Domain base port.
* @param domainIdGain \b In. Domain index gain.
* @param participantIdGain \b In. Participant index gain.
* @param portOffset \b In. Domain base port offset.
*/
extern DISCDllExport NDDS_Transport_Port_t DISCRtps_getWellKnownUnicastPort(
int domainId,
int participantId,
NDDS_Transport_Port_t portBase,
int domainIdGain,
int participantIdGain,
int portOffset);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "disc/disc_rtps_impl.h"
#endif /* disc_rtps_h */