7.12. Known Issues with Dynamic Data

7.12.1. Conversion of data by member-access primitives limited when converting to types that are not supported on all platforms

The conversion of data by member-access primitives (get_X() operations) is limited when converting to types that are not supported on all platforms. This limitation applies when converting to a 64-bit int64 type (get_longlong() and get_ulonglong() operations) and a 128-bit long double type (get_longdouble()). These methods will always work for data members that are actually of the correct type, but will only support conversion from values that are stored as smaller types on a subset of platforms. Conversion to 64-bit int64s from a 32-bit or smaller integer type is supported on all Windows and Linux architectures, and any additional 64-bit architectures. Conversion to 128-bit long doubles from a float or double is not supported.

[RTI Issue ID CORE-2986]

7.12.2. Types that contain bit fields not supported

Types that contain bit fields are not supported by DynamicData. Therefore, when rtiddsspy discovers any type that contains a bit field, rtiddsspy will print this message:

DDS_DynamicDataTypeSupport_initialize:type not supported (bitfield member)

[RTI Issue ID CORE-2977]

7.12.3. Long double not supported for DynamicData in Java API

The Java API does not have DynamicData APIs to handle long double fields. That is, get_longdouble and set_longdouble don’t exist. As a result, it’s not possible to work with long double fields of DynamicData samples in the Java API.

[RTI Issue ID CORE-14091]

7.12.4. Limitation for C# recursive types

Recursive types (types whose definition contains themselves at any level) are supported in the C# API. However, there is one limitation. The DynamicType property of the type support generated for a recursive IDL type (such as FooTypeSupport.Instance.DynamicType) is not available. Trying to access it will fail with NotSupportedException. This property is only needed for applications that inspect the type dynamically or create DynamicData objects. If that is required, you can define the type in XML and load it with QosProvider.GetType or in code using the DynamicTypeFactory.

[RTI Issue ID CORE-14407]