80 friend class Attributable;
81 template <
typename T_elem>
82 friend class BaseRecord;
83 template <
typename T_elem>
84 friend class BaseRecordInterface;
85 template <
typename T,
typename T_key,
typename T_container>
86 friend class Container;
87 friend class Iteration;
89 friend class ParticleSpecies;
92 friend class RecordComponent;
93 friend class AbstractIOHandlerImpl;
94 friend class ADIOS2IOHandlerImpl;
96 friend class HDF5IOHandlerImpl;
97 friend class ParallelHDF5IOHandlerImpl;
99 friend class AbstractIOHandlerImplCommon;
100 friend class JSONIOHandlerImpl;
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>>>
156 Writable *parent = nullptr;
162 bool dirtySelf = true;
175 bool dirtyRecursive = true;
180 std::string ownKeyWithinParent;
196 bool written = false;