-
Key: DDSXTY14-111
-
Status: open Implementation work Blocked
-
Source: Object Computing, Inc. - OCI ( Mr. Adam Mitz)
-
Summary:
The current spec tells us (last paragraph of 7.6.1):
Generic services (e.g., logger, monitor) may discover a topic associated with one or more types. Such services may be able to handle all representations of the types, without ever having type specific knowledge hard-coded into them.
This paragraph leaves the reader wondering how to do so, and it seems like the answer would be found in 7.6.6 "Use of Dynamic Data and Dynamic Type." But there are limitations with the current DynamicTypeSupport as defined by 7.6.6 that makes this either difficult or impossible.
The scenario described by 7.6.1, in the general case, is that a Topic is in use in a Domain by an arbitrary collection of DataReaders and DataWriters. Since we are only concerned with receiving data (for now) in a logger/monitor application, we'll consider the existing DataWriters. Each of these DataWriters may have a different type. The goal of our logger/monitor is to receive data from all of them.
In the simple case of only one writer, the logger/monitor can get its type from Built-In Topics and create a DynamicTypeSupport for this type. Then create a DataReader based on this type support, which of course will use DynamicData as its data sample type.
But in the case of multiple writers, there is no straightforward way to create a DataReader that can receive data samples from all writers. Creating multiple DataReaders isn't an attractive solution because it complicates the application code and it could lead to scenarios where the same data is received via multiple readers.
It seems like what's needed is an AnyTypeSupport object with a similar role as DynamicTypeSupport's but without the need to provide it an immutable DynamicType on creation. Only DataReaders (no DataWriters) could be created using AnyTypeSupport. Its data sample type would also be DynamicData (and all DynamicData instances already carry with them a reference to their DynamicType). Its TypeIdentifier would be TK_NONE or a new constant designated for this purpose. All actual types written by DataWriters would be assignable to TK_NONE (it passes type compatibility checking trivially).
-
Reported: DDS-XTypes 1.3 — Thu, 28 Aug 2025 19:26 GMT
-
Updated: Thu, 28 Aug 2025 19:36 GMT
DDSXTY14 — Add API for truely dynamically-typed Data Readers
- Key: DDSXTY14-111
- OMG Task Force: DDS Extensible Types (DDS-XTYPES) 1.4 RTF