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;
54 class ScientificDefaults;
63 void printDirty(Series
const &);
82 template <
typename T_elem>
84 template <
typename T_elem>
85 friend class BaseRecordInterface;
86 template <
typename T,
typename T_key,
typename T_container>
102 friend struct test::TestHelper;
103 friend std::string concrete_h5_file_position(
Writable *);
104 friend std::string concrete_bp1_file_position(
Writable *);
107 friend void debug::printDirty(
Series const &);
108 friend struct Parameter<Operation::CREATE_DATASET>;
109 friend struct
Parameter<Operation::OPEN_DATASET>;
113 Writable(internal::AttributableData *);
118 Writable(Writable const &other) = delete;
119 Writable(Writable &&other) = delete;
120 Writable &operator=(Writable const &other) = delete;
121 Writable &operator=(Writable &&other) = delete;
130 template <bool flush_entire_series>
131 void
seriesFlush(std::string backendConfig = "{}");
137 template <bool flush_entire_series>
143 std::shared_ptr<AbstractFilePosition> abstractFilePosition = nullptr;
150 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:225
Base class for any type of record (e.g.
Definition: BaseRecord.hpp:186
Map-like container that enforces openPMD requirements and handles IO.
Definition: Container.hpp:106
Definition: HDF5IOHandlerImpl.hpp:41
Logical compilation of data from one snapshot (e.g.
Definition: Iteration.hpp:172
Definition: JSONIOHandlerImpl.hpp:159
Container for N-dimensional, homogeneous Records.
Definition: Mesh.hpp:44
Definition: ParallelHDF5IOHandlerImpl.hpp:38
Definition: ParticleSpecies.hpp:39
Definition: RecordComponent.hpp:118
Definition: Record.hpp:34
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:77
bool written
Whether a Writable has been written to the backend.
Definition: Writable.hpp:198
std::string ownKeyWithinParent
If parent is not null, then this is a key such that: &(*parent)[key] == this.
Definition: Writable.hpp:182
bool dirtyRecursive
Tracks if there are unwritten changes anywhere in the tree whose ancestor this Writable is.
Definition: Writable.hpp:177
bool dirtySelf
Tracks if there are unwritten changes for this specific Writable.
Definition: Writable.hpp:164
void seriesFlush(std::string backendConfig="{}")
Flush the corresponding Series object.
Definition: Writable.cpp:55
Definition: ADIOS2File.hpp:143
Definition: Attributable.hpp:110
Definition: ScientificDefaults.hpp:23
Data members for Series.
Definition: Series.hpp:90
Definition: Attributable.hpp:65
Public definitions of openPMD-api.
Definition: Date.cpp:29
Typesafe description of all required arguments for a specified Operation.
Definition: IOTask.hpp:148