Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DynamicDataReader #3904

Merged
merged 28 commits into from Dec 6, 2022
Merged

DynamicDataReader #3904

merged 28 commits into from Dec 6, 2022

Conversation

mitza-oci
Copy link
Member

@mitza-oci mitza-oci commented Nov 29, 2022

DynamicDataReader is an IDL interface defined by the XTypes spec. It is implemented by the class DynamicDataReaderImpl (for now living in DynamicTypeSupport.h), which gets most of its functionality by inheritance from DataReaderImpl_T<DynamicSample>. This shares the logic of the core DataReader implementation across both static and dynamic language mappings, with small shims in the DynamicTypeSupport.h. These include some template specializations and the DynamicSample type itself, which acts as a wrapper for the DynamicData IDL interface.

- DynamicSample is used as type T
- not complete, but existing (non-dynamic) use cases should still work
…cific operations

The 3 that are "inout" may need to change later if we want the
implementation to be able to replace the caller's object
# Conflicts:
#	dds/DCPS/XTypes/DynamicTypeSupport.cpp
#	dds/DCPS/XTypes/DynamicTypeSupport.h
This required a way for the empty DynamicSample, before it has data, to
know which DynamicType it's used for.
so that it's using the same type parameter on getMetaStruct as is used for
content filters, multi-topics,e etc.

Cleaned up a few things in RakeResults_T along the way
Adapted it to allow either reader or writer (eventually both) to be dynamic.

Currently the dynamic reader test is commented-out in the test list because
it crashes during shutdown.
@mitza-oci mitza-oci marked this pull request as ready for review December 2, 2022 19:56
dds/DCPS/RakeResults_T.cpp Outdated Show resolved Hide resolved
dds/DCPS/Sample.h Outdated Show resolved Hide resolved
dds/DCPS/XTypes/DynamicTypeSupport.h Outdated Show resolved Hide resolved
dds/DCPS/XTypes/DynamicTypeSupport.h Outdated Show resolved Hide resolved
tests/DCPS/DynamicData/publisher.cpp Outdated Show resolved Hide resolved
tests/DCPS/DynamicData/publisher.cpp Show resolved Hide resolved
@mitza-oci mitza-oci merged commit ea0d6a0 into master Dec 6, 2022
@mitza-oci mitza-oci deleted the dynamic-reader branch December 6, 2022 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants