Skip to content

Commit 9b6818a

Browse files
committed
Documentation
1 parent ecd97f0 commit 9b6818a

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

include/openPMD/backend/Attributable.hpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,37 @@ class Attributable
408408
template <typename Lambda>
409409
void visitHierarchyFromLambda(Lambda &&lambda);
410410

411+
/**
412+
* Recursively freeze structural definitions made so far on the current
413+
* object and all its children.
414+
*
415+
* This includes:
416+
* 1. Explicit attribute writes
417+
* 2. Implicit attributes, i.e.: Attributes defined by the openPMD standard
418+
* will now be populated with sensible default values
419+
* 3. Dataset creation: The Dataset declarations set by resetDataset() will
420+
* now be fixed. Datasets can no longer be changed to constant components
421+
* after this.
422+
* 4. Hierarchy setup, i.e. creation of group paths.
423+
*
424+
* WARNING: this is still under development and not fully implemented yet
425+
* (implementation status: only bullet 2. from above. ref.
426+
* https://github.com/openPMD/openPMD-api/pull/1862 for the rest.)
427+
*
428+
* Uses of this include:
429+
* 1. Setting up the metadata is a collective operation in some backends
430+
* (read: HDF5). When interacting with a dataset non-collectively (e.g.
431+
* single ranks without data contribution, variable number of blocks per
432+
* rank), this call harmonizes the collective metadata setup.
433+
* 2. Forcing the creation of default attributes. By default, these are
434+
* written upon closing the containing Iteration / Series. Calling this
435+
* soon can make data available for early readers (e.g. read while the
436+
* writer is still modifying).
437+
*
438+
* Modifying the frozen structural setup is only possible insofar as the
439+
* backend supports this, e.g. by dataset extension, attribute overwrite or
440+
* group deletion.
441+
*/
411442
void commitStructuralSetup();
412443

413444
[[nodiscard]] OpenpmdStandard openPMDStandard() const;

0 commit comments

Comments
 (0)