23 #include "openPMD/IO/AbstractIOHandler.hpp"
30 #ifndef OPENPMD_private
31 #define OPENPMD_private private:
40 class AbstractFilePosition;
41 class AbstractIOHandler;
42 struct ADIOS2FilePosition;
43 template <
typename FilePositionType>
44 class AbstractIOHandlerImplCommon;
51 class SharedAttributableData;
52 class AttributableData;
62 void printDirty(Series
const &);
81 template <
typename T_elem>
83 template <
typename T_elem>
84 friend class BaseRecordInterface;
85 template <
typename T,
typename T_key,
typename T_container>
101 friend struct test::TestHelper;
102 friend std::string concrete_h5_file_position(
Writable *);
103 friend std::string concrete_bp1_file_position(
Writable *);
106 friend void debug::printDirty(
Series const &);
107 friend struct Parameter<Operation::CREATE_DATASET>;
108 friend struct
Parameter<Operation::OPEN_DATASET>;
111 Writable(internal::AttributableData *);
116 Writable(Writable const &other) = delete;
117 Writable(Writable &&other) = delete;
118 Writable &operator=(Writable const &other) = delete;
119 Writable &operator=(Writable &&other) = delete;
128 template <bool flush_entire_series>
129 void
seriesFlush(std::string backendConfig = "{}");
135 template <bool flush_entire_series>
141 std::shared_ptr<AbstractFilePosition> abstractFilePosition = nullptr;
148 std::shared_ptr<std::optional<std::unique_ptr<AbstractIOHandler>>>
Definition: ADIOS2IOHandler.hpp:100
Definition: AbstractIOHandlerImplCommon.hpp:40
Definition: AbstractIOHandlerImpl.hpp:36
Layer to manage storage of attributes associated with file objects.
Definition: Attributable.hpp:222
Base class for any type of record (e.g.
Definition: BaseRecord.hpp:182
Map-like container that enforces openPMD requirements and handles IO.
Definition: Container.hpp:104
Definition: HDF5IOHandlerImpl.hpp:41
Logical compilation of data from one snapshot (e.g.
Definition: Iteration.hpp:146
Definition: JSONIOHandlerImpl.hpp:159
Container for N-dimensional, homogeneous Records.
Definition: Mesh.hpp:41
Definition: ParallelHDF5IOHandlerImpl.hpp:38
Definition: ParticleSpecies.hpp:34
Definition: RecordComponent.hpp:114
Definition: Record.hpp:33
Implementation for the root level of the openPMD hierarchy.
Definition: Series.hpp:288
Subset of C++20 std::span class template.
Definition: Span.hpp:38
Layer to mirror structure of logical data and persistent data in file.
Definition: Writable.hpp:76
bool written
Whether a Writable has been written to the backend.
Definition: Writable.hpp:196
std::string ownKeyWithinParent
If parent is not null, then this is a key such that: &(*parent)[key] == this.
Definition: Writable.hpp:180
bool dirtyRecursive
Tracks if there are unwritten changes anywhere in the tree whose ancestor this Writable is.
Definition: Writable.hpp:175
bool dirtySelf
Tracks if there are unwritten changes for this specific Writable.
Definition: Writable.hpp:162
void seriesFlush(std::string backendConfig="{}")
Flush the corresponding Series object.
Definition: Writable.cpp:55
Definition: ADIOS2File.hpp:143
Definition: Attributable.hpp:107
Data members for Series.
Definition: Series.hpp:90
Definition: Attributable.hpp:62
Public definitions of openPMD-api.
Definition: Date.cpp:29
Typesafe description of all required arguments for a specified Operation.
Definition: IOTask.hpp:148