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

Adjust DefineStruct bindings #3414

Merged
merged 1 commit into from Dec 20, 2022
Merged

Conversation

eisenhauer
Copy link
Member

Essentially this PR:

  1. Moves DefineStruct from the ADIOS to the IO class in the bindings, but maintains the ADIOS as the owner of the object (to facilitate using StructDefinitions in multiple IOs.)
  2. Eliminates InquireStruct (lookup struct definition by name) from the external bindings as unnecessary. (Still in core, at least for now.)
  3. Eliminates the StructDefinitions() method in favor of direct internal access to the map m_StructDefinitions().

What is not done here is to change anything other than the C++ bindings. When the Struct bindings are finalized in C++, C bindings at least should follow. We also need to see if we can support Fortran derived types and numpy structured arrays.

Having DefineStruct in the ADIOS was likely motivated by the idea that a struct definition is like a typedef, something that is hardcoded into an application, known to be fixed at compile-time, maybe has a simple name that's unique across the entire source code, etc. Assumptions like these easily accommodate simple producer/consumer situations where all parties have full a priori knowledge of the data being exchanged, but they are insufficient to support ADIOS' goals of discovery and introspection. This is a step towards those goals for the struct interface.

@eisenhauer eisenhauer merged commit c8f22ce into ornladios:master Dec 20, 2022
@eisenhauer eisenhauer deleted the Struct branch December 20, 2022 21:36
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

2 participants