24 #include "openPMD/Dataset.hpp" 38 Extent::value_type m_numberOfItems;
66 : m_numberOfItems(numberOfItems)
69 template <
typename DF>
73 using resultType =
typename DF::resultType;
76 std::shared_ptr<DF> m_df;
78 template <
typename T,
typename Dummy =
void>
81 std::shared_ptr<DatasetFiller<T>> operator()(std::shared_ptr<DF> &)
83 throw std::runtime_error(
84 "Can only create data of type " +
85 datatypeToString(determineDatatype<resultType>()));
89 template <
typename Dummy>
90 struct Helper<resultType, Dummy>
92 std::shared_ptr<DatasetFiller<resultType>>
93 operator()(std::shared_ptr<DF> &df)
101 : m_df{std::make_shared<DF>(std::move(df))}
104 template <
typename T>
105 std::shared_ptr<DatasetFiller<T>> operator()()
An abstract class to create one iteration of data per thread.
Definition: DatasetFiller.hpp:35
virtual ~DatasetFiller()=default
This class will be derived from.
Definition: DatasetFiller.hpp:70
Public definitions of openPMD-api.
Definition: Date.cpp:28
virtual void setNumberOfItems(Extent::value_type numberOfItems)=0
Set number of items to be produced.
virtual std::shared_ptr< T > produceData()=0
Create a shared pointer of m_numberOfItems items of type T.