TCP Transport Plugin API

TCP Transport Plugin interfaces and definitions. More...

Data Structures

struct  NDDS_Transport_TCPv4_Property_t
 Configurable TCP Transport-Plugin properties. More...

Defines

#define NDDS_TRANSPORT_CLASSNAME_TCPV4_LAN   "tcpv4_lan"
 IPv4 TCP/IP Transport-Plugin class name for LAN case.
#define NDDS_TRANSPORT_CLASSNAME_TCPV4_WAN   "tcpv4_wan"
 IPv4 TCP/IP Transport-Plugin class name for WAN case.
#define NDDS_TRANSPORT_TCPV4_DEFAULT_PORT_NUMBER   7400
 The default value for the server bind port.
#define NDDS_TRANSPORT_TCPV4_MESSAGE_SIZE_MAX_DEFAULT   (9216)
 Default value of maximum message size.
#define NDDS_TRANSPORT_TCPV4_SOCKET_BUFFER_SIZE_OS_DEFAULT   (-1)
 Used to specify that os default should be used for the socket buffer size.
#define NDDS_TRANSPORT_TCPV4_SERVER_SOCKET_BACKLOG_DEFAULT   (5)
 The max number of pending connections waiting for the control thread to accept them.
#define NDDS_TRANSPORT_TCPV4_ADDRESS_BIT_COUNT   (64)
 Number of signficant bits of 16-byte address.
#define NDDS_TRANSPORT_TCPV4_READ_BUFFER_POOL_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT
 The default settings for the buffer pool used to provide memory for the received messages.
#define NDDS_TRANSPORT_TCPV4_WRITE_BUFFER_POOL_GROWTH_POLICY_DEFAULT   { 4L, 1000L, 10L}
 The default settings for the buffer used to provide memory for the bytes being written using asynchronous send.
#define NDDS_TRANSPORT_TCPV4_CONTROL_BUFFER_POOL_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT
 The default settings for the buffer pool used to provide memory for the control messages read or written.
#define NDDS_TRANSPORT_TCPV4_CONTROL_MESSAGE_FACTORY_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT
 The default settings for the buffer used to provide memory for the control message factory.
#define NDDS_TRANSPORT_TCPV4_CONTROL_MESSAGE_ATTRIBUTE_FACTORY_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT
 The default settings for the buffer used to provide memory for the control message attribute factory.
#define NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT_LAN
 Use this to initialize a NDDS_Transport_TCPv4_Property_t structure for LAN communication.
#define NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT   NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT_LAN
 Use this to initialize a NDDS_Transport_TCPv4_Property_t structure.
#define NDDS_TRANSPORT_TCPV4_ADDRESS_LOCALHOST   {{0,0,0,0, 0,0,0,0, 0xff,0xff, 0x1c, 0xe8, 127,0,0,1}}
 The definition of localhost for the TCP transport: 127.0.0.1:7400.

Typedefs

typedef void(* NDDS_Transport_TCPv4_OnConnectionEstablishedCallback )(RTI_UINT32 remote_peer_addresss, RTI_UINT16 remote_peer_port)
 Prototype of the function that can be called when a new connection is successfully established with a remote peer.
typedef void(* NDDS_Transport_TCPv4_OnConnectionLostCallback )(RTI_UINT32 remote_peer_addresss, RTI_UINT16 remote_peer_port, NDDS_Transport_TCPv4_OnConnectionLost_ReasonCode_t reason)
 Prototype of the function that can be called when an existing connection is lost.

Enumerations

enum  NDDS_Transport_TCPv4_OnConnectionLost_ReasonCode_t {
  NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_UNKNOWN = 0,
  NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_CODE_FINALIZED,
  NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_CODE_BROKEN_PIPE,
  NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_DESTROYED
}
 A set of possible reasons why a connection is lost. More...

Functions

NDDS_Transport_Plugin * NDDS_Transport_TCPv4_new (const struct NDDS_Transport_TCPv4_Property_t *property_in)
 Creates an instance of the TCP transport plugin and initializes it from the specified TCP transport property structure.
NDDS_Transport_Plugin * NDDS_Transport_TCPv4_create (NDDS_Transport_Address_t *default_network_address_out, const struct DDS_PropertyQosPolicy *property_in)
 Creates an instance of a TCP Transport Plugin, using PropertyQosPolicy.
RTIBool NDDS_Transport_TCPv4_Plugin_stringToTransportAddress (NDDS_Transport_Address_t *address_out, const char *address_in, RTIBool acceptHostName_in)
 Converts a string into a transport address suitable to be used with the TCP transport.

Detailed Description

TCP Transport Plugin interfaces and definitions.


Define Documentation

#define NDDS_TRANSPORT_CLASSNAME_TCPV4_LAN   "tcpv4_lan"

IPv4 TCP/IP Transport-Plugin class name for LAN case.

#define NDDS_TRANSPORT_CLASSNAME_TCPV4_WAN   "tcpv4_wan"

IPv4 TCP/IP Transport-Plugin class name for WAN case.

#define NDDS_TRANSPORT_TCPV4_DEFAULT_PORT_NUMBER   7400

The default value for the server bind port.

#define NDDS_TRANSPORT_TCPV4_MESSAGE_SIZE_MAX_DEFAULT   (9216)

Default value of maximum message size.

#define NDDS_TRANSPORT_TCPV4_SOCKET_BUFFER_SIZE_OS_DEFAULT   (-1)

Used to specify that os default should be used for the socket buffer size.

#define NDDS_TRANSPORT_TCPV4_SERVER_SOCKET_BACKLOG_DEFAULT   (5)

The max number of pending connections waiting for the control thread to accept them.

#define NDDS_TRANSPORT_TCPV4_ADDRESS_BIT_COUNT   (64)

Number of signficant bits of 16-byte address.

#define NDDS_TRANSPORT_TCPV4_READ_BUFFER_POOL_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT

The default settings for the buffer pool used to provide memory for the received messages.

#define NDDS_TRANSPORT_TCPV4_WRITE_BUFFER_POOL_GROWTH_POLICY_DEFAULT   { 4L, 1000L, 10L}

The default settings for the buffer used to provide memory for the bytes being written using asynchronous send.

#define NDDS_TRANSPORT_TCPV4_CONTROL_BUFFER_POOL_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT

The default settings for the buffer pool used to provide memory for the control messages read or written.

#define NDDS_TRANSPORT_TCPV4_CONTROL_MESSAGE_FACTORY_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT

The default settings for the buffer used to provide memory for the control message factory.

#define NDDS_TRANSPORT_TCPV4_CONTROL_MESSAGE_ATTRIBUTE_FACTORY_GROWTH_POLICY_DEFAULT   NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT

The default settings for the buffer used to provide memory for the control message attribute factory.

#define NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT_LAN

Value:

{ \
 { /* parent */ \
   NDDS_TRANSPORT_CLASSID_TCPV4_LAN, /* classid */ \
   NDDS_TRANSPORT_TCPV4_ADDRESS_BIT_COUNT, /* address_bit_count */ \
   NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED, /* properties_bitmap */ \
   128, /* gather_send_buffer_count_max */ \
   NDDS_TRANSPORT_TCPV4_MESSAGE_SIZE_MAX_DEFAULT, /* message_size_max */ \
   NULL, /* allow_interfaces_list */ \
   0,    /* allow_interfaces_list_length */ \
   NULL, /* deny_interfaces_list */ \
   0,    /* deny_interfaces_list_length;*/ \
   NULL, /* allow_multicast_interfaces_list */ \
   0,    /* allow_multicast_interfaces_list_length */ \
   NULL, /* deny_multicast_interfaces_list */ \
   0     /* deny_multicast_interfaces_list_length */ \
 }, \
 NDDS_TRANSPORT_TCPV4_SOCKET_BUFFER_SIZE_OS_DEFAULT, /* send_socket_buffer_size */ \
 NDDS_TRANSPORT_TCPV4_SOCKET_BUFFER_SIZE_OS_DEFAULT, /* recv_socket_buffer_size */ \
 1, /* ignore_loopback_interface */ \
 1, /* ignore_nonrunning_interfaces */ \
 0, 0, 0xffL,    /* transport priority mapping */ \
 NDDS_TRANSPORT_TCPV4_TRANSPORT_MODE_SYMMETRIC, /* transport_mode (deprecated) */ \
 NDDS_TRANSPORT_TCPV4_SERVER_SOCKET_BACKLOG_DEFAULT, /* server_socket_backlog */   \
 NDDS_TRANSPORT_ADDRESS_INVALID, /* public_address */ \
 NULL, /* bind_interface_address */ \
 NDDS_TRANSPORT_TCPV4_DEFAULT_PORT_NUMBER, /*server_bind_port */ \
 NDDS_TRANSPORT_TCPV4_READ_BUFFER_POOL_GROWTH_POLICY_DEFAULT, /* read_buffer_allocation */          \
 NDDS_TRANSPORT_TCPV4_WRITE_BUFFER_POOL_GROWTH_POLICY_DEFAULT, /* write_buffer_allocation */ \
 NDDS_TRANSPORT_TCPV4_CONTROL_BUFFER_POOL_GROWTH_POLICY_DEFAULT, /* control_buffer_allocation */      \
 NDDS_TRANSPORT_TCPV4_CONTROL_MESSAGE_FACTORY_GROWTH_POLICY_DEFAULT, /* control_message_allocation */ \
 NDDS_TRANSPORT_TCPV4_CONTROL_MESSAGE_ATTRIBUTE_FACTORY_GROWTH_POLICY_DEFAULT, /* control_attribute_allocation */ \
 0, /* force_asynchronous_send */ \
 NULL,  /* on_connection_established */ \
 NULL,  /* on_connection_lost */ \
 -1L, /* max_packet_size */ \
 0, /* enable_keep_alive */ \
 -1L, /* keep_alive_time */ \
 -1L, /* keep_alive_internal */ \
 -1L, /* keep_alive_retry_count */ \
 0, /* disable_nagle */ \
 -1L, /* logging_verbosity_bitmap */ \
 1, /* use_windows_select */ \
 100, /* outstanding_connection_cookies */ \
 -1L, /* outstanding_connection_cookies_life_span */ \
 3,   /* send_max_wait_sec */ \
 RTITLS_OPENSSL_CONFIGURATION_DEFAULT /* tls */ \
}
Use this to initialize a NDDS_Transport_TCPv4_Property_t structure for LAN communication.

#define NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT   NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT_LAN

Use this to initialize a NDDS_Transport_TCPv4_Property_t structure.

#define NDDS_TRANSPORT_TCPV4_ADDRESS_LOCALHOST   {{0,0,0,0, 0,0,0,0, 0xff,0xff, 0x1c, 0xe8, 127,0,0,1}}

The definition of localhost for the TCP transport: 127.0.0.1:7400.


Typedef Documentation

typedef void(* NDDS_Transport_TCPv4_OnConnectionEstablishedCallback)(RTI_UINT32 remote_peer_addresss, RTI_UINT16 remote_peer_port)

Prototype of the function that can be called when a new connection is successfully established with a remote peer.

Parameters:
remote_peer_addresss the address of the remote peer connected encoded as network-ordered IPv4 address.
remote_peer_port the port number of the remote connection encoded as network-ordered 16-bit value

typedef void(* NDDS_Transport_TCPv4_OnConnectionLostCallback)(RTI_UINT32 remote_peer_addresss, RTI_UINT16 remote_peer_port, NDDS_Transport_TCPv4_OnConnectionLost_ReasonCode_t reason)

Prototype of the function that can be called when an existing connection is lost.

This method is always called after the on_connection_established is called.

It is also called if a sendresource or recvresource is destroyed (after closing the existing connections), and on shutdown

Parameters:
remote_peer_addresss the address of the remote peer connected encoded as network-ordered IPv4 address.
remote_peer_port the port number of the remote connection encoded as network-ordered 16-bit value
reason an enumeration that describes the reason of the disconnection


Enumeration Type Documentation

A set of possible reasons why a connection is lost.

See also:
NDDS_Transport_TCPv4_OnConnectionLostCallback
Enumerator:
NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_UNKNOWN  The reason why the connection was closed is not known
NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_CODE_FINALIZED  Server side: connection closed by remote client. Client side: the internal send resource was destroyed.
NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_CODE_BROKEN_PIPE  Describes a condition where the remote peer has ungracefully closed the connection (app was crashed or suddenly interrupted)
NDDS_TRANSPORT_TCPV4_ON_CONNECTION_LOST_REASON_DESTROYED  Describes a condition where the current node has decided to close the connection.


Function Documentation

NDDS_Transport_Plugin* NDDS_Transport_TCPv4_new ( const struct NDDS_Transport_TCPv4_Property_t property_in  ) 

Creates an instance of the TCP transport plugin and initializes it from the specified TCP transport property structure.

This is the main initializer of the TCP transport plugin. To use the default settings, pass a pointer to a struct NDDS_Transport_TCPv4_Property_t initialized with the macro NDDS_TRANSPORT_TCPV4_PROPERTY_DEFAULT.

Parameters:
property_in <<in>> A pointer to a struct NDDS_Transport_TCPv4_Property_t containing the transport property. The plugin will make a copy of this structure before returning (caller can safely destroy the object).
Returns:
A pointer to a newly instantiated plugin or NULL if an error occurred during creation.

NDDS_Transport_Plugin* NDDS_Transport_TCPv4_create ( NDDS_Transport_Address_t default_network_address_out,
const struct DDS_PropertyQosPolicy property_in 
)

Creates an instance of a TCP Transport Plugin, using PropertyQosPolicy.

For all the properties that are not specified, the default value is assumed (as described in Configure TCP Transport with Property QoS Policy).

Parameters:
default_network_address_out <<out>> Unused parameter
property_in <<in>> The DDS_PropertyQoSPolicy object containing the transport properties.
Returns:
A pointer to a newly instantiated plugin or NULL if an error occurred during creation.

RTIBool NDDS_Transport_TCPv4_Plugin_stringToTransportAddress ( NDDS_Transport_Address_t address_out,
const char *  address_in,
RTIBool  acceptHostName_in 
)

Converts a string into a transport address suitable to be used with the TCP transport.

This method will convert a string in the form host:port into a NDDS_Transport_Address_t structure.

If the 'port' component is not specified, it will assign the default value as described by the constant NDDS_TRANSPORT_TCPV4_DEFAULT_PORT_NUMBER.

Parameters:
address_out <<out>> Transport address to initialize
address_in <<in>> the NULL-terminated string containing the address to parse
acceptHostName_in <<in>> Set it to RTI_TRUE to allow this function to resolve the host component of the string address through a DNS lookup; set it to RTI_FALSE to allow only IPv4 addresses in the 'host' part of the address string.
Returns:
RTI_TRUE if success or RTI_FALSE if an error occurred during the conversion.


RTI TCP Transport Version 4.5e Copyright © 23 Oct 2011 Real-Time Innovations, Inc