OpenDDS  Snapshot(2023/04/28-20:55)
Namespaces | Macros | Typedefs | Enumerations | Variables
TransportDefs.h File Reference
#include "TransportDebug.h"
#include "dds/DCPS/Cached_Allocator_With_Overflow_T.h"
#include "dds/DCPS/Definitions.h"
#include "dds/DCPS/PoolAllocator.h"
#include "dds/DCPS/debug.h"
#include "dds/DCPS/Util.h"
#include <dds/DdsDcpsGuidC.h>
#include <dds/DdsDcpsInfrastructureC.h>
#include <ace/INET_Addr.h>
#include <ace/Basic_Types.h>
#include <ace/CDR_Base.h>
#include <ace/Synch_Traits.h>
Include dependency graph for TransportDefs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 OpenDDS
 The Internal API and Implementation of OpenDDS.
 
 OpenDDS::DCPS
 

Macros

#define RECEIVE_SYNCH   ACE_SYNCH_MUTEX
 
#define GET_CONFIG_VALUE(CF, SECT, KEY, VALUE, TYPE)
 
#define GET_CONFIG_STRING_VALUE(CF, SECT, KEY, VALUE)
 
#define GET_CONFIG_TSTRING_VALUE(CF, SECT, KEY, VALUE)
 
#define GET_CONFIG_DOUBLE_VALUE(CF, SECT, KEY, VALUE)
 
#define GET_CONFIG_TIME_VALUE(CF, SECT, KEY, VALUE)
 

Typedefs

typedef ACE_UINT64 OpenDDS::DCPS::DataLinkIdType
 Identifier type for DataLink objects. More...
 
typedef Cached_Allocator_With_Overflow< ACE_Message_Block, RECEIVE_SYNCHOpenDDS::DCPS::TransportMessageBlockAllocator
 
typedef Cached_Allocator_With_Overflow< ACE_Data_Block, RECEIVE_SYNCHOpenDDS::DCPS::TransportDataBlockAllocator
 
typedef Cached_Allocator_With_Overflow< char[RECEIVE_DATA_BUFFER_SIZE], RECEIVE_SYNCHOpenDDS::DCPS::TransportDataAllocator
 
typedef ACE_CDR::Long OpenDDS::DCPS::Priority
 
typedef size_t OpenDDS::DCPS::ConnectionInfoFlags
 

Enumerations

enum  OpenDDS::DCPS::SendControlStatus { OpenDDS::DCPS::SEND_CONTROL_ERROR, OpenDDS::DCPS::SEND_CONTROL_OK }
 Return code type for send_control() operations. More...
 
enum  OpenDDS::DCPS::AttachStatus { OpenDDS::DCPS::ATTACH_BAD_TRANSPORT, OpenDDS::DCPS::ATTACH_ERROR, OpenDDS::DCPS::ATTACH_INCOMPATIBLE_QOS, OpenDDS::DCPS::ATTACH_OK }
 Return code type for attach_transport() operations. More...
 
enum  { OpenDDS::DCPS::MAX_SEND_BLOCKS = 50 }
 Controls the maximum size of the iovec array used for a send packet. More...
 
enum  { OpenDDS::DCPS::RECEIVE_DATA_BUFFER_SIZE = 65536 }
 Allocators used for transport receiving logic. More...
 
enum  { OpenDDS::DCPS::DEFAULT_TRANSPORT_RECEIVE_BUFFERS = 16 }
 
enum  {
  OpenDDS::DCPS::DEFAULT_CONFIG_QUEUE_MESSAGES_PER_POOL = 10, OpenDDS::DCPS::DEFAULT_CONFIG_QUEUE_INITIAL_POOLS = 5, OpenDDS::DCPS::DEFAULT_CONFIG_MAX_PACKET_SIZE = 2147481599, OpenDDS::DCPS::DEFAULT_CONFIG_MAX_SAMPLES_PER_PACKET = 10,
  OpenDDS::DCPS::DEFAULT_CONFIG_OPTIMUM_PACKET_SIZE = 4096
}
 Default TransportInst settings. More...
 
enum  OpenDDS::DCPS::RemoveResult { OpenDDS::DCPS::REMOVE_ERROR, OpenDDS::DCPS::REMOVE_NOT_FOUND, OpenDDS::DCPS::REMOVE_FOUND, OpenDDS::DCPS::REMOVE_RELEASED }
 used by DataLink::remove_sample(), TransportSendStrategy, *RemoveVisitor More...
 

Variables

static const ACE_TCHAR OpenDDS::DCPS::TRANSPORT_SECTION_NAME [] = ACE_TEXT("transport")
 
static const ACE_TCHAR OpenDDS::DCPS::TRANSPORT_TEMPLATE_SECTION_NAME [] = ACE_TEXT("transport_template")
 
static const ACE_TCHAR OpenDDS::DCPS::CONFIG_SECTION_NAME [] = ACE_TEXT("config")
 
static const ACE_TCHAR OpenDDS::DCPS::CUSTOMIZATION_SECTION_NAME [] = ACE_TEXT("Customization")
 
static const ConnectionInfoFlags OpenDDS::DCPS::CONNINFO_UNICAST = (1 << 0)
 
static const ConnectionInfoFlags OpenDDS::DCPS::CONNINFO_MULTICAST = (1 << 1)
 
static const ConnectionInfoFlags OpenDDS::DCPS::CONNINFO_ALL = static_cast<ConnectionInfoFlags>(-1)
 

Macro Definition Documentation

◆ GET_CONFIG_DOUBLE_VALUE

#define GET_CONFIG_DOUBLE_VALUE (   CF,
  SECT,
  KEY,
  VALUE 
)
Value:
{ \
ACE_TString stringvalue; \
if (CF.get_string_value (SECT, KEY, stringvalue) == -1) \
{ \
{ \
ACE_DEBUG ((LM_NOTICE, \
ACE_TEXT ("(%P|%t) NOTICE: \"%s\" is not defined in config ") \
ACE_TEXT ("file - using code default.\n"), \
KEY)); \
} \
} \
else if (stringvalue == ACE_TEXT("")) \
{ \
{ \
ACE_DEBUG ((LM_WARNING, \
ACE_TEXT ("(%P|%t) WARNING: \"%s\" is defined in config ") \
ACE_TEXT ("file, but is missing value - using code default.\n"), \
KEY)); \
} \
} \
else \
{ \
VALUE = ACE_OS::strtod (stringvalue.c_str(), 0); \
} \
}
OpenDDS_Dcps_Export unsigned int Transport_debug_level
Transport Logging verbosity level.
Definition: debug.cpp:25
ACE_TEXT("TCP_Factory")
double strtod(const char *s, char **endptr)

Definition at line 141 of file TransportDefs.h.

Referenced by OpenDDS::DCPS::TcpInst::load().

◆ GET_CONFIG_STRING_VALUE

#define GET_CONFIG_STRING_VALUE (   CF,
  SECT,
  KEY,
  VALUE 
)

◆ GET_CONFIG_TIME_VALUE

#define GET_CONFIG_TIME_VALUE (   CF,
  SECT,
  KEY,
  VALUE 
)
Value:
{ \
long tv = -1; \
GET_CONFIG_VALUE(CF, SECT, KEY, tv, long); \
if (tv != -1) VALUE = TimeDuration::from_msec(tv); \
}

Macro to get the individual configuration value from ACE_Configuration_Heap as TimeDuration using milliseconds.

Definition at line 173 of file TransportDefs.h.

Referenced by OpenDDS::DCPS::ShmemInst::load(), OpenDDS::DCPS::RtpsUdpInst::load(), OpenDDS::DCPS::TransportInst::load(), and OpenDDS::DCPS::MulticastInst::load().

◆ GET_CONFIG_TSTRING_VALUE

#define GET_CONFIG_TSTRING_VALUE (   CF,
  SECT,
  KEY,
  VALUE 
)
Value:
{ \
ACE_TString stringvalue; \
if (CF.get_string_value (SECT, KEY, stringvalue) == -1) \
{ \
{ \
ACE_DEBUG ((LM_NOTICE, \
ACE_TEXT ("(%P|%t) NOTICE: \"%s\" is not defined in config ") \
ACE_TEXT ("file - using code default.\n"), \
KEY)); \
} \
} \
else if (stringvalue == ACE_TEXT("")) \
{ \
{ \
ACE_DEBUG ((LM_WARNING, \
ACE_TEXT ("(%P|%t) WARNING: \"%s\" is defined in config ") \
ACE_TEXT ("file, but is missing value - using code default.\n"), \
KEY)); \
} \
} \
else \
{ \
VALUE = stringvalue; \
} \
}
OpenDDS_Dcps_Export unsigned int Transport_debug_level
Transport Logging verbosity level.
Definition: debug.cpp:25
ACE_TEXT("TCP_Factory")

Definition at line 112 of file TransportDefs.h.

Referenced by OpenDDS::DCPS::UdpInst::load(), OpenDDS::DCPS::RtpsUdpInst::load(), OpenDDS::DCPS::MulticastInst::load(), and OpenDDS::DCPS::Service_Participant::load_common_configuration().

◆ GET_CONFIG_VALUE

#define GET_CONFIG_VALUE (   CF,
  SECT,
  KEY,
  VALUE,
  TYPE 
)
Value:
{ \
ACE_TString stringvalue; \
if (CF.get_string_value (SECT, KEY, stringvalue) == -1) \
{ \
{ \
ACE_DEBUG ((LM_NOTICE, \
ACE_TEXT ("(%P|%t) NOTICE: \"%s\" is not defined in config ")\
ACE_TEXT ("file - using code default.\n"), \
KEY)); \
} \
} \
else if (stringvalue == ACE_TEXT("")) \
{ \
{ \
ACE_DEBUG ((LM_WARNING, \
ACE_TEXT ("(%P|%t) WARNING: \"%s\" is defined in config ") \
ACE_TEXT ("file, but is missing value - using code default.\n"), \
KEY)); \
} \
} \
else \
{ \
VALUE = static_cast<TYPE>(ACE_OS::atoi (stringvalue.c_str())); \
} \
}
OpenDDS_Dcps_Export unsigned int Transport_debug_level
Transport Logging verbosity level.
Definition: debug.cpp:25
ACE_TEXT("TCP_Factory")
int atoi(const char *s)

Macro to get the individual configuration value from ACE_Configuration_Heap and cast to the specific type from integer.

Definition at line 45 of file TransportDefs.h.

Referenced by OpenDDS::DCPS::ShmemInst::load(), OpenDDS::DCPS::UdpInst::load(), OpenDDS::DCPS::TcpInst::load(), OpenDDS::DCPS::RtpsUdpInst::load(), OpenDDS::DCPS::TransportInst::load(), OpenDDS::DCPS::MulticastInst::load(), and OpenDDS::DCPS::Service_Participant::load_common_configuration().

◆ RECEIVE_SYNCH

#define RECEIVE_SYNCH   ACE_SYNCH_MUTEX

Guard the allocations for the underlying memory management of the receive processing with the following:

Notice that even we have only one thread for receiving per transport, the underly message blocks would interact with the threads from EndHistoricSamplesMissedSweeper which are different from the receiving threads. Therefore, we cannot use ACE_SYNCH_NULL_MUTEX here.

Definition at line 40 of file TransportDefs.h.