23 #include "openPMD/Dataset.hpp" 24 #include "openPMD/Error.hpp" 25 #include "openPMD/backend/Attributable.hpp" 28 #ifndef OPENPMD_protected 29 #define OPENPMD_protected protected: 64 template <
typename T,
typename T_key,
typename T_container>
68 double unitSI()
const;
81 bool constant()
const;
100 ChunkTable availableChunks();
103 std::shared_ptr<internal::BaseRecordComponentData>
108 return *m_baseRecordComponentData;
113 return *m_baseRecordComponentData;
116 inline void setData(std::shared_ptr<internal::BaseRecordComponentData> data)
118 m_baseRecordComponentData = std::move(data);
119 Attributable::setData(m_baseRecordComponentData);
138 template <
typename T_RecordComponent>
141 template <
typename T>
142 static void call(T_RecordComponent &rc)
144 rc.makeConstant(
T());
147 template <
unsigned n,
typename... Args>
148 static void call(Args &&...)
150 throw std::runtime_error(
151 "makeEmpty: Datatype not supported by openPMD.");
Dataset m_dataset
The type and extent of the dataset defined by this component.
Definition: BaseRecordComponent.hpp:42
Definition: Dataset.hpp:35
Datatype
Concrete datatype of an object available at runtime.
Definition: Datatype.hpp:45
Definition: Container.cpp:51
bool m_isConstant
True if this is defined as a constant record component as specified in the openPMD standard...
Definition: BaseRecordComponent.hpp:49
Public definitions of openPMD-api.
Functor template to be used in combination with switchType::operator() to set a default value for con...
Definition: BaseRecordComponent.hpp:139
Definition: Attributable.hpp:56
Map-like container that enforces openPMD requirements and handles IO.
Definition: Container.hpp:131
Definition: BaseRecordComponent.hpp:36
Definition: BaseRecordComponent.hpp:62
Layer to manage storage of attributes associated with file objects.
Definition: Attributable.hpp:93