Skip to content

Plugin engine interface#4863

Open
eisenhauer wants to merge 4 commits intoornladios:masterfrom
eisenhauer:plugin-engine-interface
Open

Plugin engine interface#4863
eisenhauer wants to merge 4 commits intoornladios:masterfrom
eisenhauer:plugin-engine-interface

Conversation

@eisenhauer
Copy link
Member

@eisenhauer eisenhauer commented Feb 12, 2026

This PR builds on the previous plugin operator proposal to also encompass plugin engines. The main change is to make plugin engines use the public ADIOS APIs rather than calling into core directly. This required some minor tweaks to the bindings classes, not to change their external visibility, but to let us call them from PluginEngine (the internal bridge to actual plug-ins). This is pretty much the biggest change. The changes to the actual plugin example pretty much consist of calling adios2:: rather than core::. There was also a minor change, moving ToString(Dims) to be inline in adiosTypes.h to avoid ToString depending upon core.

Note that this PR does stop installing all of our internal #include files. I included that here to make sure everything in the build/install tests works after that is done. In practice, we maybe want to do this piece-wise, introduce the new plugin interfaces in one release, then blow away those includes in the next major release.

Also Note, this PR is on top of the unmerged operator plugin PR, so it also includes all those changes in the diff. If we merge the other PR, this will get rebased.

eisenhauer and others added 3 commits February 10, 2026 10:55
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>
…ource of truth

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@eisenhauer eisenhauer force-pushed the plugin-engine-interface branch 3 times, most recently from f2c8a0a to fa18506 Compare February 12, 2026 22:01
…tion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@eisenhauer eisenhauer force-pushed the plugin-engine-interface branch from fa18506 to 15fc7ba Compare February 13, 2026 00:30
Copy link
Contributor

@pnorbert pnorbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve this and vote for blowing away all that includes from the next release. So that we can have minor releases again.

@pnorbert
Copy link
Contributor

A caveat though, I did want to install some headers in the past so that I could use useful helper functions and kwsys functions in my apps instead of copy-pasting their implementation all the time. DimsToString is the prime example. Counting dimensions, minmax of array.

@eisenhauer
Copy link
Member Author

kwsys we probably can't do much about, though it is handy. I will suggest that moving to C++17 so that we have std::filesystem might go a long way towards replacing that. WRT DimsToString, there's no reason why simple utility functions operating on the AdiosTypes or AdiosBaseTypes shouldn't have inline definitions in the appropriate .h file.

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.

2 participants