RTI Connext Traditional C++ API  Version 6.0.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
TYPE_CONSISTENCY_ENFORCEMENT

Defines the rules for determining whether the type used to publish a given topic is consistent with that used to subscribe to it. More...

Classes

struct  DDS_TypeConsistencyEnforcementQosPolicy
 Defines the rules for determining whether the type used to publish a given topic is consistent with that used to subscribe to it. More...
 

Enumerations

enum  DDS_TypeConsistencyKind {
  DDS_DISALLOW_TYPE_COERCION,
  DDS_ALLOW_TYPE_COERCION,
  DDS_AUTO_TYPE_COERCION
}
 Kinds of type consistency. More...
 

Variables

const char *const DDS_TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_NAME
 Stringified human-readable name for DDS_TypeConsistencyEnforcementQosPolicy.
 

Detailed Description

Defines the rules for determining whether the type used to publish a given topic is consistent with that used to subscribe to it.

Enumeration Type Documentation

Kinds of type consistency.

QoS:
DDS_TypeConsistencyEnforcementQosPolicy
Enumerator:
DDS_DISALLOW_TYPE_COERCION 

The DataWriter and the DataReader must support the same data type in order for them to communicate.

This is the degree of type consistency enforcement required by the OMG DDS Specification prior to the OMG Extensible and Dynamic Topic Types for DDS Specification.

DDS_ALLOW_TYPE_COERCION 

The DataWriter and the DataReader need not support the same data type in order for them to communicate as long as the DataReader's type is assignable from the DataWriter's type.

For example, the following two extensible types will be assignable to each other since MyDerivedType contains all the members of MyBaseType (member_1) plus some additional elements (member_2).

struct MyBaseType {
long member_1;
};
struct MyDerivedType: MyBaseType {
long member_2;
};

Even if MyDerivedType was not explicitly inheriting from MyBaseType the types would still be assignable. For example:

struct MyBaseType {
long member_1;
};
struct MyDerivedType {
long member_1;
long member_2;
};

For additional information on type assignability refer to the OMG Extensible and Dynamic Topic Types for DDS Specification.

DDS_AUTO_TYPE_COERCION 

This AUTO value will be applied as DDS_DISALLOW_TYPE_COERCION when the data type is annotated with @transfer_mode(SHMEM_REF) while using C, Traditional C++, or Modern C++ APIs. In all other cases, this AUTO value will be applied as DDS_ALLOW_TYPE_COERCION.

[default]

Variable Documentation

const char* const DDS_TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_NAME

Stringified human-readable name for DDS_TypeConsistencyEnforcementQosPolicy.


RTI Connext Traditional C++ API Version 6.0.1 Copyright © Sat Nov 23 2019 Real-Time Innovations, Inc