11#ifndef transport_shmem_h
12#define transport_shmem_h
14#include "clock/clock_interface.h"
15#include "transport/transport_dll.h"
16#include "transport/transport_interface.h"
65 RTI_INT32 segmentKeyOffset;
68 RTI_INT32 segmentKeyFactor;
71 RTI_INT32 semaphoreKeyOffset;
74 RTI_INT32 semaphoreKeyFactor;
77 RTI_INT32 mutexKeyOffset;
80 RTI_INT32 mutexKeyFactor;
89 RTI_UINT32 maxAllowedWriterDurationMillisec;
116 RTI_INT16 majorVersion;
123#define NDDS_TRANSPORT_SHMEM_RESERVED_FORCE_RECV_RESOURCE_FAILURE 1
132#define NDDS_TRANSPORT_SHMEM_RESERVED_USE_TRANSPORT_UUID_AS_SHMEM_UUID 2
137#define NDDS_TRANSPORT_SHMEM_CLASS_NAME "shmem"
142#define NDDS_TRANSPORT_BUILTIN_SHMEM_ALIAS "builtin.shmem"
147#define NDDS_TRANSPORT_SHMEM_ADDRESS_BIT_COUNT (-96)
152#define NDDS_TRANSPORT_SHMEM_PROPERTIES_BITMAP_DEFAULT \
153 (NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED)
159#define NDDS_TRANSPORT_SHMEM_GATHER_SEND_BUFFER_COUNT_MAX_DEFAULT (1024)
165 #define NDDS_TRANSPORT_SHMEM_MESSAGE_SIZE_MAX_DEFAULT (9216)
167 #define NDDS_TRANSPORT_SHMEM_MESSAGE_SIZE_MAX_DEFAULT (65536)
175 #define NDDS_TRANSPORT_SHMEM_RECEIVED_MESSAGE_COUNT_MAX_DEFAULT (8)
177 #define NDDS_TRANSPORT_SHMEM_RECEIVED_MESSAGE_COUNT_MAX_DEFAULT (64)
183#define NDDS_TRANSPORT_SHMEM_RECEIVE_BUFFER_SIZE_DEFAULT \
184 (NDDS_TRANSPORT_SHMEM_RECEIVED_MESSAGE_COUNT_MAX_DEFAULT \
185 * NDDS_TRANSPORT_SHMEM_MESSAGE_SIZE_MAX_DEFAULT / 4)
191#define NDDS_TRANSPORT_SHMEM_MAJOR_BEFORE_BUG_14240_FIX (1)
196#define NDDS_TRANSPORT_SHMEM_MAJOR_AFTER_BUG_14240_FIX (2)
199#define NDDS_TRANSPORT_SHMEM_MAJOR_SPARC_SOLARIS_DEPRECATED (3)
212#define NDDS_TRANSPORT_SHMEM_MAJOR_AFTER_WRITER_COOKIE_SUPPORT (4)
218#define NDDS_TRANSPORT_SHMEM_MAJOR_AFTER_ROBUST_PTHREAD_MUTEX (5)
221#define NDDS_TRANSPORT_SHMEM_VERSION_MAJOR_DEFAULT \
222 NDDS_TRANSPORT_SHMEM_MAJOR_AFTER_BUG_14240_FIX
228#define NDDS_TRANSPORT_SHMEM_PROPERTY_DEFAULT \
231 NDDS_TRANSPORT_CLASSID_SHMEM, \
232 NDDS_TRANSPORT_SHMEM_ADDRESS_BIT_COUNT, \
233 NDDS_TRANSPORT_SHMEM_PROPERTIES_BITMAP_DEFAULT, \
234 NDDS_TRANSPORT_SHMEM_GATHER_SEND_BUFFER_COUNT_MAX_DEFAULT, \
235 NDDS_TRANSPORT_SHMEM_MESSAGE_SIZE_MAX_DEFAULT, \
244 NDDS_TRANSPORT_UUID_UNKNOWN, \
248 NDDS_TRANSPORT_LENGTH_UNLIMITED, \
250 NDDS_TRANSPORT_SHMEM_RECEIVED_MESSAGE_COUNT_MAX_DEFAULT, \
251 NDDS_TRANSPORT_SHMEM_RECEIVE_BUFFER_SIZE_DEFAULT, \
254 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 255, 1, 2 } \
262 NDDS_TRANSPORT_ADDRESS_INVALID_INITIALIZER, \
263 NDDS_TRANSPORT_SHMEM_VERSION_MAJOR_DEFAULT \
279extern NDDS_Transport_DllExport NDDS_Transport_Plugin *
280NDDS_Transport_Shmem_newI(
301#define NDDS_Transport_Shmem_new(property_in) \
302 NDDS_Transport_Shmem_newI(property_in)
313extern NDDS_Transport_DllExport
const char *
314NDDS_Transport_Shmem_get_class_name_cEA(NDDS_Transport_Plugin *self);
331extern NDDS_Transport_DllExport RTI_INT32
332NDDS_Transport_Shmem_string_to_address_cEA(
333 NDDS_Transport_Plugin *self,
335 const char *address_in);
345extern NDDS_Transport_DllExport RTI_INT32
346NDDS_Transport_Shmem_get_receive_interfaces_cEA(
347 NDDS_Transport_Plugin *self,
348 RTI_INT32 *found_more_than_provided_for_out,
349 RTI_INT32 *interface_reported_count_out,
351 RTI_INT32 interface_array_size_in);
361extern NDDS_Transport_DllExport RTIBool
362NDDS_Transport_Shmem_is_valid(NDDS_Transport_Plugin *self);
377extern NDDS_Transport_DllExport
void
378NDDS_Transport_Shmem_check_locator_reachability(
379 const NDDS_Transport_Plugin *self,
380 RTIBool *shmem_segment_exists,
381 RTIBool *is_reachable_out,
RTI_UINT32 NDDS_Transport_Port_t
Type for storing RTI Connext RTPS ports.
Definition: transport_common.h:92
NDDS_Transport_Plugin * NDDS_Transport_Shmem_new(const struct NDDS_Transport_Shmem_Property_t *property_in)
Create a new shmem process transport.
Addresses are stored individually as network-ordered bytes.
Definition: transport_common_user.h:384
Storage for the description of a network interface used by a Transport Plugin.
Definition: transport_common.h:204
Base configuration structure that must be inherited by derived Transport Plugin classes.
Definition: transport_interface_user.h:38
Subclass of NDDS_Transport_Property_t allowing specification of parameters that are specific to the s...
Definition: transport_shmem.h:39
RTI_INT32 received_message_count_max
Number of messages that can be buffered in the receive queue.
Definition: transport_shmem.h:46
RTI_INT32 receive_buffer_size
The total number of bytes that can be buffered in the receive queue.
Definition: transport_shmem.h:50
struct NDDS_Transport_Property_t parent
Generic properties of all transport plugins.
Definition: transport_shmem.h:42
RTIBool enable_udp_debugging
Enables UDP debugging when using shared memory.
Definition: transport_shmem.h:54
NDDS_Transport_Port_t udp_debugging_port
Port to which shared memory traffic will be published if NDDS_Transport_Shmem_Property_t::enable_udp_...
Definition: transport_shmem.h:62
NDDS_Transport_Address_t udp_debugging_address
IP address to which shared memory traffic will be published if NDDS_Transport_Shmem_Property_t::enabl...
Definition: transport_shmem.h:58