11#ifndef transport_common_user_h
12#define transport_common_user_h
14#include "osapi/osapi_type.h"
15#include "osapi/osapi_socket.h"
16#include "reda/reda_buffer.h"
17#include "transport/transport_dll.h"
67 RTI_INT32 initial_count;
69 RTI_INT32 incremental_count;
77#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_MAX_COUNT_UNLIMITED (-1)
86#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_INCREMENTAL_COUNT_AUTOMATIC (-1)
100#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT { \
102 NDDS_TRANSPORT_ALLOCATION_SETTINGS_MAX_COUNT_UNLIMITED, \
103 NDDS_TRANSPORT_ALLOCATION_SETTINGS_INCREMENTAL_COUNT_AUTOMATIC \
123#define NDDS_TRANSPORT_CLASS_ID_LIST_SIZE 8
136struct NDDS_Transport_ClassId_List {
148#define NDDS_TRANSPORT_CLASSID_INVALID (-1)
151#define NDDS_Transport_ClassId_List_INITIALIZER \
155 NDDS_TRANSPORT_CLASSID_INVALID, \
156 NDDS_TRANSPORT_CLASSID_INVALID, \
157 NDDS_TRANSPORT_CLASSID_INVALID, \
158 NDDS_TRANSPORT_CLASSID_INVALID, \
159 NDDS_TRANSPORT_CLASSID_INVALID, \
160 NDDS_TRANSPORT_CLASSID_INVALID, \
161 NDDS_TRANSPORT_CLASSID_INVALID, \
162 NDDS_TRANSPORT_CLASSID_INVALID \
175#define NDDS_TRANSPORT_CLASSID_ANY (0)
181#define NDDS_TRANSPORT_CLASSID_UDPv4 (1)
187#define NDDS_TRANSPORT_CLASSID_SHMEM (0x01000000)
194#define NDDS_TRANSPORT_CLASSID_SHMEM_510 (2)
200#define NDDS_TRANSPORT_CLASSID_INTRA (3)
208#define NDDS_TRANSPORT_CLASSID_UDPv6 (2)
215#define NDDS_TRANSPORT_CLASSID_UDPv6_510 (5)
221#define NDDS_TRANSPORT_CLASSID_TCPV4_LAN (8)
227#define NDDS_TRANSPORT_CLASSID_TCPV4_WAN (9)
233#define NDDS_TRANSPORT_CLASSNAME_TCPV4_WAN "tcpv4_wan"
239#define NDDS_TRANSPORT_CLASSID_TLSV4_LAN (10)
245#define NDDS_TRANSPORT_CLASSID_TLSV4_WAN (11)
251#define NDDS_TRANSPORT_CLASSID_PCIE (12)
257#define NDDS_TRANSPORT_CLASSID_ITP (13)
263#define NDDS_TRANSPORT_CLASSID_UDPv4_WAN (0x01000001)
272#define NDDS_TRANSPORT_CLASSID_RESERVED_RANGE (1000)
274#define NDDS_Transport_ClassId_ignore_participant_index_for_initial_peers( \
276 (class_id__ == NDDS_TRANSPORT_CLASSID_UDPv4_WAN)
279#define NDDS_TRANSPORT_IP_CLASSNAME_TCPV4_LAN "tcpv4_lan"
280#define NDDS_TRANSPORT_IP_CLASSNAME_TCPV4_WAN "tcpv4_wan"
281#define NDDS_TRANSPORT_IP_CLASSNAME_TLSV4_LAN "tlsv4_lan"
282#define NDDS_TRANSPORT_IP_CLASSNAME_TLSV4_WAN "tlsv4_wan"
290#define NDDS_TRANSPORT_SHORTNAME_SHMEM "SHMEM"
291#define NDDS_TRANSPORT_SHORTNAME_TCPV4 "TCP4"
292#define NDDS_TRANSPORT_SHORTNAME_TLS "TLS"
293#define NDDS_TRANSPORT_SHORTNAME_WAN "WAN"
294#define NDDS_TRANSPORT_SHORTNAME_UDP4 "UDP4"
295#define NDDS_TRANSPORT_SHORTNAME_UDP6 "UDP6"
358#define NDDS_TRANSPORT_ADDRESS_LENGTH (16)
359#define NDDS_TRANSPORT_ADDRESS_BIT_LENGTH (128)
389 unsigned char network_ordered_value[NDDS_TRANSPORT_ADDRESS_LENGTH];
399extern NDDS_Transport_DllExport RTIBool NDDS_Transport_v4Address_to_string(
402 size_t buffer_size_in);
425 size_t buffer_size_in);
433extern NDDS_Transport_DllExport RTIBool
434NDDS_Transport_Address_to_string_with_class_id(
437 size_t buffer_size_in,
463extern NDDS_Transport_DllExport RTIBool
467 size_t buffer_size_in,
468 RTIOsapiSocketAFKind family);
488 const char *address_in);
501 RTI_INT32 indent_in);
510extern NDDS_Transport_DllExport
void NDDS_Transport_Address_copy(
525extern NDDS_Transport_DllExport RTI_INT32 NDDS_Transport_Address_is_equal(
546extern NDDS_Transport_DllExport RTI_INT32 NDDS_Transport_Address_bits_are_equal(
549 RTI_INT32 transport_address_bit_count_in);
563extern NDDS_Transport_DllExport RTI_INT32 NDDS_Transport_Address_compare(
577extern NDDS_Transport_DllExport RTI_INT32
590extern NDDS_Transport_DllExport RTI_INT32
597extern NDDS_Transport_DllExport
void NDDS_Transport_Address_from_ipv4_host_byte(
599 RTI_UINT32 ipv4AddressInHostOrderIn);
605extern NDDS_Transport_DllExport RTI_UINT32
616#define NDDS_TRANSPORT_ADDRESS_INVALID_INITIALIZER \
619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \
643#define NDDS_TRANSPORT_ADDRESS_STRING_BUFFER_SIZE (72)
644#define NDDS_TRANSPORT_V4_ADDRESS_STRING_BUFFER_SIZE (16)
656typedef unsigned int (
657 *NDDS_Transport_Plugin_DomainParticipant_Get_Transformed_Outgoing_Message_Size_Function)(
658 void *domain_participant_ptr,
659 unsigned int message_size);
668 *NDDS_Transport_Plugin_DomainParticipant_Transform_Outgoing_Message_Function)(
669 void *domain_participant_ptr,
671 struct REDABuffer *transformed_message,
673 const struct REDABuffer *message_buffers,
674 int message_buffer_count);
683 *NDDS_Transport_Plugin_DomainParticipant_Transform_Incoming_Message_Function)(
684 void *domain_participant_ptr,
686 struct REDABuffer *transformed_message,
688 const struct REDABuffer *message_buffer);
690struct NDDS_Transport_Plugin_DomainParticipantForwarder {
691 NDDS_Transport_Plugin_DomainParticipant_Get_Transformed_Outgoing_Message_Size_Function
692 getTransformedOutgoingMessageSize;
693 NDDS_Transport_Plugin_DomainParticipant_Transform_Outgoing_Message_Function
694 transformOutgoingMessage;
695 NDDS_Transport_Plugin_DomainParticipant_Transform_Incoming_Message_Function
696 transformIncomingMessage;
RTI_INT32 NDDS_Transport_ClassId_t
Type for storing RTI Connext Transport Plugin class IDs.
Definition: transport_common_user.h:121
RTI_INT32 NDDS_Transport_Address_is_ipv4(const NDDS_Transport_Address_t *address_in)
Checks if an address is an IPv4 address.
RTI_INT32 NDDS_Transport_Address_from_string(NDDS_Transport_Address_t *address_out, const char *address_in)
Converts an address (IPv4 dotted notation or IPv6 presentation string) into a numerical address.
RTIBool NDDS_Transport_Address_to_string(const NDDS_Transport_Address_t *self, char *buffer_inout, size_t buffer_size_in)
Converts a numerical address to a printable string representation.
RTI_INT32 NDDS_Transport_Address_is_multicast(const NDDS_Transport_Address_t *address_in)
Checks if an address is an IPv4 or IPv6 multicast address.
RTIBool NDDS_Transport_Address_to_string_with_protocol_family_format(const NDDS_Transport_Address_t *me, char *buffer, size_t buffer_size_in, RTIOsapiSocketAFKind family)
Converts a numerical address to a printable string representation with IPv4 dotted notation or IPv6 p...
void NDDS_Transport_Address_print(const NDDS_Transport_Address_t *address_in, const char *desc_in, RTI_INT32 indent_in)
Prints an address to standard out.
const NDDS_Transport_Address_t NDDS_TRANSPORT_ADDRESS_INVALID
An invalid transport address.
Addresses are stored individually as network-ordered bytes.
Definition: transport_common_user.h:384
Allocation settings used by various internal buffers.
Definition: transport_common_user.h:66