Decouple plugin operator interface from ADIOS internals#4854
Decouple plugin operator interface from ADIOS internals#4854eisenhauer wants to merge 3 commits intoornladios:masterfrom
Conversation
Extract DataType, Dims, Params, Accuracy into ADIOSBaseTypes.h as a self-contained header with no internal dependencies. Rewrite PluginOperatorInterface as a standalone abstract class (no core::Operator inheritance) so external plugin operators need only include a single header and no longer link against adios2_core. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
b118867 to
1973ef4
Compare
pnorbert
left a comment
There was a problem hiding this comment.
I approve it already but maybe the GetTotalSize and DataTypeSize could go into that single exported header.
Yeah, the easy thing is to put them as inline functions in the new BaseTypes header. Then the choice is to either 1) just change the bodies of those functions in helper so that they use the new version (least code disruption), or 2) kill those functions in helper and then modify everywhere they are called to remove the helper:: prefix (if there wasn't a use statement that made it unnecessary). Honestly, the latter seemed like the right approach, but I wasn't sure I wanted to touch all those files in this PR. But we've probably got time to decide, Caitlin is the code owner, so no merging until she has a look. So what's your preference? And do it here or another PR? |
|
Either way is fine with me. |
…ource of truth Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OK, I've de-dup'd. |
Extract DataType, Dims, Params, Accuracy into ADIOSBaseTypes.h as a self-contained header with no internal dependencies. Rewrite PluginOperatorInterface as a standalone abstract class (no core::Operator inheritance) so external plugin operators need only include a single header and no longer link against adios2_core.
This is a first step to not exporting all of our internal .h files for the sake of plugins. Fixing the plugin engine interface will be much harder.
I'm not wildly happy about the duplication of DataTypeSize and GetTotalSize here, but moving those functions out of helper while still making sure that plug-in operators don't link against adios_core is a little more involved. For the moment this seemed like an easy solution that can be cleaned up later if desired.