Skip to content

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

Open
franzpoeschel wants to merge 92 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 92 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
Maybe remove DeferredInitPolicy over it
Comment thread src/CustomHierarchy.cpp Fixed
franzpoeschel and others added 8 commits August 24, 2026 15:18
* 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