Skip to content

Custom hierarchies – other API concept, for now without extended meshes and particles path - #1881

Open
franzpoeschel wants to merge 94 commits into
openPMD:devfrom
franzpoeschel:custom-hierarchies
Open

Custom hierarchies – other API concept, for now without extended meshes and particles path #1881
franzpoeschel wants to merge 94 commits into
openPMD:devfrom
franzpoeschel:custom-hierarchies

Conversation

@franzpoeschel

@franzpoeschel franzpoeschel commented May 19, 2026

Copy link
Copy Markdown
Contributor

tbd

TODO:

Diff: franzpoeschel/openPMD-api@fix-parallel-hdf5...custom-hierarchies

@franzpoeschel franzpoeschel added the api: new additions to the API label May 19, 2026
}
} // namespace

std::future<void> AbstractIOHandlerImpl::flush(FlushLevel l)
Comment thread test/ParallelIOTest.cpp Outdated
Comment thread test/ParallelIOTest.cpp Outdated
Comment thread src/CustomHierarchy.cpp
// method might be called as const. shared_ptr<>s implement interior
// mutability, so use that here.

// auto &container_front = container.container_front();
{
setDirty(false);
}
// customHierarchies().printRecursively();
std::to_string(count_of_erased_elements) + " instead.");
}

// std::cout << "REWIRED '" << myPath().openPMDPath() << "'." << std::endl;
if (res.first->first == RecordComponent::SCALAR)
{
this->container().erase(res.first);
// this->container().erase(res.first);
Comment thread test/CoreTest.cpp Fixed
Comment thread test/CoreTest.cpp
read_nonexistent_attribute::read_nonexistent_attribute();
}

TEST_CASE("custom_hierarchy", "[core]")
@franzpoeschel
franzpoeschel force-pushed the custom-hierarchies branch 3 times, most recently from 036bd34 to 96307f3 Compare May 20, 2026 12:27
Comment thread test/ParallelIOTest.cpp
#endif
}

TEST_CASE("append_mode", "[serial]")
Comment thread test/ParallelIOTest.cpp
#endif
}

TEST_CASE("append_mode", "[serial]")
@franzpoeschel
franzpoeschel force-pushed the custom-hierarchies branch 2 times, most recently from 9584ceb to 855ff65 Compare July 20, 2026 13:11
Comment thread src/CustomHierarchy.cpp Fixed
Comment thread src/CustomHierarchy.cpp Fixed

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

franzpoeschel and others added 29 commits August 27, 2026 12:07
Maybe remove DeferredInitPolicy over it
* Export new visitHierarchy virtuals from DLL

The CoreTests link failed on Windows for the virtual functions introduced by the custom-hierarchies refactor (Attributable/Series/CustomHierarchy::visitHierarchyImpl and Container<...>::flush). Mark them OPENPMDAPI_EXPORT and dllexport the explicit Container instantiations so they are exported from openPMD.dll independent of CMake's WINDOWS_EXPORT_ALL_SYMBOLS (.def) generation, which missed them.

* Make Container::flush non-virtual

Container<T,T_key,T_container>::flush is only ever called on concrete container types inside the library, never through a Container base pointer/reference. Removing virtual dispatch means the container vtables no longer reference flush, which eliminates the remaining Windows DLL-export requirements for the new CoreTests custom_hierarchy binary. Keep the derived flush() members (BaseRecord, ParticleSpecies, CustomHierarchy) as plain member functions.

* Revert Container.cpp changes

---------

Co-authored-by: Blablador <noreply@blablador.localhost>
needed for attributes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: new additions to the API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants